if you are in 3.9.0 and its working as you expect im happy! > On Feb 19, 2016, at 10:46 PM, Forrest Curo <[email protected]> wrote: > > Given that the error isn't from the current distribution, I suppose there's > no issue... > > Ah, I seem to have finally bumbled through installing 3.9.0, thanks! > > On Fri, Feb 19, 2016 at 2:19 PM, Forrest Curo <[email protected]> wrote: > function mychord (data) > with channel = second(data), > keynum = third(data), > velocity = fourth(data) > send("mp:midi", key: key, vel: vel, chan: chan) > send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) > send("mp:midi", key: key + 7, vel: vel, chan: chan) > end > ------------- > response: 'mychord' > ------------- > send("mp:receive", mm:on, mychord) > ------------------ > response: '#t' > ------------------- > [play note] > ------------------ > response: > >>> Error: :vel not a valid keyword argument in > (:key key :vel vel :chan chan) > ------------------------------------ > > That is, it doesn't work in that example because it needs a variable > 'velocity' rather than 'vel'. (?) > > If I fix that and likewise put the variable 'channel' in place of 'chan', > 'keynum' rather than 'key' -- then it works. > > Since I'm working with an ubuntu binary of 3.8.0 I might not be using the > latest examples available(?) [I couldn't install a more recent Grace because > my system seems to be allergic to cmake > cmake4.3 -- > (perhaps for similar 32-bit --> 64-bit issues?) > ------------- > If I get rid of the 'send's in the mp.midi lines > the error instead is: > >>> Error: vel: unbound variable > and changing everything as before yields: > > >>> Error: mp:midi: unknown key: (:vel 91 :chan 0) > in (:key 59 :vel 91 :chan 0) > > The 'send' and the 'mp:midi' ought to be equivalent; but it's working with > the 'send' version, while I don't see why: > mp:midi(key: keynum, vel: velocity, chan: channel) > is not. > (?) > > > > > On Fri, Feb 19, 2016 at 10:43 AM, Taube, Heinrich K <[email protected]> > wrote: > its not clear to me what the issue is. does it not work. > BTW no need to use send() and just call the function directly so > > > send("mp:midi", key: key, vel: vel, chan: chan) > > can be written > > mp:midi(key: key, vel: vel, chan: chan) > > i thought I got rid of all that in the documentation and help files. > > > > On Feb 19, 2016, at 10:04 AM, Forrest Curo <[email protected]> wrote: > > > > The section is "Input Hooks" (speaking of errors... but still not the first > > title I'd look for this under.) > > > > On Fri, Feb 19, 2016 at 7:59 AM, Forrest Curo <[email protected]> wrote: > > Okay, among 'examples' there is a section titled 'Output Hooks' (not, to my > > mind, the most obvious titles to look for) > > and the examples have errors: > > ie > > > > ; An opcode receiver that plays a major or minor chord whenever a > > ; Note On arrives > > > > function mychord (data) > > with channel = second(data), > > keynum = third(data), > > velocity = fourth(data) > > send("mp:midi", key: key, vel: vel, chan: chan) > > send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) > > send("mp:midi", key: key + 7, vel: vel, chan: chan) > > end > > > > ;; assign receiver for the mm:on opcode (Note Ons) > > > > send("mp:receive", mm:on, mychord) > > > > ;; when you are done clear it... > > > > send("mp:receive", mm:on, #f) > > ----------------------------------------------------------- > > > > It can be fixed, however. This works: > > ------------------------------------------------------------- > > function mychord (data) > > with channel = second(data), > > keynum = third(data), > > velocity = fourth(data) > > send("mp:midi", key: keynum, amp: velocity, chan: channel) > > send("mp:midi", key: keynum + pick(3,4), amp: velocity, chan: channel) > > send("mp:midi", key: keynum + 7, amp: velocity, chan: channel) > > end > > > > ;; assign receiver for the mm:on opcode (Note Ons) > > > > send("mp:receive", mm:on, mychord) > > > > > > On Thu, Feb 18, 2016 at 9:10 PM, Forrest Curo <[email protected]> wrote: > > I see a tutorial on sending midi out > > > > and ways to declare a function to be receiving midi in with specific opcodes > > > > but I'm not at all clear on how such a function should be written to > > extract the data when a midi message comes in. > > > > Examples anywhere? > > > > > > > > > > _______________________________________________ > > Cmdist mailing list > > [email protected] > > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > > > > _______________________________________________ > Cmdist mailing list > [email protected] > https://cm-mail.stanford.edu/mailman/listinfo/cmdist
_______________________________________________ Cmdist mailing list [email protected] https://cm-mail.stanford.edu/mailman/listinfo/cmdist
