Sending System Real-Time Messages from a 'home made' MFC to DR-880 drum machine

bossredman

Inspired
Hi.

I have a DIY built Midi Foot controller for controlling my AXefX2.
It has both Midi IN & OUT interfaces & capability.

I recently got hold of a Boss DR-880 drum machine.

If I was to connect a midi lead from the AFX's midi thru port to the DR-880's midi IN port -
Would I be able to send "System Real-Time Messages" from the my MFC to the DR-880.

I believe FA starts & FC stops the DR-880 sequence.

But any ideas on the sytax for sending such a msg.

I'm currently only familiar with sending System Exclusive msg's or PC & CC midi msg's from my MFC..
eg
MIDI.sendSysEx(8,xxxx,true);
MIDI.sendControlChange(0, x, 1);
MIDI.sendProgramChange(x, 1 );
 
Last edited:
Can't help with the messages, but you can get the MFC to the midi out by turning on a global option. I think it's called "Echo MFC" or something like that.

If you can't find it, let me know and I'll try to dig it up
 
Can't help with the messages, but you can get the MFC to the midi out by turning on a global option. I think it's called "Echo MFC" or something like that.

If you can't find it, let me know and I'll try to dig it up

Thanks.

Just to be clear - its a home built controller I'm using (ie Teensy microcontroller with Ardunio code). Not the Fractal MFC.
Are you refering to a MFC global option or an AFX global option?

Also - I've literally just found out about the message.
For the midi library in my Arduino project its:
Code:
MIDI.sendRealTime(Start);
&
Code:
MIDI.sendRealTime(Stop);
with
Code:
using namespace midi;
added to the sketch Header.

So just need to understand if its possible routing wise.
 
hmmm. looks like the midi out port on teh AFX2 is a combined OUT/THRU port.

If I'm using both the IN & OUT ports already for my foot controller - how do you make use of teh THRU?

Is a splitter required?
 
Thanks.

Just to be clear - its a home built controller I'm using (ie Teensy microcontroller with Ardunio code). Not the Fractal MFC.
Are you refering to a MFC global option or an AFX global option?

Also - I've literally just found out about the message.
For the midi library in my Arduino project its:
Code:
MIDI.sendRealTime(Start);
&
Code:
MIDI.sendRealTime(Stop);
with
Code:
using namespace midi;
added to the sketch Header.

So just need to understand if its possible routing wise.
It's a global option on the Axe Fx...

hmmm. looks like the midi out port on teh AFX2 is a combined OUT/THRU port.

If I'm using both the IN & OUT ports already for my foot controller - how do you make use of teh THRU?

Is a splitter required?

The Axe Fx supports bidirectional communication over a 5 or 7 pin midi cable, so you might want to explore that instead of two cables.

Otherwise, then a splitter would be required... And you could split coming out of your controller.
 
Hi - splitter arrived and seems to be working - thanks for the help.
Atleast as far as Starting & Stopping the DR-880

I'm now trying to send a Change Preset command to the DR-880.

The midi implementaion documentation for the DR-880 says:
Control Change:
Bank Select MSB
Status Second Third
BnH 00H mmH

n = MIDI Channel Number: 0H–FH (ch.1–ch.16)
mm = Upper byte in Bank Number:00H (preset) 01H (user)

But cant seem to get this to work though using a MIDI.sendControlChange(,,,) though.
eg: MIDI.sendControlChange(0xB9, 0x00, 0x15);

Similarly for the Prgram change:
CnH
ppH

The I realised that the midi library IM using shows teh syntax for a CC as:
sendControlChange(DataByte inControlNumber, DataByte inControlValue, Channel inChannel);

..which is essentially in reverse.

SImply reversing teh byte order has no affect.

Any idea how I can get this to work pls.
 
Actually - never mind.

It just dawned on me after reading the midi implementaion documentation again for the 100th time, that these command refer to "Kits" & not "Patterns" or Preset as I was wrongly refereing them to as.

Argghhhhhh - literally wasted a week of my life trying to get something that couldn't work - to work.

Don't know if its a limitation of this particular old model of drum machine or not?
Do you know if Pattern Change is controlable on newer machines?
 
Looks like I can send a select Song sysex to my drum machine - so now I'm explorering that.

Trouble is the only way I can get that to work is to set a midi mode on the Drum m/c that then also needs an external midi clock sent to it for playback to start.
MIDI:
The DR-880 will be the slave. It will start/stop according
to messages received from an external MIDI device,
and its playback will synchronize to Timing Clock messages
received from an external MIDI device.

So with a little code added to my foot controller I'm sending midi clock out via this message to the dr-m/c.

Code:
    bpm = 100;
    tempo = 1000/(bpm/60);
    intervalT = tempo/24;    

    byte DR880_Sysex_MidiClock[4] = {0xF0, 0x41, 0xF8, 0xF7};
                                   
    unsigned long currentMillis = millis();
    if(currentMillis - prevMillis > intervalT)
    {
         prevMillis = currentMillis;
         MIDI.sendSysEx(4, DR880_Sysex_MidiClock, true);
    }

But because I'm using a splitter on the M-Out of the footcontroller (1 to Dr m/c & the other to the AFX) - it looks like teh AFX is reacting to that msg & constantly sending out Re-sync sysex's (ie 0x21).

Would that be expected?
I thought as I'd included the dr m/c ID (0x41) in the DR880_Sysex_MidiClock msg teh AFX should ignore it - right?
 
Is there anyway I can send a MIdiClock msg from my Foot controller such that it is totally ignored by the AFX?

I thought this would do it
Code:
 byte DR880_Sysex_MidiClock[4] = {0xF0, 0x41, 0xF8, 0xF7};

MIDI.sendSysEx(4, DR880_Sysex_MidiClock, true);

..but evidently not.
 
Back
Top Bottom