https://diyelectromusic.wordpress.com/2023/11/22/a-dx7-usb-dongle/ Skip to content Simple DIY Electronic Music Projects Menu * Home * Getting Started * Projects * Techniques * PCBs * About * Buy me a Ko-fi A DX7 USB Dongle Kevin Intermediate, Single Board Computers November 22, 2023November 24, 2023 5 Minutes The amazing Rene Stange added USB Gadget (i.e. device) support to the Circle bare metal Raspberry Pi environment a while ago so I've now incorporated that into MiniDexed. This allows MiniDexed to be used as a USB device - i.e. it can just be plugged into a PC and used via USB MIDI directly, as long as your Raspberry Pi supports USB Gadget mode and you have some means of audio output. This post looks at how to make a "USB dongle" that is basically a USB MIDI accessible DX7. A quite note before I start however. Why would someone want to do this? There are several VST DX instruments for PCs if you want DX sounds in your DAW and Dexed itself gives you full access to a DX7 via a software interface. So there is probably very little practical reason to do this. But personally, I just couldn't resist the idea of having a plug-in DX7 on a USB stick! [img_7467] Warning! I strongly recommend using old or second hand equipment for your experiments. I am not responsible for any damage to expensive instruments! These are the key tutorials for the main concepts used in this project: * "Bare Metal" Raspberry Pi MiniDexed DX7 If you are new to microcontrollers and single board computers, see the Getting Started pages. Parts list * Raspberry Pi Zero, Zero W or Zero W2. * I2S or alternative audio output for a Pi Zero. * USB "STEM", "Zero Dongle" or other USB device connection (micro USB to USB A). Note: the Pi Zero and Zero W will give access to a single MiniDexed tone generator. The Pi Zero W2, will support 8 tone generators. Warning: When using a Raspberry Pi in USB Gadget mode, do not plug in its usual power supply! It should be USB "bus powered" only. The Hardware Whilst any Raspberry Pi that supports USB Gadget mode could be used with a suitable lead to power and link to MiniDexed, to make a USB "dongle" requires the use of a Pi Zero (any flavour) and a "dongle style" add on. I've used the following: * Solderless Zero Dongle from 8086. * Pi Zero USB Stem. * Raspberry Pi Zero USB Adaptor Board (ebay). It will also need a means of outputting audio from the Zero as MiniDexed only supports USB MIDI, not USB audio. There are several options for audio out on a Pi Zero. By far the easiest is some kind of off-the-shelf I2S audio interface. A really good, low-profile one ideal for use as a dongle is the Pimoroni Audio SHIM, which can be found here. It doesn't even need soldering, it can push-fit over the Pi's GPIO headers, but any I2S audio interface for the Pi can be used as long it doesn't interfere with the USB plug for the "dongle". My ideal combination is the USB STEM and the Pimoroni Audio SHIM as it is both low-profile and has the USB plug at one end and the audio output at the other. [img_7469] [img_7470] MiniDexed Configuration Hopefully by the time you read this, USB Gadget support in MiniDexed will be merged into the main code (it is PR567). Details of how to configure it can be found on the wiki here, but the key MiniDexed configuration (minidexed.ini) required for this configuration is as follows: USBGadget=1 SoundDevice=i2s The rest of the configuration is largely ignored, but things like the LCD, buttons and encoder can simply be disabled (set to 0) as they are not required. A Single DX7 As mentioned previously if using a Zero V1/W then a single tone generator is available. The MIDI channel it uses will be as defined in the default performance.ini file. It is set to OMNI by default. To change it, change: MIDIChannel1= The default MIDI configuration for MiniDexed assumes voice changes will be made with a combination of bank select Control Change and Program Change messages with each bank containing 32 voices. But the following configuration allows four banks to be spread across all 128 Program Change values: ExpandPCAcrossBanks=1 When plugged into a PC it will come up as "MIDI Gadget" as a USB MIDI compatible device. Here it can be seen in MidiOx, being selected as the MIDI output. [midiox-midi-gadget] This configuration assumes you've installed ROMS 1a, 1b, 2a and 2b at least (details here) in your sysex/voices directory on the SD card. I have a MidiOx instrument file with all the voices for Roms 1a/1b/2a /2b/3a/3b/4a/4b selectable via Bank Select messages, and Roms 1a+1b+2a+2b configured for use as a single 128-voice bank via Program Change messages. Find it on GitHub here. This needs to be copied to the "instr" directory of the MidiOx installation. In MidiOx, View -> Instrument Panel, select "INS File: DX7ROMS.INS" and then choose one of the following for "instr": * "YAMAHA DX7 ROMS" for the individually selectable 8 ROMs. * "YAMAHA DX7 VOICES" for the first four ROMs to be linked as a 128-voice single bank. Both views (and voice selections) are shown below. [midiox-minidexed-roms2] [midiox-minidexed-roms] An 8-DX7 Instrument If using a Zero 2W then 8 tone generators are available. In that case there is a choice. It can be treated as eight independent tone generators, in which case the MIDI channels for each TG should be set independently. The following configures TGs 1-8 for MIDI channels 1-8. MIDIChannel1=1 MIDIChannel2=2 MIDIChannel3=3 ... MIDIChannel8=8 At this point, the MIDI interface is the same as before, but changing the MIDI channel will change the tone generator being used. Alternatively, it is possible to now treat the 8-way TG MiniDexed as a single instrument with much more complex sounds. If the following setting is enabled in minidexed.ini: PerformanceSelectChannel=1 This will interpret Program Change messages on MIDI channel 1 as selecting "performances". Each "performance" is a configuration of up to 8 tone generators with a range of voices and effets. The full list of default "performances" can be sound by browsing the MiniDexed github repository here. Once again I've added a mode in my MIDIOx instrument file to support performances: [midiox-minidexed-performance] Warning: There is a proviso with this configuration. At present, MiniDexed loads performances into consecutive "slots" meaning that the numbers in the MiniDexed repository do not relate to the "patch numbers" used over MIDI. The MIDIOx file supports the files in the repository at the time of writing. If new performances are added in some of the gaps (and there are gaps) in the numbering, then the names will be out of sync with what is installed. Personally I think we need to change this and make the numbers relate to the MIDI program numbers. Watch this space! Closing Thoughts As mentioned in the introduction, with a good selection of software synths available that provide a DX7 on a computer for use with a DAW, there is limited use for a "DX7 on a USB stick". But I still think this is a pretty neat thing to be able to do, if nothing else, just for the fun of knowing that a $2000 synth from the 1980s can now be replicated with ~$20 worth of hardware that can be plugged into any PC and just "played". Kevin Share this: * Twitter * Facebook * Like this: Like Loading... Related * Tagged * midiox * minidexed * raspberry pi * Raspberry Pi Zero * usb device * usb gadget [05a6c4f760] Published by Kevin Just another soul meandering my way around the Internet ... View all posts by Kevin Published November 22, 2023November 24, 2023 Post navigation Previous Post Nano Audio Experimenter Sheild PCB Build Guide 3 thoughts on "A DX7 USB Dongle" 1. [d3c9c] diyelectromusic says: November 22, 2023 at 8:45 pm @diyelectromusic.wordpress.com This shows how to build a "DX7 USB Dongle" using #MiniDexed on a @Raspberry_Pi Zero. LikeLike Reply 2. [d84bc] Kirtai says: November 23, 2023 at 11:24 am @diyelectromusic.wordpress.com I love this. I have a zero 2 I can use for it. LikeLiked by 1 person Reply 3. [d3c9c] diyelectromusic says: November 24, 2023 at 9:10 pm @diyelectromusic.wordpress.com This is now merged into the main build of MiniDexed :)Full details here: https://github.com/ probonopd/MiniDexed/wiki/Hardware#usb-gadget-mode LikeLike Reply Leave a Reply Cancel reply [ ] [ ] [ ] [ ] [ ] [ ] [ ] D[ ] Resources * GitHub * The Fediverse * Mastodon * YouTube * Discord * Facebook * Lo-Fi Orchestra * Mentions * Kit List * Worksheets * CD Rack Synthesizer * A DX7 USB DongleNovember 22, 2023 * Nano Audio Experimenter Sheild PCB Build GuideNovember 12, 2023 * Nano Audio Experimenter Sheild PCBNovember 12, 2023 * 3.3V Serial MIDI THRUOctober 28, 2023 * The diyelectromusic blog is now on the Fediverse!October 17, 2023 Categories[Select Category ] 74hc4067 555 timer ad9833 adafruit analog arduino arduino leonardo arduino nano arduino pro mini arduino uno auduino bare metal button circuitpython clumsy midi control change dac dds digital pins digital to analogue conversion direct digital synthesis drums dx7 feather filter fm synthesis holst i2c ili9488 keyboard keyboard matrix keypad ldr led led matrix lo-fi bands lo-fi classical lo-fi themes make your uno mcp3008 mcp4725 micropython midi midi controller midi filter midi merge midi monitor midi router midi shield minidexed modular synth mozzi mpr121 mt32-pi multiplexer mux oled display pcb pcm5102 pio polyphony potentiometer program change pro micro pwm r2r raspberry pi raspberry pi pico Raspberry Pi V1 relay resistor ladder rotary dial rotary encoder samd samd21 sampler sequencer seven segment display software serial ssd1306 step sequence telephone tft display the planets timers tone touch touchscreen toy trinket tx816 uart usb host usb host midi usb midi vs1003 vs1053 wavetable xiao zynthian Simple DIY Electronic Music Projects Simple DIY Electronic Music Projects Lo-Fi Orchestra Lo-Fi Orchestra Search for: [ ] [Search] * November 2023 (3) * October 2023 (2) * September 2023 (4) * August 2023 (3) * July 2023 (5) * June 2023 (2) * May 2023 (6) * April 2023 (14) * March 2023 (8) * February 2023 (10) * January 2023 (17) * December 2022 (3) * November 2022 (11) * October 2022 (11) * September 2022 (14) * August 2022 (9) * July 2022 (4) * June 2022 (4) * May 2022 (11) * April 2022 (13) * March 2022 (15) * February 2022 (7) * January 2022 (12) * December 2021 (6) * November 2021 (4) * October 2021 (10) * September 2021 (9) * August 2021 (12) * July 2021 (19) * June 2021 (17) * May 2021 (13) * April 2021 (10) * March 2021 (16) * February 2021 (19) * January 2021 (21) * December 2020 (11) * November 2020 (20) * October 2020 (13) * September 2020 (18) * August 2020 (19) * July 2020 (8) * June 2020 (23) Copyright (C) 2022 diyelectromusic (Kevin) Creative Commons License The contents of this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. All source code is provided under a MIT license Website Built with WordPress.com. * Comment * Follow Following + [croppe] Simple DIY Electronic Music Projects Join 125 other followers [ ] Sign me up + Already have a WordPress.com account? Log in now. * + [croppe] Simple DIY Electronic Music Projects + Customize + Follow Following + Sign up + Log in + Copy shortlink + Report this content + View post in Reader + Manage subscriptions + Collapse this bar Loading Comments... Write a Comment... [ ] Email (Required) [ ] Name (Required) [ ] Website [ ] [Post Comment] %d bloggers like this: [b]