Categories
Uncategorized

Raspberry Pi as USB MIDI Host

I’ve been building USB MIDI devices for a few years now, and in the past I’ve built a MIDI controller using a Teensy that controlled an Akai MPX16, but overall I’ve not had the need to connect things up for my own needs. But now that I’ve got a few things around that have MID inputs, outputs, and throughs, I need to expand my MIDI capabilities.

It seems there are a whole bunch of devices that just do MIDI over USB and don’t have MIDI jack for “true” MIDI output. I think this is just due to it being cheaper/easier to add a USB jack to devices instead of MIDI jack. (Even though there are TRS MIDI jacks, so size/price shouldn’t be much of an issue. It may be due to demand, since most USB MIDI keyboard/devices sold are just going to be connected to a computer.

If you want to connect your USB MIDI input device to a piece of hardware that has MIDI in but is not a computer you’ll need a USB MIDI Host device. There’s the DOREMIDI USB MIDI Host Box which is about $50 and appears to be USB 1.0. There’s also the DOREMIDI High Speed USB MIDI Host Box which seems to support USB 2.0 for around $60.

As usual, I’ve got a lot of stuff laying around from past projects, so I’m recycling/pulling from existing stock here. I’ve got a Raspberry Pi 3 B (which was probably around $35 when I got it) and then you need a power supply (add $9) and a Micro SD card (add $8) so we’re up to $52 right there… and we need one more thing. I’ve had this USB MIDI Converter Cable for years, and it was about $6 when I got it. So hey, we’re under $60 but just barely.

So what do we do with this Raspberry Pi and other stuff? Well, we grab the disk image from this post titled Raspberry Pi as USB/Bluetooth MIDI host and burn it to the SD card and boot it up. Now, I was convinced I’d need to configure things but… it just worked! There’s a complete install post as well which I perused, especially when I tried to add an OLED screen. (That did not work.) To be honest I was a bit surprised it just worked out of the tin. It even worked fine with one of my 8K Controllers programmed for MIDI output.

Categories
Uncategorized

S1 Rotary USB Controller

You may already know that I’ve been building (and selling) USB controllers for the last 9 years or so. Most of them have been for photobooths, tradeshows, exhibits, museums, etc. Well, the pandemic blew things up, in a bad way, with no events happening, so I’ve tried to keep going, and occasionally do custom development, and then turn custom things into products, so here’s the S1 Controller.

It consists of a rotary encoder, meaning it can turn forever in either direction, with a built-in button. Just like the scroll wheel on your mouse! So, what can it do? Well, what do you want it to do? The first one I built was for an audio nerd who didn’t like spinning the scroll wheel on his mouse and then clicking the left mouse button to set the dials in their audio software, so this gives a real-world analog to turning knobs and setting values. I can appreciate that!

It could also be programmed as a volume control and play/pause button, or some other custom thing. I never really know what people will come up with, but 99% of the time I can program what they want. Maybe you want one of these? If you do, you can grab one from from Etsy. (Update! Lots of people have wanted these for MIDI related applications, and that works too. If you need a special MIDI controller, we can do that.)

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.)