Jump to content

How to forward midibox link in mios32


jmayes
 Share

Recommended Posts

I haven't added this feature to MIOS32 since multiple MIDI INs are available, so that chaining isn't really required anymore.

Instead you can use a starlike wiring.

To give you a more sufficient answer, I would need to know, how many cores are you planning to connect together?

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi, Thank you TK. At least I know I did not miss something, I spent hours looking for it.

At this point the Core32 is sharing a midi line with a regular core8 which I have turned on full forwarding. I can access the core32 in that config but not the core8 board. I really need them to be on the same string as the core8 adds the stops and swell pedal to the keynotes the core32 generates, that way both are on the same port which is tidy for my sequencer. I have the core32 selectively forwarding the midi info I need, I just need it to forward the midilink info too.

I don't plan on more core32's but there may by additional core8's but I can set the proper modes on them.

Thankx again,

Jmayes

Link to comment
Share on other sites

These is really a special setup! :)

I wrote a small application which demonstrates how a MIDIbox Link Endpoint can be handled:

http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fquickies%2Fmidibox_link_ep%2Fapp.c

Most important part is the filter handling:


/////////////////////////////////////////////////////////////////////////////
// This hook is called when a MIDI package has been received
/////////////////////////////////////////////////////////////////////////////
void APP_MIDI_NotifyPackage(mios32_midi_port_t port, mios32_midi_package_t midi_package)
{
// toggle Status LED on each incoming MIDI package
MIOS32_BOARD_LED_Set(1, ~MIOS32_BOARD_LED_Get());

// MIDIbox Link Endpoint Handling:
// activate filter when 0xf9 has been received
// deactive filter when 0xfe has been received
// this is only done for UART ports
if( (port & 0xf0) == UART0 ) {
if( midi_package.evnt0 == 0xf9 ) {
midibox_link_filter_uart |= (1 << (port & 0xf));
return; // control word received: don't forward, exit!
} else if( midi_package.evnt0 == 0xfe ) {
midibox_link_filter_uart &= ~(1 << (port & 0xf));
return; // control word received: don't forward, exit!
}

// exit as long as filter is active
if( midibox_link_filter_uart & (1 << (port & 0xf)) )
return; // filter active...
}


// forward any UART to USB0
if( (port & 0xf0) == UART0 ) {
MIOS32_MIDI_SendPackage(USB0, midi_package);
}

// forward USB0 to UART0
if( port == USB0 ) {
MIOS32_MIDI_SendPackage(UART0, midi_package);
}
}
[/code]

The forwarding method has to be adapted depending on how you organized your MIDI setup

Best Regards, Thorsten.

Link to comment
Share on other sites

Thank you again for the help TK, I am sending another beer right now!

I'm not sure if I need the endpoint though, my setup goes ( Computer-midi-out > core32 > core8 > computer-midi-in ).

Will try it out soon!

Very close to publishing the whole rig now.

Thankx again,

Jmayes

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...