|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
recording MIDI inputHi,
I have a newbie question... I am looking to record midi input to grace... I am guessing by the "input hooks" sal tutorial that this is done by defining a midi receiver (call it "myrecorder") and then running it with a send("mp:receive", myrecorder) command. I was hoping someone already had some code created to do it... If not, having "myrecorder" shove the midi note information into a list isn't difficult and I suppose each note on or note off can be paired with the output of a call to the now() function... Is there a better method?
In related matters, is there a way to exchange midi tempo and other information between a DAW and Grace (besides using OSC)? I am on a PC for what it is worth. Thanks,
Charles _______________________________________________ Cmdist mailing list Cmdist@... http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist |
|
|
Re: recording MIDI inputim sorry its taking so long to get to this. you are correct you use a
hook and push data onto a "recoding list" . if you cant get this going i'll send a demo out early next week once the end-of-semester madness is over! --rick On Dec 6, 2011, at 9:17 PM, Landspeedrecord wrote: > Hi, > > I have a newbie question... > > I am looking to record midi input to grace... I am guessing by the > "input hooks" sal tutorial that this is done by defining a midi > receiver (call it "myrecorder") and then running it with a > send("mp:receive", myrecorder) command. I was hoping someone > already had some code created to do it... If not, having > "myrecorder" shove the midi note information into a list isn't > difficult and I suppose each note on or note off can be paired with > the output of a call to the now() function... Is there a better > method? > > In related matters, is there a way to exchange midi tempo and other > information between a DAW and Grace (besides using OSC)? I am on a > PC for what it is worth. > > Thanks, > Charles > _______________________________________________ > Cmdist mailing list > Cmdist@... > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist _______________________________________________ Cmdist mailing list Cmdist@... http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist |
|
|
Re: recording MIDI inputHi,
I think I have a bit of midi-recording code working in SAL... But the values I am getting for the time seem wrong, in particular the very first time recorded is a really weird incredibly small number instead of just being 0.
Any help is appreciated, or if there is cleaner or better way that would be even better. Here is my code so far: variable incoming-midi = {} variable first-note-time = #f
function midi-recorder (mididata) begin with current = now(), opcode = first(mididata), channel = second(mididata), keynum = third(mididata),
velocity = fourth(mididata) if (! first-note-time) set first-note-time = current, current = 0 else set current = (current - first-note-time)
set incoming-midi &= list(current, opcode, channel, keynum, velocity) end end end ;to begin recording: begin variable incoming-midi = {}
variable first-note-time = #f send("mp:receive", mm:on, midi-recorder) end ;to stop the recording send("mp:receive", mm:on, #f) And here is an example of what got recorded into the global variable ("incoming-midi") after a test run using a midi file created from the reich tutorial example: {{4.3472355173435e-005 9 0 64 63} {0.86995516913521 9 0 66 63} {0.87000498120688 9 0 66 63} {0.87003215142977 9 0 71 63} {0.87007109541264 9 0 71 63} {0.87009781279812 9 0 73 63} {0.87015079472985 9 0 73 63} {0.87018068197176 9 0 74 63} {0.87021781461044 9 0 74 63} {0.8702449848297 9 0 66 63} {0.87029162704494 9 0 66 63} {0.8703192501016 9 0 64 63} {0.87035592990287 9 0 64 63} {0.87038445863436 9 0 73 63} {0.87042113843199 9 0 73 63} {0.87044740298006 9 0 71 63} {0.87048453561692 9 0 71 63} {0.87051080016317 9 0 66 63} {0.87054793280004 9 0 66 63} {1.2680038943981 9 0 74 63} {1.268050989449 9 0 74 63} {1.2680808766945 9 0 73 63} {1.2681343114618 9 0 73 63} {1.2682103880816 9 0 64 63} {1.2682579359698 9 0 64 63} {1.2682783136352 9 0 66 63} {1.2683104650641 9 0 66 63} {1.2683322012417 9 0 71 63} {1.2683638998333 9 0 71 63} {1.2683860888465 9 0 73 63} {1.2684182402754 9 0 73 63} {1.268439976453 9 0 74 63} {1.2684725807194 9 0 74 63} {1.2684943168952 9 0 66 63} {1.2685260154867 9 0 66 63} {1.2685477516661 9 0 64 63} {1.6363184349957 9 0 64 63} {1.6363383598236 9 0 73 63} {1.6363859077119 9 0 73 63} {1.6364185119783 9 0 71 63} {1.6366259113347 9 0 71 63} {1.6366530815576 9 0 66 63} {1.6367001766066 9 0 66 63} {1.6367309695252 9 0 74 63} {1.6367776117386 9 0 74 63} {1.6368097631675 9 0 73 63} {1.8736562061313 9 0 73 63} {1.8736820178437 9 0 64 63} {1.8737300185676 9 0 64 63} {1.8737617171573 9 0 66 63} {1.8738119820682 9 0 66 63} {1.8738445863346 9 0 71 63} {1.8738894172002 9 0 71 63} {2.0213331521991 9 0 73 63} {2.0213829642726 9 0 73 63} {2.0214101344936 9 0 74 63} {2.021451795501 9 0 74 63} {2.1085146945625 9 0 66 63} {2.1085577140784 9 0 66 63} {2.1509378254777 9 0 64 63} {2.1825856994074 9 0 64 63} {2.2213720961827 9 0 73 63} {2.2673853190245 9 0 73 63} {2.3044518407823 9 0 71 63} {2.3515957976742 9 0 71 63} {2.387618077255 9 0 66 63} {2.4386953765352 9 0 66 63} {2.4715867409323 9 0 74 63} {2.5225698501126 9 0 74 63} {2.5556355567642 9 0 73 63} {2.6074994339542 9 0 73 63} {2.6385549970582 9 0 64 63} {2.6925666802526 9 0 64 63} {2.7229207988057 9 0 66 63} {2.7776004166099 9 0 66 63} {2.8049295838427 9 0 71 63} {2.8623878096278 9 0 71 63} {2.8909908074093 9 0 73 63} {2.9475401892869 9 0 73 63} {2.9730715935348 9 0 74 63} {3.0325182266915 9 0 74 63} {3.0595693519899 9 0 66 63} {3.1184879771772 9 0 66 63} {3.1458429561208 9 0 64 63} {3.2025567178371 9 0 64 63} {3.2284268441799 9 0 73 63} {3.287489924378 9 0 73 63} {3.3141271566365 9 0 71 63} {3.3714735316771 9 0 71 63} {3.3980025358869 9 0 66 63} {3.4577444187835 9 0 66 63} {3.484926413983 9 0 74 63} {3.5425426798902 9 0 74 63} {3.5707888420966 9 0 73 63} {3.6366508173705 9 0 73 63} {3.654834035231 9 0 64 63} {3.712540415705 9 0 64 63} {3.739727844948 9 0 66 63} {3.7975338495671 9 0 66 63} {3.8253167594994 9 0 71 63} {3.882491056469 9 0 71 63} {3.909039532673 9 0 73 63} {3.9675098492062 9 0 73 63} {3.9950120001813 9 0 74 63} {4.051609835622 9 0 74 63} {4.0781465380605 9 0 66 63} {4.1374609428076 9 0 66 63} {4.1554195535045 9 0 64 63} {4.2225367930096 9 0 64 63} {4.2505728388369 9 0 73 63} {4.3077548340352 9 0 73 63} {4.3354114024369 9 0 71 63} {4.3916216093821 9 0 66 63} {4.8541221754294 9 0 71 63}}
Thanks, Charles On Tue, Dec 13, 2011 at 10:57 AM, Heinrich Taube <taube@...> wrote: im sorry its taking so long to get to this. you are correct you use a hook and push data onto a "recoding list" . Reality is the original Rorschach. Verily! So much for all that. —Malaclypse the Younger, Principia Discordia, Pages 00049–00050 _______________________________________________ Cmdist mailing list Cmdist@... http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist |
|
|
Re: recording MIDI inputWhoops...
I figured out 1 thing I was doing wrong... this start and stop code specified mm:on which was a mistake, it should be this: ;to begin recording: begin
variable incoming-midi = {} variable first-note-time = #f send("mp:receive", midi-recorder) end ;to stop the recording send("mp:receive", #f)
On Fri, Dec 16, 2011 at 10:49 PM, Landspeedrecord <landspeedrecord@...> wrote: Hi, Reality is the original Rorschach. Verily! So much for all that. —Malaclypse the Younger, Principia Discordia, Pages 00049–00050 _______________________________________________ Cmdist mailing list Cmdist@... http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist |
| Free embeddable forum powered by Nabble | Forum Help |