Help! PlayCommand Agent X

René Micout rene.micout at numericable.com
Fri Oct 12 12:39:44 EDT 2012


Thierry,
J'ai lu tous les derniers mails sur le sujet... Que de courage !  ;-)
René

Le 12 oct. 2012 à 17:41, Thierry Douez <th.douez at gmail.com> a écrit :

> 2012/10/12 Peter M. Brigham <pmbrig at gmail.com>:
>> Instead of delving into PlayCommand Agent X (whatever that is, and my ignorance may make this comment useless), could you not just write your own simpler custom play command in LC, to mirror what you get from shakobox, something along the lines of:
>> 
>> local tChannel, tVolume, tNote, tInstrument, tID, tTempo
>> 
>> on mbPlay tInstrument, tTempo, tNotes
>>   -- handle default assignments here
>>   -- get duration from the tTempo variable
>>   repeat for each item tNote in tNotes
>>      SunnYmidi.Play tChannel, tDuration, tVolume, tNote
>>   end repeat
>> end mbPlay
>> 
>> Probably too crude, but you get the idea. Am I out in left field thinking I'm playing soccer?
>> I usually look for an LC-native way of doing things.
> 
> Yes Peter, you are right.
> 
> Here is the code I posted yesterday on my 3 minutes to emulate Agent X,
> which just do what you are saying:
> 
> on SBplay instrument, _tempo, notestring
>   sunnYmidi.Set 1, "instrument", instrumentID( instrument)
>   sunnymidi.HCplay 1, _tempo, notestring
> end SBplay
> 
> on SBstartNote instrument, pitch, velocity
>   sunnYmidi.Set 1, "instrument", instrumentID( instrument)
>   sunnYmidi.Play, 1, -1, velocity, pitch
> end SBstartNote
> 
> on SBstopNote instrument,pitch
>   sunnYmidi.Set 1, "instrument", instrumentID( instrument)
>   sunnYmidi.Play, 1, 0, 0, pitch
> end SBstopNote
> 
> private function  instrumentID instrument
>   -- assuming the ID is correct
>   if instrument is a number then return instrument
>   -- custom prop containing on each line:  IDinstrument,InstrumentName
>   get the GM_Instruments of this stack
>   filter IT with "*," & instrument
>   if IT is empty then return 1 -- piano
>   return item 1 of IT -- the ID
> end instrumentID
> 
> With the proof: ( copy-paste this script from Shakobox documentation)
> 
> on mouseup
>  --    "Nic's Russian Tune (Katyushka)" from "Knit Your Own Yoghurt"
>  put "e4q. f#4e g4q. e4e gq f#e ee f#q b3q f#q. ge aq. f#e aq ge f#eeq rq " & \
>    "b4q e5q d5q e5e d5e c5q b4e a4e b4q e4q c5q. a4e b4q. g4e a4q
> g4ef# 4e e4h " & \
>    "g4q. a4e b4q. g4e b4q a4e g4e f#4q a4q a4q. b4e c5q. b4e c5q b4e
> a4e g4q rq " & \
>    "e5q g5q b4q b4e d5e e5q d5e c5e e5q b4q e5q. c5e e4q. b4e d#5q
> e5e f#5e e5h"  \
>        into theSong
>  sbplay 24,125,theSong
> end mouseup
> 
> 
> Thierry
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list