[chuck-users] how to mickey-mouse a 'switch' statement into chuck?

Forrest Curo treegestalt at gmail.com
Mon Oct 12 16:21:07 EDT 2015


"Something more elaborate than branching on the value of a specific
variable?"

To use a text keyboard to trigger real-time changes in key, mode ('major',
'minor', etc), record-&-repeat-&-vary (by scale degrees in whichever the
current  key & mode are), accelerate or slow playback, change target
instrument for playback-and/or-midi-keyboard, dump or keep current loop,
etc:
with some 36+ keys available for whatever organization of this works --
and I want to be able to modify the arrangement meanwhile so I don't trap
myself into a bad design...

so running the text input through a maze of logic by ascii values seems too
cumbersome.
I know, I could search-&-replace, but finding a key value in a list
and changing the associated function
just seems a whole lot less ugly!
-------------------------

Um, I'm now trying to install 'tap-plugins' as a prerequisite for
installing 'lick' -- and the instructions for that are telling me, ~'just
cd into folder and run 'make' -- but make can't find anything _to_ make! Do
I really need those plugins to install & use lick?



On Mon, Oct 12, 2015 at 11:41 AM, Spencer Salazar <
spencer at ccrma.stanford.edu> wrote:

> Doing functional stuff in ChucK can be pretty fun (and verbose), but for
> specifically switch-case structures, mostly these can be implemented e.g. as
>
> if(var == 0) // case 0:
> { }
> else if(var == 1) // case 1:
> { }
> else // default:
> { }
>
> You can't do fall-throughs or nutty things like Duff's device, but (making
> up a number) maybe 90% of switch-case uses I see are basically a slightly
> better-looking if-else. Are you doing something more elaborate than
> branching on the value of a specific variable?
>
> spencer
>
>
> On Mon, Oct 12, 2015 at 2:22 PM, Forrest Curo <treegestalt at gmail.com>
> wrote:
>
>> It looks far prettier than a mess of logical spaghetti!
>>
>> But is this documented with examples for the help & understanding of
>> object-challenged geezers from the days of punch-card boxes converted
>> twice/day to error-message listings?
>>
>> On Mon, Oct 12, 2015 at 10:37 AM, Michael Heuer <heuermh at gmail.com>
>> wrote:
>>
>>> Forrest Curo <treegestalt at gmail.com> wrote
>>>
>>>> Since switches have so far not been included, is there a way around
>>>> this?
>>>>
>>>> An array of Events?
>>>>
>>>> An array of functions, either numbered or associative? How to declare
>>>> and call such an array?
>>>>
>>>
>>> ChucK doesn't have function pointers or similar, so I've resorted to
>>> functors
>>>
>>> https://github.com/heuermh/lick/blob/master/lick/fn
>>>
>>> E.g.
>>>
>>> class DoSomething extends Procedure {
>>>   fun void run() { ... }
>>> }
>>> class DoSomethingElse extends Procedure {
>>>   fun void run() { ... }
>>> }
>>>
>>> DoSomething doSomething;
>>> DoSomethingElse doSomethingElse;
>>>
>>> ArrayList procedures;
>>> procedures.add(doSomething);
>>> procedures.add(doSomethingElse);
>>>
>>> while (true) {
>>>   procedures.sample() $ Procedure @=> Procedure procedure;
>>>   procedure.run();
>>>   1::second => now;
>>> }
>>>
>>>
>>> Yeah, it ain't pretty.
>>>
>>>    michael
>>>
>>> _______________________________________________
>>> chuck-users mailing list
>>> chuck-users at lists.cs.princeton.edu
>>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>>
>>>
>>
>> _______________________________________________
>> chuck-users mailing list
>> chuck-users at lists.cs.princeton.edu
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>
>>
>
>
> --
> Spencer Salazar
> Doctoral Candidate
> Center for Computer Research in Music and Acoustics
> Stanford University
>
> spencer at ccrma.stanford.edu
> +1 831.277.4654
> https://ccrma.stanford.edu/~spencer/
>
>
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20151012/a87a0d6c/attachment.html>


More information about the chuck-users mailing list