Categories
Uncategorized

Slide Advance Alert System (with MIDI)

Here’s a project I did a while ago, but never documented here… At Brown Dog Gadgets we do a lot of video streaming for workshops, and our setup includes one person on camera and another person as the producer who runs the software, monitors the chat window, and does the camera switching and advances the slides.

We started talking about an easy way for the person on camera to let the producer know when to advance to the next slide without having to say “Next slide, please” 20 times each session. Our video software can easily control the slides by using the left and right arrow keys, so we thought about just making a small USB controller the presenter could use to send those key commands, but that only works if the video streaming software has focus as the frontmost application, and since we’re running multiple pieces of presenting software as well as a browser we can’t rely on key commands to work.

So what I came up with is a simple controller that sends MIDI signals to a custom application that plays a sound which the producer can hear through their headphones, and know that it’s time to change the slide. (The application also has a small window that displays “Waiting…”, “Forward”, or “Back” depending on the state of the controls.)

The great thing about MIDI is that it doesn’t rely on a specific application being frontmost… Yes, we could have used serial communications, but we’d need to then select the correct serial port, which changes depending on which USB port you use, hubs, computer, etc.

We’ve got a guide in the Brown Dog Gadgets Project system, and we also dropped it onto Instructables if you want your own Slide Advancement Alerting Device.

This is a niche solution to a niche problem, but that seems to be what I’m good at, so I’m just gonna go with it.

Categories
Uncategorized

8K Controller with Quicksilver

You may already know that I’ve been building (and selling) USB controllers for the last 8 years or so. Most of them have been for photobooths, tradeshows, exhibits, museums, etc. Typically these have been very durable devices meant for use and abuse by the general public. They tend to do one thing, and do it well. Well, 2020 came along and all events and public gathers sort of… stopped, and with it, people wanting specific use USB controllers. I still sold a few, but it became apparent that lower-cost more consumer oriented devices were desires. That’s sort of what the 8K Controller is. I’ve sold about a half dozen, and I’m considering another run if people are interested in it.

Yeah, so what is it? Well, it’s a USB controller. By default, it’s programmed for function keys F13 through F20 (which are not found on most keyboard) but it can be programmed for any keys, or key combos, or even as a MIDI controller. So yeah, what can it do? Well, with specific custom key commands it can serve as a controller for Zoom, Google Meet, or Microsoft Teams to mute your mic, disable your camera, and other things. As long as there’s a key command, it can do it.

If you just want the default F13-F20, you can use macro/automation software to do all sorts of other things, and I’ll write about these in the coming weeks. In fact, we’ll start right now!

Quick Disclaimer! By default the controller is recognized as a USB HID device, no drivers needed on modern versions of macOS, Windows, or Linux. In future posts I’ll jump into Windows and Linux, but I’ll start with macOS.

Today we’ll look at Quicksilver, which is open-source/free and can be found at qsapp.com Quicksilver can do a lot of neat things, and falls under the category of “productivity software” as many of these applications will.

Quicksilver allows you to create triggers that respond to key commands, which is perfect, because we’ve got 8 key commands just waiting to be put to use. I created a bunch of actions to open up specific web sites, and then for each one, clicked Edit for the Shortcut and pressed the button on the 8K Controller I wanted to assign it to. (I should note that I’m not a long-time user of Quicksilver. I downloaded it tonight and got this basic functionality figured out in less than an hour.)

I’ve now got seven buttons right behind my keyboard which will pull Firefox to the front (no matter what application is running) and load a specific web site. I can have Twitter or Facebook on my screen in a matter of seconds! (Those probably are not the best choices though!)

These are really just examples though. I’ll be changing them to things I actually need every day for work. Admin interface for the online shop, a few accounts I need to keep an eye on, etc. Sure, it’s not too difficult to command tab through the open applications, get to Firefox, click a button in the bookmark toolbar, but… this is one press of a dedicated button, so yeah, it’s quite a bit faster, and I dare say more satisfying.

The view from the Raspberry Pi that has a camera pointed at my 3D printer is now just a mere button press away! (Hmmm, looks like it’s ready for a new print to get started.)

