Page 1 of 1

Fluxamasynth v3.0 Arduino & MIDI simultaneous

Posted: Tue May 19, 2020 6:16 pm
by quarterturn
Is there a way to make both MIDI and Arduino serial input available to the sound chip at the same time? I tried using the right-hand jumper and the custom MIDI input on the TX pin (Arduino Leonardo), but it seems to block booting.

What I'd like to accomplish is have the Arduino handle the tasks of setting patches on channels, reverb, chorus, etc... and let my Beatstep Pro handle the sequencing. I can probably handle assigning knobs on the Beatstep Pro to program and bank changes, but stuff requiring a sysex isn't going to work. Basically I'd like the Fluxamasynth to act as a small GM box so I can work on ideas away from my main setup.

Re: Fluxamasynth v3.0 Arduino & MIDI simultaneous

Posted: Wed May 20, 2020 9:55 am
by quarterturn
I guess for this to work it has to be wired so the MIDI jack goes to the Serial1 RX, and then SoftwareSerial has to be used to send it back out again. I'm not sure how well that will work at the MIDI baudrate though.

For now it's enough to have control mode knobs assigned to the CCs, Program Changes, and NRPNs to get patch changes, bank changes, and volume control per channel.

Re: Fluxamasynth v3.0 Arduino & MIDI simultaneous

Posted: Wed May 20, 2020 11:20 pm
by paul

The easiest way to do this is with a serial port that is not attached to the USB such as Serial1 on a Mega.
Here's a brief sketch of what I think is the easiest way.

• Make sure the Fluxamasynth solder jumper is set to the left hand pad to the middle - right hand pad is bare (not connected). You can test midi in by jumpering pin 3 to pin 4 for a quick test of MIDI input.

• Jump pin3 down to the (Mega?) Serial1 RX pin.
• Jump pin4 down the (Meag?) Serail1 TX pin.
• Receive the midi serial and echo it back out again, on TX - this will introduce some latency but hopefully not too noticeable, the UART RX, TX bufffers will insure that no serial gets missed.

• Also send your other midi commands out Serial1TX (jumped to pin 4). I think the serial library has a way to find out if the transmit buffer is empty so you don't end up cutting up a NoteOn command or something.

I've got an intern that is working on a project that does something very similar and it works, so we'll write up in the next week or so, as soon as he finishes school and makes it into the shop.

Post your code here and I'll try to give you some help. The best way to do serial port programming is to hard wire some numbers then receive and send them back out - or print to serial monitor to see if you've got it correct.

hope that helps,