A DX7 USB Dongle – Easy DIY Digital Music Initiatives
The wonderful Rene Stange added USB Gadget (i.e. system) assist to the Circle bare metal Raspberry Pi environment some time in the past so I’ve now integrated that into MiniDexed. This permits MiniDexed to be used as a USB device – i.e. it might simply be plugged right into a PC and used by way of USB MIDI straight, so long as your Raspberry Pi helps USB Gadget mode and you’ve got some technique of audio output.
This submit seems at the right way to make a “USB dongle” that’s principally a USB MIDI accessible DX7.
A fairly observe earlier than I begin nonetheless. Why would somebody need to do that? There are a number of VST DX devices for PCs if you need DX sounds in your DAW and Dexed itself provides you full entry to a DX7 by way of a software program interface.
So there may be most likely little or no sensible motive to do that. However personally, I simply couldn’t resist the concept of getting a plug-in DX7 on a USB stick!
Warning! I strongly suggest utilizing previous or second hand gear in your experiments. I’m not accountable for any injury to costly devices!
These are the important thing tutorials for the primary ideas used on this undertaking:
In case you are new to microcontrollers and single board computer systems, see the Getting Started pages.
Elements record
- Raspberry Pi Zero, Zero W or Zero W2.
- I2S or different audio output for a Pi Zero.
- USB “STEM”, “Zero Dongle” or different USB system connection (micro USB to USB A).
Be aware: the Pi Zero and Zero W will give entry to a single MiniDexed tone generator. The Pi Zero W2, will assist 8 tone turbines.
Warning: When utilizing a Raspberry Pi in USB Gadget mode, don’t plug in its ordinary energy provide! It needs to be USB “bus powered” solely.
The {Hardware}
While any Raspberry Pi that helps USB Gadget mode might be used with a suitable lead to energy and hyperlink to MiniDexed, to make a USB “dongle” requires using a Pi Zero (any flavour) and a “dongle type” add on.
I’ve used the next:
It’ll additionally want a method of outputting audio from the Zero as MiniDexed solely helps USB MIDI, not USB audio.
There are a number of choices for audio out on a Pi Zero. By far the simplest is a few form of off-the-shelf I2S audio interface.
A extremely good, low-profile one ultimate to be used as a dongle is the Pimoroni Audio SHIM, which can be found here. It doesn’t even want soldering, it might push-fit over the Pi’s GPIO headers, however any I2S audio interface for the Pi can be utilized as lengthy it doesn’t intrude with the USB plug for the “dongle”.
My ultimate mixture is the USB STEM and the Pimoroni Audio SHIM as it’s each low-profile and has the USB plug at one finish and the audio output on the different.
MiniDexed Configuration
Hopefully by the point you learn this, USB Gadget assist in MiniDexed shall be merged into the primary code (it’s PR567). Particulars of the right way to configure it may be found on the wiki here, however the important thing MiniDexed configuration (minidexed.ini) required for this configuration is as follows:
USBGadget=1 SoundDevice=i2s
The remainder of the configuration is basically ignored, however issues just like the LCD, buttons and encoder can merely be disabled (set to 0) as they aren’t required.
A Single DX7
As talked about beforehand if utilizing a Zero V1/W then a single tone generator is on the market. The MIDI channel it makes use of shall be as outlined within the default efficiency.ini file. It’s set to OMNI by default. To vary it, change:
MIDIChannel1=<MIDI channel 1 to 16>
The default MIDI configuration for MiniDexed assumes voice adjustments shall be made with a mixture of financial institution choose Management Change and Program Change messages with every financial institution containing 32 voices. However the next configuration permits 4 banks to be unfold throughout all 128 Program Change values:
ExpandPCAcrossBanks=1
When plugged right into a PC it should come up as “MIDI Gadget” as a USB MIDI appropriate system. Right here it may be seen in MidiOx, being chosen because the MIDI output.
This configuration assumes you’ve put in ROMS 1a, 1b, 2a and 2b at the very least (details here) in your sysex/voices listing on the SD card.
I’ve a MidiOx instrument file with all of the voices for Roms 1a/1b/2a/2b/3a/3b/4a/4b selectable by way of Financial institution Choose messages, and Roms 1a+1b+2a+2b configured to be used as a single 128-voice financial institution by way of Program Change messages.
Find it on GitHub here. This must be copied to the “instr” listing of the MidiOx set up.
In MidiOx, View -> Instrument Panel, choose “INS File: DX7ROMS.INS” after which select one of many following for “instr”:
- “YAMAHA DX7 ROMS” for the individually selectable 8 ROMs.
- “YAMAHA DX7 VOICES” for the primary 4 ROMs to be linked as a 128-voice single financial institution.
Each views (and voice choices) are proven under.
An 8-DX7 Instrument
If utilizing a Zero 2W then 8 tone turbines can be found. In that case there’s a alternative. It may be handled as eight unbiased tone turbines, wherein case the MIDI channels for every TG needs to be set independently.
The next configures TGs 1-8 for MIDI channels 1-8.
MIDIChannel1=1 MIDIChannel2=2 MIDIChannel3=3 ... MIDIChannel8=8
At this level, the MIDI interface is similar as earlier than, however altering the MIDI channel will change the tone generator getting used.
Alternatively, it’s doable to now deal with the 8-way TG MiniDexed as a single instrument with rather more advanced sounds.
If the next setting is enabled in minidexed.ini:
PerformanceSelectChannel=1
This can interpret Program Change messages on MIDI channel 1 as deciding on “performances”. Every “efficiency” is a configuration of as much as 8 tone turbines with a variety of voices and effets.
The complete record of default “performances” will be sound by looking the MiniDexed github repository here.
As soon as once more I’ve added a mode in my MIDIOx instrument file to assist performances:
Warning: There’s a proviso with this configuration.
At current, MiniDexed masses performances into consecutive “slots” which means that the numbers within the MiniDexed repository don’t relate to the “patch numbers” used over MIDI. The MIDIOx file helps the information within the repository on the time of writing. If new performances are added in a number of the gaps (and there are gaps) within the numbering, then the names shall be out of sync with what’s put in.
Personally I feel we have to change this and make the numbers relate to the MIDI program numbers. Watch this house!
Closing Ideas
As talked about within the introduction, with a wide selection of software program synths accessible that present a DX7 on a pc to be used with a DAW, there may be restricted use for a “DX7 on a USB stick”.
However I nonetheless suppose this can be a fairly neat factor to have the ability to do, if nothing else, only for the enjoyable of figuring out {that a} $2000 synth from the Nineteen Eighties can now be replicated with ~$20 value of {hardware} that may be plugged into any PC and simply “performed”.
Kevin