Oh, and one more thing… You may notice I used F13 through F19, but not F20. It seems Quicksilver does not support F20. I did find an issue about the higher numbered function keys, but no mention of F20. Maybe I’ll file an issue about it, but for now 7 out of 8 with a piece of free software isn’t too bad!

Categories
Uncategorized

More PCBWay Boards

I’ve been working on a number of projects the past few months, and many of them require custom printed circuit boards. A few weeks ago as I was finishing up the design of a new board I got an email from the crew at PCBWay. (You might remember that I had boards made by them a few years ago.)

As luck would have it I was just exporting some Gerber files so the timing was great! I got my boards created by PCBWay and they arrived about two weeks ago. It took me a bit of time to wrap other projects and get things soldered up and programmed, but the boards worked great. Often you don’t get PCBs right the first time, but luckily all my connections were fine (It’s a fairly simple board) but there are a few things I might want to change about the dimensions and the mounting holes.

I’ve been using this as a supplemental USB keyboard. For testing I’ve programmed it to be function keys F13 through F20 (which can then be assigned to key commands for certain applications, like OBS: Open Broadcaster Software.) I’ve also set it up as a MIDI device to trigger sound effects using my SoundProp application. It can also serve as a toggle for your mic and camera in videoconferencing software like Zoom, Google Meet, Microsoft Teams, etc. It’s pretty robust in its capabilities.

I still need to finish up an enclosure for it, and then do more rigorous testing, but so far the boards and functionality have been great. (If there’s interest in these devices, I’ll probably drop a few into the Etsy Shop.)

Categories
Uncategorized

SoundProp – Sound Effects with Processing & MIDI

Sometimes you forget to document things, and sometimes you try to get ahead of the game. Back around 2009 I was one of the organizers of Web414, Milwaukee’s Web Community Meetup, and at some point Gabe and I turned it into a live talk show. Yeah, I don’t know how we managed to do that, but… it happened. We had guests and we interviewed them, and even had a musical guest once! Anyway, one of the things I did was add sound effects to things because… well, I love that kind of shit. So yeah, my first “Sound Effect Board” was a web page on my web site I called ShowProp which used Flash to play some sound effects at the push of a button. (Still there, still mostly works. Here’s another silly web/sound thing from 2010, Evil-O-Mator.)

Where was I? Oh yeah, sound effects! Typically I was the co-host while Gabe was the primary host, so I would work the sound effects board at the appropriate (or inappropriate time.) It was fun.

And then I started messing around with Processing in 2010 and eventually started a re-write of ShowProp that would run locally on my computer rather than a Flash-enabled web page. (Flash is Dead! Sort of…) Processing is still very much alive, and I use it fairly often for creative coding, and hey, I figured since it’s 2020 it was time to update things.

I should mention that in 2019 I got my first “real” MIDI device, an Arturia Beat Step. A local synth guy was selling it for… wow, less than half the price of a new one. (I guess I got a deal!) I say my first “real” MIDI device because I’ve built them before, for myself, for museum exhibits, etc. but I had never bought a commercial unit before. Since I had this around, and I enjoy screwing around with MIDI, I dug into MIDI support in Processing, and…

I ended up redoing my old ShowProp sketch to be SoundProp, which is a Processing sketch that accepts MIDI input and plays sounds. It’s the second fanciest sound board style device I’ve used this year. (Yeah, I use others.) I also discovered the sound playing capabilities of Processing have greatly improved over the years, so that was an added bonus.

So basically, my sketch has a bunch of audio files, and each is mapped to a MIDI pitch which is sent by one of the 16 pads. Now, because it’s MIDI and not key commands it always works, no matter what application is in the front. No fumbling around to pull up the right window before you press a key or click a mouse. All the Sounds! All the Time!

The UI is quite minimal. It’s just a window that is 250 pixels by 130 pixels. I typically just launch the application and minimize it. (And hey, this will run as a native—well, Java—application on macOS, Windows, and Linux… in theory.)

If I get around to it I’ll clean it up and upload the code, and maybe create a video showing it work, though it’s not really that exciting, but hey… 2020, whaddaya want!?