Array documentation, such as .cap(), .size, etc.
Where is the documentation for this stuff? I spent a ton of time just guessing and looking at other examples until I found out how to make an OSC event add a note to the end of an arpeggiating chord (very Glass-like). I got it working, although I might ask for help later on something related, but is there any comprehensive array documentation? I found .cap() used in the examples, but never explained. Thanks, Andrew
Andrew;
Where is the documentation for this stuff?
The honest answer is probably "Scattered over /examples/, the manual, the online docs, the VERSIONS file and with the errata in the list archives", like all of the other docs. I feel we should consider this is a good thing; you'll have to look for a while but you'll also find all of these other things that are also nice and stimulating ;¬). For arrays the best place right now is probably the VERSIONS file as the last update added significant additions, I think those are also demonstrated in /examples/arrays. (Second basement, bottom left corridor, up the stairs, third shelf, below the skull. Bring a candle and beware of the cat...) You may want to beware as right now there are serious issues with arrays and the type system. I really hope we'll get a speedy fix for those; it used to be exciting to hunt for them but now it's been enough, I feel. It'd be nice if the DEV's could spare some time to comment on whether that issue (or those issues) have now been documented in sufficient depth to pinpoint and fix the cause. Cheers, Kas.
Hey, Kassen wins.
But, seriously, the page needs some updating. Under "what's new?" there are
examples listed that aren't listed in the examples page--not only that, but
one is misspelled! ("examples/array/array_dyanmic.ck"). So, basically, this
is exactly what I want to do, but it requires some spelunking gear and a
frustrating amount of time to figure out.
Also, there are a bunch of new UAnae, I see? I'm not really sure where to
go to see what they do, though. Hey guys, I like this language, but there
needs to be some serious documentation work, even to the level of "this
exists." If you (anyone) want, contact me off-list and I can work on it. I
don't really know what's going on with the programming thing, but I'm an
English major with good InDesign/web skills and could provide the site with
some updated pages. I'd love to be able to learn this stuff, just because
of the way that ChucK makes you think differently than, say, Max/MSP where
you just need a [notein] and you've got easy (boring) MIDI synths. Okay,
enough soliloquizing, get ChucKing.
-Andrew
On Tue, Apr 28, 2009 at 4:04 AM, Kassen
Andrew;
Where is the documentation for this stuff?
The honest answer is probably "Scattered over /examples/, the manual, the online docs, the VERSIONS file and with the errata in the list archives", like all of the other docs. I feel we should consider this is a good thing; you'll have to look for a while but you'll also find all of these other things that are also nice and stimulating ;¬).
For arrays the best place right now is probably the VERSIONS file as the last update added significant additions, I think those are also demonstrated in /examples/arrays. (Second basement, bottom left corridor, up the stairs, third shelf, below the skull. Bring a candle and beware of the cat...)
You may want to beware as right now there are serious issues with arrays and the type system. I really hope we'll get a speedy fix for those; it used to be exciting to hunt for them but now it's been enough, I feel. It'd be nice if the DEV's could spare some time to comment on whether that issue (or those issues) have now been documented in sufficient depth to pinpoint and fix the cause.
Cheers, Kas. _______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Andrew;
But, seriously, the page needs some updating. Under "what's new?" there are examples listed that aren't listed in the examples page--not only that, but one is misspelled! ("examples/array/array_dyanmic.ck"). So, basically, this is exactly what I want to do, but it requires some spelunking gear and a frustrating amount of time to figure out.
Yes. This happens. Typically the VERSIONS file is up to date with the changes/additions/fixes, that's quality info but it's of course structured based on the time at which features were added so that makes it a bit hard to use as a "tutorial" and it's quite dense. Most new features also get one or a few examples. The two combined cover more than the manual are are often more accurate than the online docs. There is the manual, there are the online docs but there are some truly arcane features that are only "documented" on the list because a DEV mentioned them or because somebody with Java/C/C++ experience "accidentally" used them. I don't think that the full extend of the cast ( $ ) command is in any official docs for example. On the bright side; there is a list and if/when you can't find something you can simply ask. While I'm a big fan of the examples dir I agree there are some stray issues here and there. Some of the examples do things in ways that seem slightly odd to me, some even generate the occasional error. We could have a cleanup spree there but many of the examples are also creative works in their own right and editing those might be hard.
Also, there are a bunch of new UAnae, I see? I'm not really sure where to go to see what they do, though.
I agree. Some of the UAnae even have examples that seem to assume we already understand what they are trying to accomplish. Since analysis might touch upon fields like heavy mathematics, statistics and so on I don't think it's a given that a dedicated electronic musician will have the backing to intuitively grasp what's going on. A paragraph or two would help a lot there, I'm especialyl looking at "Flux" and "RollOff" here, Centroid could stand clarification as well.
Hey guys, I like this language, but there needs to be some serious documentation work, even to the level of "this exists." If you (anyone) want, contact me off-list and I can work on it. I don't really know what's going on with the programming thing, but I'm an English major with good InDesign/web skills and could provide the site with some updated pages.
Yes, structure for a community effort there would be a good idea, I agree.
I'd love to be able to learn this stuff, just because of the way that ChucK makes you think differently than, say, Max/MSP where you just need a [notein] and you've got easy (boring) MIDI synths. Okay, enough soliloquizing, get ChucKing.
I don't really see why we shouldn't have cheap&cheerful MIDI synths as well. In the long run I'd like a MIDI object that would be a lot more like the Hid one. Complexity and detail are nice but I don't see much skill in remembering what number a note-on on channel 1 is. Talking about separate bytes doesn't seem very expressive outside of sys-ex. Good points, Kas.
Andrew C. Smith:
Where is the documentation for this stuff? I spent a ton of time just guessing and looking at other examples until I found out how to make an OSC event add a note to the end of an arpeggiating chord (very Glass-like). I got it working, although I might ask for help later on something related, but is there any comprehensive array documentation? I found .cap() used in the examples, but never explained. Thanks, Andrew
Hello Andrew, If you are familar with the java collections API, you may find the ArrayList class in LiCK easier to use than ChucK arrays. A bit more verbose though. http://github.com/heuermh/lick/tree/master ArrayList notes; for (0 => int i; i < 32; i++) { Note note; Math.rand2(440, 880) => note.freq; notes.add(note); } // sample notes randomly while (true) { notes.sample() $ Note @=> Note note; play(note); } // for loop for (0 => int i; i < notes.size(); i++) { notes.get(i) $ Note @=> Note note; play(note); } // iterator style notes.iterator() @=> Iterator iterator; while (iterator.hasNext()) { iterator.next() $ Note @=> Note note; play(note); } // functor style PlayNote playNote; notes.forEach(playNote); class PlayNote extends UnaryProcedure { fun void run(Object value) { value $ Note @=> Note note; play(note); } } etc. michael
participants (3)
-
Andrew C. Smith
-
Kassen
-
Michael Heuer