Hello Forrest,

The import.ck script is a workaround for this issue

Add namespaces and import statements #34
https://github.com/spencersalazar/chuck/issues/34

I believe many other ChucK projects use something similar.  If you don't want to see plugin related warnings, you can just comment out from around line 387 down, and of course anything else you don't need.

   michael


On Mon, Oct 12, 2015 at 10:34 PM, Forrest Curo <treegestalt@gmail.com> wrote:
Okay, I finally found the documentation re usage... https://github.com/heuermh/lick/wiki

Shreds that just declare classes so that other shreds can instantiate & use them... It makes my mind blur, but so it goes!

On Mon, Oct 12, 2015 at 3:54 PM, Forrest Curo <treegestalt@gmail.com> wrote:
I'm gathering that I can just put 'machine.add(<any of these classes in the directory that I want to use>)' and
that should work(?)

On Mon, Oct 12, 2015 at 2:54 PM, Forrest Curo <treegestalt@gmail.com> wrote:
Okay, I did find the github zip for tap-plugins -- but the later plugins are struggling; and I wasn't thinking of using them... so I'll assume that I'm okay if I don't, for now.

On Mon, Oct 12, 2015 at 1:32 PM, Michael Heuer <heuermh@gmail.com> wrote:
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



_______________________________________________
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