Thomas Posted May 19, 2006 Report Share Posted May 19, 2006 Hallo!I need some input for the software design for a MidiBox-Chain. The first MB is for Motorfader(and menu-buttons) the second are for any other pots and display. When a fader is moved the first MB should send a message "fader X/1 moved" or something like that. Or other not time critical messages, debug messages. Don't know what will t be in the future. No problem until now, this works. BUT: those message are relatively long sysex-Strings. So they should not be sended at every call of AIN_NotifyChange. My idea was to buffer such messages and send them if there is "less traffic on the line"...Whats the best place to send those messages? Display_Tick()? Timer()? Tick()? Or somewhere else? Quote Link to comment Share on other sites More sharing options...
stryd_one Posted May 19, 2006 Report Share Posted May 19, 2006 Why not just send it via MIDI CC's? Quote Link to comment Share on other sites More sharing options...
Thomas Posted May 19, 2006 Author Report Share Posted May 19, 2006 -verboseDon't understand what you mean. Quote Link to comment Share on other sites More sharing options...
stryd_one Posted May 20, 2006 Report Share Posted May 20, 2006 -verbose heheheheI mean... Why send the message saying the fader has moved as some big nasty sysex message? Why not just send MIDI CC's? Quote Link to comment Share on other sites More sharing options...
audiocommander Posted May 20, 2006 Report Share Posted May 20, 2006 (...) and send them if there is "less traffic on the line"...Whats the best place to send those messages? Display_Tick()? Timer()? Tick()? That clearly depends:Tick() is called every tick (as the name sais), so this will be quite often, so to speak a lot more often than AIN_ReceiveDisplay_Tick() depends on how often it's called. If you call it every time AIN changes, it will be the same as in AIN. So except having unordered code no gain.Timer() would be suitable if set up right, but:the question really remains: Why not sending CCs?=> http://www.ucapps.de/midibox_link.html"(...) not only common MIDI events, but also other informations can be transmitted without reaching the host software at the end of the chain"Regards,Michael Quote Link to comment Share on other sites More sharing options...
Thomas Posted May 20, 2006 Author Report Share Posted May 20, 2006 Hallo!I think you mean MIDI-Controller Messages. As internal (masked stream with f9,fe) stream this would be ok. But CC have only 3bytes. With some kind fo encoding this could would work. But I think I will use the timer function to trigger the "remote printing". Quote Link to comment Share on other sites More sharing options...
audiocommander Posted May 20, 2006 Report Share Posted May 20, 2006 May I ask what you are trying to archive?Why do you want to encode MIDI Messages? When you split faders and pots over multiple Midiboxes, I think you don't have different cases but two Core Modules in the same housing. So you need a Core-to-Core-Link as described in the link I posted above. You can send every message you like from Core1 to Core2. MIOS is taking care for marking the messages, so they do not leave the last Core!Or am i missing something ??? Quote Link to comment Share on other sites More sharing options...
stryd_one Posted May 20, 2006 Report Share Posted May 20, 2006 Yeh CC is an acronym for Continuous Controller, it's what you say when you're so lazy even 'controller' is too much to type ;) (Like me for example)Edit: beaten by AC Quote Link to comment Share on other sites More sharing options...
audiocommander Posted May 20, 2006 Report Share Posted May 20, 2006 Edit: beaten by ACYeah, I'm the speediest typer ever ;DDon't mess with the man who types faster than it's own shadow ;D ;Dhehe... Quote Link to comment Share on other sites More sharing options...
stryd_one Posted May 20, 2006 Report Share Posted May 20, 2006 :o *stares in awe* ;) Quote Link to comment Share on other sites More sharing options...
TK. Posted May 20, 2006 Report Share Posted May 20, 2006 Timer() would be a bad choice, because it interrupts the main task, and could therefore also interrupt a MIDI stream; this could result into sporadically sent invalid MIDI events.So, if timed transactions are required, the Timer should request a send, and Tick() should check for this request flag, clear it and send the events (similar to the approach used for DISPLAY_Tick())Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Thomas Posted May 20, 2006 Author Report Share Posted May 20, 2006 Thanks Thorsten, that's exactly what I wanted to know. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.