Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright

Setup priority on MIDI Execution - Delay?

For general discussion related FlowStone

Re: Setup priority on MIDI Execution - Delay?

Postby nix » Wed Apr 29, 2015 8:43 pm

It's fine to delay triggers-
even MIDI(with Ruby) I imagine.
It's not necessary here though, the link order thing should be fine IMO
If the changes are too fast, and it doesn't work right,
you can introduce a 'timer' if needed, on the trigger

Nice idea
User avatar
nix
 
Posts: 817
Joined: Tue Jul 13, 2010 10:51 am

Re: Setup priority on MIDI Execution - Delay?

Postby Walter Sommerfeld » Thu Apr 30, 2015 1:51 pm

maybe the R&D primitive: Midi Buffer

could help here...

Flush the second buffer after a short delay?!
User avatar
Walter Sommerfeld
 
Posts: 249
Joined: Wed Jul 14, 2010 6:00 pm
Location: HH - Made in Germany

Re: Setup priority on MIDI Execution - Delay?

Postby KG_is_back » Thu Apr 30, 2015 2:38 pm

You may use Ruby, to order midi messages in specific order, if they arrive at the same time.

For example this code will accumulate all note on and note off messages that arrive at the same time and order them properly, that all note on preceed note off. Other messages (like CC) are simply passed as they are
input midiIn, output midiOut
Code: Select all
def init
@noteon=[]
@noteof=[]
end


def event i,v,t
if i==0 #ariving messages
   midi=@in.to_array
   
   if midi[0]==144
       @noteon << midi
       input 99,nil  #schedule buffers emptying after all notes are received
   elsif midi[0]=128
      @noteof<< midi
      input 99,nil #schedule buffers emptying after all notes are received
   else
   output @in
   end

elsif i==99 #clear buffer
@noteon.each{|note|
output Midi.new(note[0],note[1],note[2],note[3])}
@noteof.each{|note|
output Midi.new(note[0],note[1],note[2],note[3])}
@noteon=[]
@noteof=[]
end
end


KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Previous

Return to General

Who is online

Users browsing this forum: No registered users and 66 guests