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
2 midi events in one object name-Ruby
3 posts
• Page 1 of 1
2 midi events in one object name-Ruby
Arrgh!
There is something really simple I am missing here,
So I want to make 2 different MIDI events into one object.
I want @off to have these 2 events encompassed>
@off1[i] = Midi.new 128,1,127-i,127
@off2[i] = Midi.new 128,2,127-i,0
I want to send both of these at the same time.
So I'm hoping I can get the object @off to reference both,
either in the init or event
How to? plsthx 8D
There is something really simple I am missing here,
So I want to make 2 different MIDI events into one object.
I want @off to have these 2 events encompassed>
@off1[i] = Midi.new 128,1,127-i,127
@off2[i] = Midi.new 128,2,127-i,0
I want to send both of these at the same time.
So I'm hoping I can get the object @off to reference both,
either in the init or event
How to? plsthx 8D
-
nix - Posts: 817
- Joined: Tue Jul 13, 2010 10:51 am
Re: 2 midi events in one object name-Ruby
Here's a nice "general purpose" way...
First define this method...
This new method 'output_all' allows a very flexible way to send objects - the first argument is the output index, just like the usual 'output' command - but what follows can be any of....
When you use the 'list' methods, you can even include arrays in the list - they will be 'opened out' and each entry treated as an item in the list.
And, if an array is nested, it will be 'flattened out' into a single long list - and all items output.
Now you can simply collect together your 'double Midi's' into an array, and then send it all at once...
You'll notice that I always bracket my method arguments - Midi.new(a, b, c d) rather than Midi.new a, b, c d - it's a good habit to get into because otherwise statements like that one give the parser a headache - e.g...
How to decide which commas separate the Midi.new arguments, and which separate the array entries? Ruby will do it's best to resolve this kind of thing - but such code is very ambiguous and may not give the expected results!
First define this method...
- Code: Select all
def output_all(out_idx, *args)
args.flatten.each{|item| output(out_idx, item)}
end
This new method 'output_all' allows a very flexible way to send objects - the first argument is the output index, just like the usual 'output' command - but what follows can be any of....
- Code: Select all
output_all(0, object) -> output a single object (the same as 'output')
output_all(0, object1, object2, object3....) -> output all of the listed objects in turn.
output_all(0, array) -> Output all of the object in the array in turn.
When you use the 'list' methods, you can even include arrays in the list - they will be 'opened out' and each entry treated as an item in the list.
And, if an array is nested, it will be 'flattened out' into a single long list - and all items output.
Now you can simply collect together your 'double Midi's' into an array, and then send it all at once...
- Code: Select all
@off[i] = [ Midi.new(128, 1, 127-i, 127), Midi.new(128, 2, 127-i, 0) ]
output_all(0, @off[i])
You'll notice that I always bracket my method arguments - Midi.new(a, b, c d) rather than Midi.new a, b, c d - it's a good habit to get into because otherwise statements like that one give the parser a headache - e.g...
- Code: Select all
@off[i] = [ Midi.new 128, 1, 127-i, 127, Midi.new 128, 2, 127-i, 0) ]
How to decide which commas separate the Midi.new arguments, and which separate the array entries? Ruby will do it's best to resolve this kind of thing - but such code is very ambiguous and may not give the expected results!
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
Don't stagnate, mutate to create!
-
trogluddite - Posts: 1730
- Joined: Fri Oct 22, 2010 12:46 am
- Location: Yorkshire, UK
Re: 2 midi events in one object name-Ruby
Thanks a whole bundle Trog,
NuBeat made the mod.
Hmm, it wasn't as simple as I thought.
Much thanks!
I hope this is handy for others sending MIDI,
there is very little documentation-
neat solution.
NuBeat made the mod.
Hmm, it wasn't as simple as I thought.
Much thanks!
I hope this is handy for others sending MIDI,
there is very little documentation-
neat solution.
-
nix - Posts: 817
- Joined: Tue Jul 13, 2010 10:51 am
3 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 81 guests