Forrest Curo <treegestalt@gmail.com> wrote:
"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?

No.  Without them chuck will complain when loading the import.ck file

$ chuck + import.ck
...
[TapeDelay.ck]:line(26): cannot extend incomplete type 'Swh'
[TapeDelay.ck]:line(26): ...(note: the parent's declaration must preceed child's)
[RubberBand.ck]:line(26): cannot extend incomplete type 'Ladspa'
[RubberBand.ck]:line(26): ...(note: the parent's declaration must preceed child's)
"LiCK imported." : (string)

but everything else will work fine.  And installing all of those plugins is a real mess, especially on OSX.  I should probably cut a docker image at some point.

   michael

 
On Mon, Oct 12, 2015 at 11:41 AM, Spencer Salazar <spencer@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@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@gmail.com> wrote:
Forrest Curo <treegestalt@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@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users



_______________________________________________
chuck-users mailing list
chuck-users@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



_______________________________________________
chuck-users mailing list
chuck-users@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users



_______________________________________________
chuck-users mailing list
chuck-users@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users