On 9/2/07, Arthur Clemens
Hi,
Hi Arthur, welcome! I'll try to help you with some of this, we'll see how far we get. Some of it looks a bit odd to me.
I have written a demo application to let Chuck be controlled through Processing. See my blog post: http://visiblearea.com/blog/bin/view/ VisibleArea/ProcessingandChucK
Cool stuff. The demo now plays audio files, but it would be easy to change this
to let it create and play custom audio.
- It should be possible to start and stop the ChucK VM in Processing, but no stop handlers are called at closing the app, leaving the VM in the air. I understand this is an issue with Java applets.
Yes, this is a bit mysterious to me. The way to go about this would be staring ChucK using either "chuck --loop" or by feeding it a file like this; "ChucK myfile.ck" using a file that will keep running. The ChucK VM should exit after you give the system a command to "chuck --kill" or after the last shred has been removed from it (if it's not set to --loop). If it doesn't properly exit after either then that would probably be a bug. I don't see how applets would affect this as this would be something between the OS and ChucK, ChucK shouldn't be affected by what sort of thing send those system calls. Strange. - I would have liked to use 1 FilePlayer class that is loaded only
once into the VM, but I have not found a way to do this. Either: 1) call 'chuck fileplayer.ck' before demo files are called causes errors on running the demo files that FilePlayer is unknown 2) for every demo file call 'chuck fileplayer.ck chuckdemo.ck:all:sorts:of:params' causes an error that FilePlayer is already in the global VM space and this will stop the demo file from running
I looked at your code for a bit and noticed you wrote a public class in one file, then redefined the class in another... Maybe it would be best if I'd review how public classes should work in ChucK. A public class is usable by everything in the whole VM. So; in order to use it you define it once and run this code. If the class enters the VM without errors then it should be fine, if it isn't acessible afterwards the first thing I'd verify in your situation is wether you aren't accidentally starting a second instance of the ChucK VM (which wouldn't yet have this class defined). Because of the way public classes work right now they can only be defined once and trying to define them again will result in errors. I'm not sure how the VM will deal with a non-public class of the same name getting defined in other files, generally I simply wouldn't do that as it's asking for confusion and trouble. Beyond that it's hard for me to say what exactly is going wrong because I don't have Processing on this computer right now and it's hard to tell exactly what's happening in what order by just quickly reading your code. Most likely it's just something small and silly, because of what you wrote above I have a hunch it might have something to do with starting and stopping the VM.
- How can I use the analysis tools to create an equalizer-like display?
I'd like to know stuff like that too. The analysis stuff is very, very new, I have yet to poke around in it. I'm planning to try to write some functions that would deal with the arrays those produce in order to try to find the highest peaks in the spectrum and so on but FFT on such a practical and low level is very new to me. Hope this was of some use to you, I'm sure we'll get to the bottom of this, likely it's just a very minor misunderstanding. Yours, Kas.