I know I’ve already posted articles in the past about MicroDexed, but here is yet another one – I primarily wanted to make a video talking about some of the functionality.
Author: jk
Yamaha TX816 Emulation
MicroDexed on Teensy4.0
Yamaha DX7 Clone on Teensy 4.0
Raspberry Pi Pico – DX7 clone
Building a Hardware MIDI Sequencer – Update
Building a hardware MIDI sequencer
Breathing New Life into the old Yamaha Breath Controllers – Part 2
Here is the schematic for the Yamaha Breath Controller to MIDI converter.
The design is simple. Starting with the power section. It is not the most efficient but is designed around parts that I had available. The main power is based on a 7805 linear voltage regulator (U2) and a external DC supply like a wall-wart. Since the 7805 requires an input supply voltage to be greater than 8V, it can be powered by a wall-wart of 9V or more. A 12V wall-wart can also be used but will generate a bit of heat. The second part of the power supply is a DC-DC converter PEME1-S5-D12-S (U1) that converts the regulated 5V supply and generates 2 additional voltage rails +/- 12V. The DC-DC converter can supply a max current of 42mA which is more than enough for the breathcontroller which draws about 12mA as well as the opamp. A USB 5V supply could be used in place of the 7805 regulator as the current requirement of the circuit is well under 500mA. I personally dislike working with the USB connectors as it’s hard to drill rectangular USB socket holes in project cases and I have a handful of wall warts and round power jacks.
The BreathController (based on Yamaha DX7 schematics) uses a negative supply voltage and returns a negative voltage between 0V and the supply based on the amount of breath pressure through the BC. Using a -12V supply, I measured the output voltages of the BC1 and BC2 that I own. The BC1 range is (-0.26V ~ -10V) and the BC2 range is (-0.14V ~ -10V) . Using a TL-082 op-amp (U4) in an inverting configuration with a gain of -0.5 results in a converted output voltage of 0.13 – 5V and 0.07 – 5 V respectively which is conveniently within the ADC voltage specs of the ATTINY microcontroller. The reason why I used 2 – 10K resistors ( R2 / R3 ) in parallel instead of a 5K resistor is because, 5K resistors are not usually available and 10K resistors are cheap and I have a bunch. Additionally, 2 – 10K resistors in parallel is closer to 5K than a nominal 4.7K resistor.
For the microcontroller, I used the ATTINY84 because that’s what I had around. The ATTINY84 has an internal clock but I had a hard time getting the MIDI output to match the exact 31.25K baud rate without using an external clock. So, again, since I had a 16mhz oscillator, that’s what I used. So when you program your ATTINY, make sure not to forget to blow the fuses correctly.
The schematic does have an MIDI input section with a 6N138 optoisolator (U5) but if you want to just convert the breath controller input to MIDI data, then you can leave out that part completely. I wanted to merge MIDI input with the breath controller MIDI output but since the Arduino serial library do not allow simultaneous read/writes, I had a lot of difficulties getting the merge to work even using some of the 3rd party serial libraries like SoftwareSerial. Also, SoftwareSerial uses the timer which means that PA4 (pin9) cannot be used for the MIDI output which is what the ATTINY serial library uses for the serial output. The Jumper (JP1) allows me to switch between the MIDI output only software which relies on the Arduino Serial library and transmits on pin 9 vs the SoftwareSerial library which I programmed to transmit on pin 6. Again, if you just need to transmit MIDI out data, you can tie the MIDI output directly to pin 9 and forgo the jumper. I did not put a 5V buffer between the microcontroller output and MIDI connector as I found the ATTINY had enough current to drive the current loop.
The software is very simple for the BC -> MIDI out conversion. As I mentioned, getting the MIDI IN merge was tricky and is not without bugs. I won’t post it until it gets a bit more stable.
So the code below is strictly to deal with breath controller to MIDI conversion only. The ADC on the ATTINY is a 10 bit converter (0-1023) so to convert it to an 8 bit value (0-255), which is needed by MIDI, I divided by 8. Be warned, this code may flood your MIDI stream with data especially with a clock as high as 16mhz. I added a comparison of the previous value so the microcontroller would only send a message if there was a change in BC voltage. It helps but this software tends to send quite a bit of MIDI data.
void setup() {
Serial.begin( 31250, SERIAL_8N1 ); // this uses pin 9 to write
}
void loop() {
int val = analogRead(0) / 8; // read pin 13 on ATTINY
int val2 = 0;
while ( 1 ) {
val2 = analogRead(0) / 8 ;
if ( val2 != val ) {
Serial.write(0xB0); // continuous controller
Serial.write(0x02); // breath controller
Serial.write(val2);
val = val2;
}
}
}
Portable Studio Setup
I see a lot of gear reviews and studio tours on the net, especially YouTube. Some are incredible. There are also a lot of “portable” setup showcases but it doesn’t seem to get the same treatment as the more grandiose studios. Perhaps this is just an indication that most people like to create music in grandiose studios but I typically get more inspiration when I’m in new surroundings – outside in a park
or in some foreign city sitting in hotel room. So on those occasions where some musical inspiration hits me, what are the best way to capture those ideas?
If I want to compose something orchestral, the most practical portable setup is Sibelius with NotePerformer. I am not a big fan of the Sibelius 7 sounds and find that NotePerformer gives a better performance.
This setup is not the cheapest of setups but, to me, is the best bang for the buck for portability when it comes to writing orchestral pieces. You can also use more expensive and expansive orchestral VSTs but you have to be aware of the power of your laptop and storage requirements. This setup is not the best for pop, jazz or contemporary tunes. For that, I like using a small portable keyboard with a DAW. Being a keyboard player, I have a few keyboards ranging from an 88 key weighted action beast to a small portable 37 key mini-key synth. The 37 key mini-key keyboards are not the easiest to play but are the most portable and the ideal size for travel. It fits perfectly in a carry on suitcase. 49 key keyboards are a little too big and those 25 key keyboards are too small to play full chord voicings. My keyboard of choice happens to be the Reface DX. I like that it runs on batteries and has speakers. I just wish it could be used as an audio sound card as well! The combination of the keyboard and simple DAW in a laptop is enough to capture a lot of ideas. The sound sources will be up to you, the kind of music you want to create as well as the power of your laptop. For me, Superior Drummer, Spectronsonics Trillian and Omnisphere does a lot of heavy lifting. For the audio monitoring, earbuds are fine. Remember, we just want to capture ideas, you can always fine tune the final mixdown at home. I should note is that all of my recording is MIDI based. I don’t like having to carry around an extra USB audio device, not only because it adds additional weight but takes up a crucial USB port. If your main axe is a guitar or an instrument that requires audio input, that’s something to be considered. I have a 2013 macbook air 11 inch with 8gb of memory. It has Sibelius 7, NotePerformer 3, and Cubase AI with Superior Drummer, Spectronsonics Trillian and Omnisphere and Halion Sonic SE. It’s more than enough to write sketches or capture ideas on the road. The Reface DX plugs into the laptop with a USB cable. Unfortunately, it is not USB powered, so I do carry the AC adapter. As I mentioned, before, it does run on batteries so the whole rig can be used outside in the park if that was something I wanted to do.
I think there are probably iPad or iPhone based solutions that are similar to my laptop solution but I have not done any research into that. As an aside, I have seen suggestions to use smartphones to record ideas / audio. So, if you’re outside and hear some catchy melody in your head that you want to quickly capture before it leaves your brain forever, just whip out your phone and sing your idea and verbally notate it by articulating the changes/rhythm/tempo. etc.
But for me, this isn’t very practical as I am a horrible singer and self conscious about singing into a phone.