Re: [chuck-users] Most recent Chuck for Lion?
I've been running Chuck on a MacPro with a Cinema Display, and I notice that the audio device switching isn't handled well by either the hardware/OS, or other audio apps. Often I have to diddle around with the Sound Preferences output to get Amadeus or Reaper to play to my headphones, or the display audio, instead of the internal speaker. So perhaps this has something to do with it.
I can't promise this will help, but I'm a fan of running Rogue Amoeba's free Sound Source app on OS X which makes selecting the machine's audio output really quick and simple: http://rogueamoeba.com/freebies/ (bottom of page) It overrides the Mac's automatic device switching so just may be a fix. I don't know if it works on Lion - it's a bit old - but it functions great on Snow Leopard. Anthony.
On Tue, Feb 28, 2012 at 08:55:33AM +0000, Anthony Bowyer-Lowe wrote:
I can't promise this will help, but I'm a fan of running Rogue Amoeba's free Sound Source app on OS X which makes selecting the machine's audio output really quick and simple:
This sounds prommising. If the sollution is in that direction then a alternative might be to call ChucK with "chuck --dac n", where "n" corresponds to the number of the desired output as listed by "chuck --probe". Personally I would suspect that if the default device is somehow set wrong then more programs should have issues with sound but you never know. Yours, Kas.
On Feb 28, 2012, at 6:26 AM, Kassen wrote:
On Tue, Feb 28, 2012 at 08:55:33AM +0000, Anthony Bowyer-Lowe wrote:
I can't promise this will help, but I'm a fan of running Rogue Amoeba's free Sound Source app on OS X which makes selecting the machine's audio output really quick and simple:
This sounds prommising. If the sollution is in that direction then a alternative might be to call ChucK with "chuck --dac n", where "n" corresponds to the number of the desired output as listed by "chuck --probe".
Personally I would suspect that if the default device is somehow set wrong then more programs should have issues with sound but you never know.
Thanks both of you for your help. With --probe returning this:
[chuck]: ------( chuck -- dac2 )--------------- [chuck]: device name = "Apple Inc.: Built-in Output" [chuck]: probe [success] ... [chuck]: # output channels = 2 [chuck]: # input channels = 0 [chuck]: # duplex Channels = 0 [chuck]: default output = YES [chuck]: default input = NO [chuck]: natively supported data formats: [chuck]: 32-bit float [chuck]: supported sample rates: [chuck]: 44100 Hz [chuck]: 48000 Hz [chuck]: 88200 Hz [chuck]: 96000 Hz
I don't get any joy doing this:
etla:/Volumes/Namring/Documents/ChucK$ chuck --dac2 foo.ck ^C[chuck]: cleaning up...
RtApiCore::closeStream(): no open stream to close!
etla:/Volumes/Namring/Documents/ChucK$
with foo.ck looking like so:
etla:/Volumes/Namring/Documents/ChucK$ cat foo.ck SinOsc s => dac; 2::second => now;
This weekend I should have a chance to build from source, and maybe I can be more precise about my trouble. Thanks, Charles
On Tue, Feb 28, 2012 at 07:47:18AM -0500, Charles Turner wrote:
I don't get any joy doing this:
Hmmmm. I think that on other OS's I have had nothing but bad luck with listed devices that only had outputs or only inputs. What if you try using that "out only" device while asking ChucK for 0 input channels (default is 2)? I'd also be curious about those Soundflower virtual devices and how far those might get you. As a last suggestion you could try any and all of these things while adding the "--verbose" flag. That should make ChucK report on more of the stuff it's trying and any issues it might encounter. It's worth a shot. I'm curious whether -for example- there isn't some miscomunication between ChucK and the drivers going on about stuff like bitrate and depth. That kind of thing happens when API standards are changed. I'm convinced there is some great secret den of vice somewhere where all API maintainers get together to use crack and brag about how subtle their tricks are ;-). Yours, Kas.
On Feb 28, 2012, at 9:03 AM, Kassen wrote:
Hmmmm. I think that on other OS's I have had nothing but bad luck with listed devices that only had outputs or only inputs. What if you try using that "out only" device while asking ChucK for 0 input channels (default is 2)?
Looks like you might be onto something here. I'll try with a command line request for no ADC:
etla:/Volumes/Namring/Documents/ChucK$ chuck --verbose --dac2 foo.ck [chuck]:(2:SYSTEM): setting log level to: 5 (INFORM)... [chuck]:(2:SYSTEM): initializing virtual machine... [chuck]:(2:SYSTEM): | behavior: HALT [chuck]:(2:SYSTEM): | locking down special objects... [chuck]:(2:SYSTEM): | allocating shreduler... [chuck]:(2:SYSTEM): | allocating messaging buffers... [chuck]:(2:SYSTEM): | real-time audio: YES [chuck]:(2:SYSTEM): | mode: CALLBACK [chuck]:(2:SYSTEM): | sample rate: 44100 [chuck]:(2:SYSTEM): | buffer size: 256 [chuck]:(2:SYSTEM): | num buffers: 8 [chuck]:(2:SYSTEM): | devices adc: 0 dac: 2 (default 0) [chuck]:(2:SYSTEM): | adaptive block processing: 0 [chuck]:(2:SYSTEM): | channels in: 2 out: 2 [chuck]:(2:SYSTEM): initializing compiler... [chuck]:(3:SEVERE): | initializing type checker... [chuck]:(3:SEVERE): | | adding base classes... [chuck]:(3:SEVERE): | | | class 'object' [chuck]:(3:SEVERE): | | | class 'array' [chuck]:(3:SEVERE): | | | class 'string' [chuck]:(3:SEVERE): | | | class 'ugen' [chuck]:(3:SEVERE): | | | class 'uanablob' [chuck]:(3:SEVERE): | | | class 'uana' [chuck]:(3:SEVERE): | | | class 'shred' [chuck]:(3:SEVERE): | | | class 'event' [chuck]:(3:SEVERE): | | | class 'io' [chuck]:(3:SEVERE): | | | class 'fileio' [chuck]:(3:SEVERE): | | | class 'chout' [chuck]:(3:SEVERE): | | | class 'cherr' [chuck]:(3:SEVERE): | | | class 'class' [chuck]:(3:SEVERE): | initializing emitter... [chuck]:(3:SEVERE): | loading built-in modules... [chuck]:(3:SEVERE): | | module osc... [chuck]:(3:SEVERE): | | module xxx... [chuck]:(3:SEVERE): | | module filter... [chuck]:(3:SEVERE): | | module STK... [chuck]:(3:SEVERE): | | module xform... [chuck]:(3:SEVERE): | | module extract... [chuck]:(3:SEVERE): | | class 'machine'... [chuck]:(3:SEVERE): | | class 'std'... [chuck]:(5:INFORM): | | initializing KBHitManager... [chuck]:(5:INFORM): | | starting kb loop... [chuck]:(3:SEVERE): | | class 'math'... [chuck]:(3:SEVERE): | | class 'opsc'... [chuck]:(3:SEVERE): | loading chugins [chuck]:(5:INFORM): | | unable to open directory '/usr/lib/chuck', ignoring for chugins [chuck]:(5:INFORM): | | unable to open directory '/Library/Application Support/ChucK', ignoring for chugins [chuck]:(2:SYSTEM): type dependency resolution: MANUAL [chuck]:(2:SYSTEM): initializing synthesis engine... [chuck]:(3:SEVERE): | initializing 'dac'... [chuck]:(3:SEVERE): | initializing 'adc'... [chuck]:(3:SEVERE): | initializing 'blackhole'... [chuck]:(2:SYSTEM): | initializing 'real-time' audio... [chuck]:(5:INFORM): | | exception caught: 'RtApiCore::probeDeviceOpen: the device (1) does not support the requested channel count.'... [chuck]:(5:INFORM): | | trying 0 input 2 output... [chuck]:(3:SEVERE): | allocating buffers for 256 x 2 samples... [chuck]:(3:SEVERE): pre-loading ChucK libs... [chuck]:(3:SEVERE): starting compilation... [chuck]:(5:INFORM): setting thread priority to: 60... [chuck]:(2:SYSTEM): starting listener on port: 8888... [chuck]:(2:SYSTEM): running virtual machine... [chuck]:(3:SEVERE): | initializing audio buffers... [chuck]:(3:SEVERE): | virtual machine running... [chuck]:(3:SEVERE): starting real-time audio... ^C[chuck]: cleaning up... [chuck]:(3:SEVERE): requesting STOP virtual machine... [chuck]:(5:INFORM): detaching all resources... [chuck]:(5:INFORM): | (via STK): detaching file handles... [chuck]:(5:INFORM): | detaching MIDI devices... [chuck]:(5:INFORM): | shutting down KBHitManager... [chuck]:(5:INFORM): | shutting down HID... [chuck]:(2:SYSTEM): shutting down virtual machine... [chuck]:(2:SYSTEM): | unprotecting special objects... [chuck]:(2:SYSTEM): | shutting down real-time audio...
RtApiCore::closeStream(): no open stream to close!
[chuck]:(2:SYSTEM): | freeing bbq subsystem... [chuck]:(2:SYSTEM): | freeing shreduler... [chuck]:(2:SYSTEM): | freeing msg/reply/event buffers... [chuck]:(3:SEVERE): | clearing shreds... [chuck]:(3:SEVERE): | | freeing dumped shreds... [chuck]:(2:SYSTEM): | freeing special ugens... [chuck]:(2:SYSTEM): shutting down compiler... [chuck]:(3:SEVERE): | shutting down type checker... etla:/Volumes/Namring/Documents/ChucK$
Ah, success. Using this Display audio device which is 1 in, 2 out:
[chuck]: ------( chuck -- dac6 )--------------- [chuck]: device name = "Apple Inc.: Display Audio" [chuck]: probe [success] ... [chuck]: # output channels = 2 [chuck]: # input channels = 1 [chuck]: # duplex Channels = 1 [chuck]: default output = NO [chuck]: default input = YES [chuck]: natively supported data formats: [chuck]: 32-bit float [chuck]: supported sample rates: [chuck]: 44100 Hz [chuck]: 48000 Hz
I get a lovely sinus tone with this:
etla:/Volumes/Namring/Documents/ChucK$ chuck --verbose --in1 --dac6 foo.ck [chuck]:(2:SYSTEM): setting log level to: 5 (INFORM)... [chuck]:(2:SYSTEM): initializing virtual machine... [chuck]:(2:SYSTEM): | behavior: HALT [chuck]:(2:SYSTEM): | locking down special objects... [chuck]:(2:SYSTEM): | allocating shreduler... [chuck]:(2:SYSTEM): | allocating messaging buffers... [chuck]:(2:SYSTEM): | real-time audio: YES [chuck]:(2:SYSTEM): | mode: CALLBACK [chuck]:(2:SYSTEM): | sample rate: 44100 [chuck]:(2:SYSTEM): | buffer size: 256 [chuck]:(2:SYSTEM): | num buffers: 8 [chuck]:(2:SYSTEM): | devices adc: 0 dac: 6 (default 0) [chuck]:(2:SYSTEM): | adaptive block processing: 0 [chuck]:(2:SYSTEM): | channels in: 1 out: 2 [chuck]:(2:SYSTEM): initializing compiler... [chuck]:(3:SEVERE): | initializing type checker... [chuck]:(3:SEVERE): | | adding base classes... [chuck]:(3:SEVERE): | | | class 'object' [chuck]:(3:SEVERE): | | | class 'array' [chuck]:(3:SEVERE): | | | class 'string' [chuck]:(3:SEVERE): | | | class 'ugen' [chuck]:(3:SEVERE): | | | class 'uanablob' [chuck]:(3:SEVERE): | | | class 'uana' [chuck]:(3:SEVERE): | | | class 'shred' [chuck]:(3:SEVERE): | | | class 'event' [chuck]:(3:SEVERE): | | | class 'io' [chuck]:(3:SEVERE): | | | class 'fileio' [chuck]:(3:SEVERE): | | | class 'chout' [chuck]:(3:SEVERE): | | | class 'cherr' [chuck]:(3:SEVERE): | | | class 'class' [chuck]:(3:SEVERE): | initializing emitter... [chuck]:(3:SEVERE): | loading built-in modules... [chuck]:(3:SEVERE): | | module osc... [chuck]:(3:SEVERE): | | module xxx... [chuck]:(3:SEVERE): | | module filter... [chuck]:(3:SEVERE): | | module STK... [chuck]:(3:SEVERE): | | module xform... [chuck]:(3:SEVERE): | | module extract... [chuck]:(3:SEVERE): | | class 'machine'... [chuck]:(3:SEVERE): | | class 'std'... [chuck]:(5:INFORM): | | initializing KBHitManager... [chuck]:(5:INFORM): | | starting kb loop... [chuck]:(3:SEVERE): | | class 'math'... [chuck]:(3:SEVERE): | | class 'opsc'... [chuck]:(3:SEVERE): | loading chugins [chuck]:(5:INFORM): | | unable to open directory '/usr/lib/chuck', ignoring for chugins [chuck]:(5:INFORM): | | unable to open directory '/Library/Application Support/ChucK', ignoring for chugins [chuck]:(2:SYSTEM): type dependency resolution: MANUAL [chuck]:(2:SYSTEM): initializing synthesis engine... [chuck]:(3:SEVERE): | initializing 'dac'... [chuck]:(3:SEVERE): | initializing 'adc'... [chuck]:(3:SEVERE): | initializing 'blackhole'... [chuck]:(2:SYSTEM): | initializing 'real-time' audio... [chuck]:(3:SEVERE): | allocating buffers for 256 x 2 samples... [chuck]:(3:SEVERE): pre-loading ChucK libs... [chuck]:(3:SEVERE): starting compilation... [chuck]:(5:INFORM): setting thread priority to: 60... [chuck]:(2:SYSTEM): starting listener on port: 8888... [chuck]:(2:SYSTEM): running virtual machine... [chuck]:(3:SEVERE): | initializing audio buffers... [chuck]:(3:SEVERE): | virtual machine running... [chuck]:(3:SEVERE): starting real-time audio... [chuck]:(5:INFORM): setting thread priority to: 60... [chuck]:(3:SEVERE): starting real-time watch dog processs... [chuck]:(5:INFORM): | watchdog timeout: 0.500000::second [chuck]:(5:INFORM): | watchdog thread priority: 60 [chuck]:(5:INFORM): | watchdog countermeasure priority: 10 [chuck]:(5:INFORM): setting thread priority to: 60... [chuck]:(2:SYSTEM): virtual machine stopped... [chuck]:(5:INFORM): detaching all resources... [chuck]:(5:INFORM): | (via STK): detaching file handles... [chuck]:(5:INFORM): | detaching MIDI devices... [chuck]:(5:INFORM): | shutting down KBHitManager... [chuck]:(5:INFORM): | shutting down HID... [chuck]:(2:SYSTEM): shutting down virtual machine... [chuck]:(2:SYSTEM): | unprotecting special objects... [chuck]:(2:SYSTEM): | shutting down real-time audio... [chuck]:(3:SEVERE): | stopping real-time watch dog process... [chuck]:(2:SYSTEM): | freeing bbq subsystem... [chuck]:(2:SYSTEM): | freeing shreduler... [chuck]:(2:SYSTEM): | freeing msg/reply/event buffers... [chuck]:(3:SEVERE): | clearing shreds... [chuck]:(3:SEVERE): | | freeing dumped shreds... [chuck]:(2:SYSTEM): | freeing special ugens... [chuck]:(2:SYSTEM): shutting down compiler... [chuck]:(3:SEVERE): | shutting down type checker... etla:/Volumes/Namring/Documents/ChucK$
Thanks for your help Kassen. Now that I understand what's up, I'll try a few more combos to see where things break down. Best wishes, Charles
On Tue, Feb 28, 2012 at 10:44:04AM -0500, Charles Turner wrote:
Ah, success. Using this Display audio device which is 1 in, 2 out:
Great! So you can at least have your fun now. I suspect the 1 input will be a build-in mic.
Thanks for your help Kassen.
You are welcome.
Now that I understand what's up, I'll try a few more combos to see where things break down.
Well, I don't. It's cool that you have sound, but some things were going quite wrong here. Why didn't it simply default to the most standard stereo in and out, for example. Why did it claim to allocate buffers after trying a device, then start running and only -apparently- discover after the session that it didn't have a stream? It also looks like you have a fairly straightforward system, with the maker of the OS also being the hardware builder, IMHO it should simply be able to set a sensible default for what device to use; it's not like you build your own computer with 4 soundcards then installed a exotic version of Linux for some unusual application (that should also work, but then we can expect that we need to help set what we would like to use). Oh, well, it works now. Happy ChucKing! Kas.
Hi all- Poking around a bit and discovered the following: My "default devices" are:
[chuck]: ------( chuck -- dac6 )--------------- [chuck]: device name = "Apple Inc.: Display Audio" [chuck]: probe [success] ... [chuck]: # output channels = 2 [chuck]: # input channels = 1 [chuck]: # duplex Channels = 1 [chuck]: default output = NO [chuck]: default input = YES [chuck]: natively supported data formats: [chuck]: 32-bit float [chuck]: supported sample rates: [chuck]: 44100 Hz [chuck]: 48000 Hz
and
[chuck]: ------( chuck -- dac2 )--------------- [chuck]: device name = "Apple Inc.: Built-in Output" [chuck]: probe [success] ... [chuck]: # output channels = 2 [chuck]: # input channels = 0 [chuck]: # duplex Channels = 0 [chuck]: default output = YES [chuck]: default input = NO [chuck]: natively supported data formats: [chuck]: 32-bit float [chuck]: supported sample rates: [chuck]: 44100 Hz [chuck]: 48000 Hz [chuck]: 88200 Hz [chuck]: 96000 Hz
plus, I built an aggregate device which uses the default output, plus another input that has 2 channels:
[chuck]: ------( chuck -- dac9 )--------------- [chuck]: device name = "Apple, Inc.: My Agg Device" [chuck]: probe [success] ... [chuck]: # output channels = 2 [chuck]: # input channels = 2 [chuck]: # duplex Channels = 2 [chuck]: default output = NO [chuck]: default input = NO [chuck]: natively supported data formats: [chuck]: 32-bit float [chuck]: supported sample rates: [chuck]: 44100 Hz [chuck]: 48000 Hz [chuck]: 88200 Hz [chuck]: 96000 Hz
So I can ask for this and get sound out of the left channel:
etla:/Volumes/Namring/Documents/ChucK$ chuck --in1 --out1 foo.ck
But when I try my aggregate device I get no sound:
etla:/Volumes/Namring/Documents/ChucK$ chuck --verbose --in2 --out2 --dac9 foo.ck [chuck]:(2:SYSTEM): setting log level to: 5 (INFORM)... [chuck]:(2:SYSTEM): initializing virtual machine... [chuck]:(2:SYSTEM): | behavior: HALT [chuck]:(2:SYSTEM): | locking down special objects... [chuck]:(2:SYSTEM): | allocating shreduler... [chuck]:(2:SYSTEM): | allocating messaging buffers... [chuck]:(2:SYSTEM): | real-time audio: YES [chuck]:(2:SYSTEM): | mode: CALLBACK [chuck]:(2:SYSTEM): | sample rate: 44100 [chuck]:(2:SYSTEM): | buffer size: 256 [chuck]:(2:SYSTEM): | num buffers: 8 [chuck]:(2:SYSTEM): | devices adc: 0 dac: 9 (default 0) [chuck]:(2:SYSTEM): | adaptive block processing: 0 [chuck]:(2:SYSTEM): | channels in: 2 out: 2
[SNIP]
[chuck]:(2:SYSTEM): initializing synthesis engine... [chuck]:(3:SEVERE): | initializing 'dac'... [chuck]:(3:SEVERE): | initializing 'adc'... [chuck]:(3:SEVERE): | initializing 'blackhole'... [chuck]:(2:SYSTEM): | initializing 'real-time' audio... [chuck]:(5:INFORM): | | exception caught: 'RtApiCore::probeDeviceOpen: the device (6) does not support the requested channel count.'... [chuck]:(5:INFORM): | | trying 0 input 2 output... [chuck]:(3:SEVERE): | allocating buffers for 256 x 2 samples…
[SNIP]
[chuck]:(3:SEVERE): starting real-time audio... ^C[chuck]: cleaning up... [chuck]:(3:SEVERE): requesting STOP virtual machine... [chuck]:(5:INFORM): detaching all resources... [chuck]:(5:INFORM): | (via STK): detaching file handles... [chuck]:(5:INFORM): | detaching MIDI devices... [chuck]:(5:INFORM): | shutting down KBHitManager... [chuck]:(5:INFORM): | shutting down HID... [chuck]:(2:SYSTEM): shutting down virtual machine... [chuck]:(2:SYSTEM): | unprotecting special objects... [chuck]:(2:SYSTEM): | shutting down real-time audio...
RtApiCore::closeStream(): no open stream to close!
[SNIP]
etla:/Volumes/Namring/Documents/ChucK$
You'll notice that in spite of asking for -dac9 (my aggregate device), ChucK seems to want to open "device (6)": my 1-channel default audio input. [EDIT] I realized that perhaps I should be asking for an -adc as well as -dac here, so I tried this:
etla:/Volumes/Namring/Documents/ChucK$ chuck --verbose --in1 --out2 --dac2 --adc6 foo.ck [chuck]:(2:SYSTEM): setting log level to: 5 (INFORM)... [chuck]:(2:SYSTEM): initializing virtual machine... [chuck]:(2:SYSTEM): | behavior: HALT [chuck]:(2:SYSTEM): | locking down special objects... [chuck]:(2:SYSTEM): | allocating shreduler... [chuck]:(2:SYSTEM): | allocating messaging buffers... [chuck]:(2:SYSTEM): | real-time audio: YES [chuck]:(2:SYSTEM): | mode: CALLBACK [chuck]:(2:SYSTEM): | sample rate: 44100 [chuck]:(2:SYSTEM): | buffer size: 256 [chuck]:(2:SYSTEM): | num buffers: 8 [chuck]:(2:SYSTEM): | devices adc: 6 dac: 2 (default 0) [chuck]:(2:SYSTEM): | adaptive block processing: 0 [chuck]:(2:SYSTEM): | channels in: 1 out: 2
[SNIP]
[chuck]:(2:SYSTEM): initializing synthesis engine... [chuck]:(3:SEVERE): | initializing 'dac'... [chuck]:(3:SEVERE): | initializing 'adc'... [chuck]:(3:SEVERE): | initializing 'blackhole'... [chuck]:(2:SYSTEM): | initializing 'real-time' audio... [chuck]:(5:INFORM): | | exception caught: 'RtApiCore::probeDeviceOpen: the device (1) does not support the requested channel count.'... [chuck]:(5:INFORM): | | trying 0 input 2 output... [chuck]:(3:SEVERE): | allocating buffers for 256 x 2 samples…
[SNIP]
[chuck]:(3:SEVERE): starting real-time audio... ^C[chuck]: cleaning up... [chuck]:(3:SEVERE): requesting STOP virtual machine... [chuck]:(5:INFORM): detaching all resources... [chuck]:(5:INFORM): | (via STK): detaching file handles... [chuck]:(5:INFORM): | detaching MIDI devices... [chuck]:(5:INFORM): | shutting down KBHitManager... [chuck]:(5:INFORM): | shutting down HID... [chuck]:(2:SYSTEM): shutting down virtual machine... [chuck]:(2:SYSTEM): | unprotecting special objects... [chuck]:(2:SYSTEM): | shutting down real-time audio...
RtApiCore::closeStream(): no open stream to close!
[SNIP]
etla:/Volumes/Namring/Documents/ChucK$
So, with a manual request for my default devices, ChucK seems to want to tell me about it's difficulty with "device (1), " whatever that may be. If I go back to my dac9 aggregate device, it seems to play "foo.ck" (ie the shred runs to completion in about 2 seconds), but I hear no sound. Amadeus, for example, is perfectly happy playing back using my aggregate device. I'm gonna start looking at the source, but if someone has a bright idea, please let me know! Thanks, Charles
One thing i didn't try, setting the default audio input with System Preferences to a 2-channel input. If so, I get:
etla:/Volumes/Namring/Documents/ChucK$ chuck --probe [chuck]: found 10 device(s) ... [chuck]: ------( chuck -- dac0 )--------------- [chuck]: device name = "Apple Inc.: Built-in Line Input" [chuck]: probe [success] ... [chuck]: # output channels = 0 [chuck]: # input channels = 2 [chuck]: # duplex Channels = 0 [chuck]: default output = NO [chuck]: default input = YES [chuck]: natively supported data formats: [chuck]: 32-bit float [chuck]: supported sample rates: [chuck]: 44100 Hz [chuck]: 48000 Hz [chuck]: 88200 Hz [chuck]: 96000 Hz
[SNIP]
[chuck]: ------( chuck -- dac2 )--------------- [chuck]: device name = "Apple Inc.: Built-in Output" [chuck]: probe [success] ... [chuck]: # output channels = 2 [chuck]: # input channels = 0 [chuck]: # duplex Channels = 0 [chuck]: default output = YES [chuck]: default input = NO [chuck]: natively supported data formats: [chuck]: 32-bit float [chuck]: supported sample rates: [chuck]: 44100 Hz [chuck]: 48000 Hz [chuck]: 88200 Hz [chuck]: 96000 Hz
[SNIP]
etla:/Volumes/Namring/Documents/ChucK$ chuck foo.ck etla:/Volumes/Namring/Documents/ChucK$
Works fine w/o any special arguments! Is ChucK cranky about non-default audio devices, then? Plus it seems that ChucK doesn't like asymmetrical (eg 1 in - 2 out) setups, perhaps because it can't set up duplex operation? Best, Charles
Hey Charles,
The special Lion build of chuck actually has an off-by-one error when
enumerating available audio devices via chuck --probe. So in the
--probe output below, basically dac0 should be dac1, dac1 should be
dac2, etc -- it should start counting at 1 instead of 0. This has been
fixed in SVN, but an update to the special Lion build hasn't been
issued yet.
I would suspect everything you are trying to do should work if you
take that into account. I don't believe there are any intrinsic issues
with non-default devices, aggregate devices, or using different
devices for input/output, but issues do seem to show up here and
there.
spencer
On Sun, Mar 4, 2012 at 12:49 PM, Charles Turner
One thing i didn't try, setting the default audio input with System Preferences to a 2-channel input. If so, I get:
etla:/Volumes/Namring/Documents/ChucK$ chuck --probe [chuck]: found 10 device(s) ... [chuck]: ------( chuck -- dac0 )--------------- [chuck]: device name = "Apple Inc.: Built-in Line Input" [chuck]: probe [success] ... [chuck]: # output channels = 0 [chuck]: # input channels = 2 [chuck]: # duplex Channels = 0 [chuck]: default output = NO [chuck]: default input = YES [chuck]: natively supported data formats: [chuck]: 32-bit float [chuck]: supported sample rates: [chuck]: 44100 Hz [chuck]: 48000 Hz [chuck]: 88200 Hz [chuck]: 96000 Hz
[SNIP]
[chuck]: ------( chuck -- dac2 )--------------- [chuck]: device name = "Apple Inc.: Built-in Output" [chuck]: probe [success] ... [chuck]: # output channels = 2 [chuck]: # input channels = 0 [chuck]: # duplex Channels = 0 [chuck]: default output = YES [chuck]: default input = NO [chuck]: natively supported data formats: [chuck]: 32-bit float [chuck]: supported sample rates: [chuck]: 44100 Hz [chuck]: 48000 Hz [chuck]: 88200 Hz [chuck]: 96000 Hz
[SNIP]
etla:/Volumes/Namring/Documents/ChucK$ chuck foo.ck etla:/Volumes/Namring/Documents/ChucK$
Works fine w/o any special arguments!
Is ChucK cranky about non-default audio devices, then? Plus it seems that ChucK doesn't like asymmetrical (eg 1 in - 2 out) setups, perhaps because it can't set up duplex operation?
Best, Charles
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
On Mar 4, 2012, at 4:02 PM, Spencer Salazar wrote:
This has been fixed in SVN, but an update to the special Lion build hasn't been issued yet.
Thanks for the info Spencer- I pulled the SVN on February 28th, and was going to see if I could build it. My results today were just to see what I could learn from fooling with the binary… Best wishes, Charles
On Mar 4, 2012, at 4:02 PM, Spencer Salazar wrote:
The special Lion build of chuck actually has an off-by-one error when enumerating available audio devices via chuck --probe. So in the --probe output below, basically dac0 should be dac1, dac1 should be dac2, etc -- it should start counting at 1 instead of 0. This has been fixed in SVN, but an update to the special Lion build hasn't been issued yet.
Hi Spencer- Yes. If in the current release the dac/adc indexes are increased by 1, everything works fine, even the 1-2 connection. I compiled and ran the recent SVN and it seems to crash at the end of a shred with a bus error. This didn't happen with the March 23rd version. I understand it's the SVN, and there are no guarantees that the code there isn't broken. ;-) Thanks, Charles
etla:/Volumes/Namring/Documents/ChucK$ chuck --verbose --in2 --out2 --adc0 --dac2 foo.ck [chuck]:(2:SYSTEM): setting log level to: 5 (INFORM)... [chuck]:(2:SYSTEM): initializing virtual machine... [chuck]:(2:SYSTEM): | behavior: HALT [chuck]:(2:SYSTEM): | locking down special objects... [chuck]:(2:SYSTEM): | allocating shreduler... [chuck]:(2:SYSTEM): | allocating messaging buffers... [chuck]:(2:SYSTEM): | real-time audio: YES [chuck]:(2:SYSTEM): | mode: CALLBACK [chuck]:(2:SYSTEM): | sample rate: 44100 [chuck]:(2:SYSTEM): | buffer size: 256 [chuck]:(2:SYSTEM): | num buffers: 8 [chuck]:(2:SYSTEM): | devices adc: 0 dac: 0 (default 0) [chuck]:(2:SYSTEM): | adaptive block processing: 0 [chuck]:(2:SYSTEM): | channels in: 2 out: 2 [chuck]:(2:SYSTEM): initializing compiler... [chuck]:(3:SEVERE): | initializing type checker... [chuck]:(3:SEVERE): | | adding base classes... [chuck]:(3:SEVERE): | | | class 'object' [chuck]:(3:SEVERE): | | | class 'array' [chuck]:(3:SEVERE): | | | class 'string' [chuck]:(3:SEVERE): | | | class 'ugen' [chuck]:(3:SEVERE): | | | class 'uanablob' [chuck]:(3:SEVERE): | | | class 'uana' [chuck]:(3:SEVERE): | | | class 'shred' [chuck]:(3:SEVERE): | | | class 'event' [chuck]:(3:SEVERE): | | | class 'io' [chuck]:(3:SEVERE): | | | class 'fileio' [chuck]:(3:SEVERE): | | | class 'chout' [chuck]:(3:SEVERE): | | | class 'cherr' [chuck]:(3:SEVERE): | | | class 'class' [chuck]:(3:SEVERE): | initializing emitter... [chuck]:(3:SEVERE): | loading built-in modules... [chuck]:(3:SEVERE): | | module osc... [chuck]:(3:SEVERE): | | module xxx... [chuck]:(3:SEVERE): | | module filter... [chuck]:(3:SEVERE): | | module STK... [chuck]:(3:SEVERE): | | module xform... [chuck]:(3:SEVERE): | | module extract... [chuck]:(3:SEVERE): | | class 'machine'... [chuck]:(3:SEVERE): | | class 'std'... [chuck]:(5:INFORM): | | initializing KBHitManager... [chuck]:(5:INFORM): | | starting kb loop... [chuck]:(3:SEVERE): | | class 'math'... [chuck]:(3:SEVERE): | | class 'opsc'... [chuck]:(3:SEVERE): | loading chugins [chuck]:(5:INFORM): | | unable to open directory '/usr/lib/chuck', ignoring for chugins [chuck]:(5:INFORM): | | unable to open directory '/Library/Application Support/ChucK/ChuGins', ignoring for chugins [chuck]:(5:INFORM): | | unable to open directory '~/Library/Application Support/ChucK/ChuGins', ignoring for chugins [chuck]:(2:SYSTEM): type dependency resolution: MANUAL [chuck]:(2:SYSTEM): initializing synthesis engine... [chuck]:(3:SEVERE): | initializing 'dac'... [chuck]:(3:SEVERE): | initializing 'adc'... [chuck]:(3:SEVERE): | initializing 'blackhole'... [chuck]:(2:SYSTEM): | initializing 'real-time' audio... [chuck]:(3:SEVERE): | allocating buffers for 256 x 2 samples... [chuck]:(3:SEVERE): pre-loading ChucK libs... [chuck]:(3:SEVERE): starting compilation... [chuck]:(5:INFORM): setting thread priority to: 60... [chuck]:(2:SYSTEM): starting listener on port: 8888... [chuck]:(2:SYSTEM): running virtual machine... [chuck]:(3:SEVERE): | initializing audio buffers... [chuck]:(3:SEVERE): | virtual machine running... [chuck]:(3:SEVERE): starting real-time audio... [chuck]:(5:INFORM): setting thread priority to: 60... [chuck]:(3:SEVERE): starting real-time watch dog processs... [chuck]:(5:INFORM): | watchdog timeout: 0.500000::second [chuck]:(5:INFORM): | watchdog thread priority: 60 [chuck]:(5:INFORM): | watchdog countermeasure priority: 10 [chuck]:(5:INFORM): setting thread priority to: 60... [chuck]:(2:SYSTEM): virtual machine stopped... Bus error: 10 etla:/Volumes/Namring/Documents/ChucK$ chuck
Hi Spencer, et. al.
I report success as well with Lion and the new beta of chuck/miniAudicle.
Btw, what are ChuGins? They sound AWESOME…
-Mike
http://michaelclemow.com
http://semiotech.org
On Mon, Mar 5, 2012 at 8:11 AM, Charles Turner
On Mar 4, 2012, at 4:02 PM, Spencer Salazar wrote:
The special Lion build of chuck actually has an off-by-one error when enumerating available audio devices via chuck --probe. So in the --probe output below, basically dac0 should be dac1, dac1 should be dac2, etc -- it should start counting at 1 instead of 0. This has been fixed in SVN, but an update to the special Lion build hasn't been issued yet.
Hi Spencer-
Yes. If in the current release the dac/adc indexes are increased by 1, everything works fine, even the 1-2 connection.
I compiled and ran the recent SVN and it seems to crash at the end of a shred with a bus error. This didn't happen with the March 23rd version. I understand it's the SVN, and there are no guarantees that the code there isn't broken. ;-)
Thanks, Charles
etla:/Volumes/Namring/Documents/ChucK$ chuck --verbose --in2 --out2 --adc0 --dac2 foo.ck [chuck]:(2:SYSTEM): setting log level to: 5 (INFORM)... [chuck]:(2:SYSTEM): initializing virtual machine... [chuck]:(2:SYSTEM): | behavior: HALT [chuck]:(2:SYSTEM): | locking down special objects... [chuck]:(2:SYSTEM): | allocating shreduler... [chuck]:(2:SYSTEM): | allocating messaging buffers... [chuck]:(2:SYSTEM): | real-time audio: YES [chuck]:(2:SYSTEM): | mode: CALLBACK [chuck]:(2:SYSTEM): | sample rate: 44100 [chuck]:(2:SYSTEM): | buffer size: 256 [chuck]:(2:SYSTEM): | num buffers: 8 [chuck]:(2:SYSTEM): | devices adc: 0 dac: 0 (default 0) [chuck]:(2:SYSTEM): | adaptive block processing: 0 [chuck]:(2:SYSTEM): | channels in: 2 out: 2 [chuck]:(2:SYSTEM): initializing compiler... [chuck]:(3:SEVERE): | initializing type checker... [chuck]:(3:SEVERE): | | adding base classes... [chuck]:(3:SEVERE): | | | class 'object' [chuck]:(3:SEVERE): | | | class 'array' [chuck]:(3:SEVERE): | | | class 'string' [chuck]:(3:SEVERE): | | | class 'ugen' [chuck]:(3:SEVERE): | | | class 'uanablob' [chuck]:(3:SEVERE): | | | class 'uana' [chuck]:(3:SEVERE): | | | class 'shred' [chuck]:(3:SEVERE): | | | class 'event' [chuck]:(3:SEVERE): | | | class 'io' [chuck]:(3:SEVERE): | | | class 'fileio' [chuck]:(3:SEVERE): | | | class 'chout' [chuck]:(3:SEVERE): | | | class 'cherr' [chuck]:(3:SEVERE): | | | class 'class' [chuck]:(3:SEVERE): | initializing emitter... [chuck]:(3:SEVERE): | loading built-in modules... [chuck]:(3:SEVERE): | | module osc... [chuck]:(3:SEVERE): | | module xxx... [chuck]:(3:SEVERE): | | module filter... [chuck]:(3:SEVERE): | | module STK... [chuck]:(3:SEVERE): | | module xform... [chuck]:(3:SEVERE): | | module extract... [chuck]:(3:SEVERE): | | class 'machine'... [chuck]:(3:SEVERE): | | class 'std'... [chuck]:(5:INFORM): | | initializing KBHitManager... [chuck]:(5:INFORM): | | starting kb loop... [chuck]:(3:SEVERE): | | class 'math'... [chuck]:(3:SEVERE): | | class 'opsc'... [chuck]:(3:SEVERE): | loading chugins [chuck]:(5:INFORM): | | unable to open directory '/usr/lib/chuck', ignoring for chugins [chuck]:(5:INFORM): | | unable to open directory '/Library/Application Support/ChucK/ChuGins', ignoring for chugins [chuck]:(5:INFORM): | | unable to open directory '~/Library/Application Support/ChucK/ChuGins', ignoring for chugins [chuck]:(2:SYSTEM): type dependency resolution: MANUAL [chuck]:(2:SYSTEM): initializing synthesis engine... [chuck]:(3:SEVERE): | initializing 'dac'... [chuck]:(3:SEVERE): | initializing 'adc'... [chuck]:(3:SEVERE): | initializing 'blackhole'... [chuck]:(2:SYSTEM): | initializing 'real-time' audio... [chuck]:(3:SEVERE): | allocating buffers for 256 x 2 samples... [chuck]:(3:SEVERE): pre-loading ChucK libs... [chuck]:(3:SEVERE): starting compilation... [chuck]:(5:INFORM): setting thread priority to: 60... [chuck]:(2:SYSTEM): starting listener on port: 8888... [chuck]:(2:SYSTEM): running virtual machine... [chuck]:(3:SEVERE): | initializing audio buffers... [chuck]:(3:SEVERE): | virtual machine running... [chuck]:(3:SEVERE): starting real-time audio... [chuck]:(5:INFORM): setting thread priority to: 60... [chuck]:(3:SEVERE): starting real-time watch dog processs... [chuck]:(5:INFORM): | watchdog timeout: 0.500000::second [chuck]:(5:INFORM): | watchdog thread priority: 60 [chuck]:(5:INFORM): | watchdog countermeasure priority: 10 [chuck]:(5:INFORM): setting thread priority to: 60... [chuck]:(2:SYSTEM): virtual machine stopped... Bus error: 10 etla:/Volumes/Namring/Documents/ChucK$ chuck
chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
On Tue, Apr 03, 2012 at 11:09:07AM -0400, mike clemow wrote:
Hi Spencer, et. al.
Btw, what are ChuGins? They sound AWESOME
Wait, why do you need to ask what they are if you have already heard them? Is this like asking what this delicious meat is? Kas.
Kassen wrote:
On Tue, Apr 03, 2012 at 11:09:07AM -0400, mike clemow wrote:
Hi Spencer, et. al.
Btw, what are ChuGins? They sound AWESOME
Wait, why do you need to ask what they are if you have already heard them? Is this like asking what this delicious meat is?
What is this delicious meat? Does it compile on 64-bit linux? :) michael
Oh, touché! But, alas, I only know the delicious meat by name and not by
taste. Judging by the name "ChuGins," I surmise that they must comprise an
AWESOME new feature of the mini. My apologies if this amounts to directly
addressing the man behind the curtain, however, this feature presented
itself in a beta version touted to be compatible with a certain pesky,
leonine new operating system and released in the wild on the chuck users
list in a previous thread.
I only ask because I lack the time at work to reverse engineer it. ;)
Although I feel some user stories forming in my brain… like kittens
spawning in the savanna...
Yours,
Mike
http://michaelclemow.com
http://semiotech.org
On Tue, Apr 3, 2012 at 12:00 PM, Michael Heuer
Kassen wrote:
On Tue, Apr 03, 2012 at 11:09:07AM -0400, mike clemow wrote:
Hi Spencer, et. al.
Btw, what are ChuGins? They sound AWESOME
Wait, why do you need to ask what they are if you have already heard them? Is this like asking what this delicious meat is?
What is this delicious meat?
Does it compile on 64-bit linux? :)
michael _______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Well, now that the cat is more or less out of the bag, here is a sneak
preview of whats coming in the next release:
https://ccrma.stanford.edu/~spencer/workfun/Chugens,%20Chubgraphs,%20ChuGins...
If you're interested in playing around, theres an example ChuGin here:
https://ccrma.stanford.edu/~spencer/chuck/Bitcrusher.tgz
But you need the latest and greatest in SVN for all of this stuff to
work right -- the Lion beta is probably too out of date for all the
new feature-y-ness described in that paper.
spencer
2012/4/3 mike clemow
Oh, touché! But, alas, I only know the delicious meat by name and not by taste. Judging by the name "ChuGins," I surmise that they must comprise an AWESOME new feature of the mini. My apologies if this amounts to directly addressing the man behind the curtain, however, this feature presented itself in a beta version touted to be compatible with a certain pesky, leonine new operating system and released in the wild on the chuck users list in a previous thread.
I only ask because I lack the time at work to reverse engineer it. ;) Although I feel some user stories forming in my brain… like kittens spawning in the savanna...
Yours, Mike
http://michaelclemow.com http://semiotech.org
On Tue, Apr 3, 2012 at 12:00 PM, Michael Heuer
wrote: Kassen wrote:
On Tue, Apr 03, 2012 at 11:09:07AM -0400, mike clemow wrote:
Hi Spencer, et. al.
Btw, what are ChuGins? They sound AWESOME
Wait, why do you need to ask what they are if you have already heard them? Is this like asking what this delicious meat is?
What is this delicious meat?
Does it compile on 64-bit linux? :)
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
Wow, Spencer! This stuff is really, really cool! Very ChucKian also, of
course. Thank you for sharing.
The last time I pulled SVN was to try out the FileIO stuff before it was
ready for primetime. I'm definitely going to be pulling again to get my
feet wet with these exciting new features.
Do you have any indication how close you are to a release?
Wicked.
-Mike
http://michaelclemow.com
http://semiotech.org
On Thu, Apr 5, 2012 at 4:13 PM, Spencer Salazar
Well, now that the cat is more or less out of the bag, here is a sneak preview of whats coming in the next release:
https://ccrma.stanford.edu/~spencer/workfun/Chugens,%20Chubgraphs,%20ChuGins...
If you're interested in playing around, theres an example ChuGin here: https://ccrma.stanford.edu/~spencer/chuck/Bitcrusher.tgz
But you need the latest and greatest in SVN for all of this stuff to work right -- the Lion beta is probably too out of date for all the new feature-y-ness described in that paper.
spencer
Oh, touché! But, alas, I only know the delicious meat by name and not by taste. Judging by the name "ChuGins," I surmise that they must comprise an AWESOME new feature of the mini. My apologies if this amounts to
2012/4/3 mike clemow
: directly addressing the man behind the curtain, however, this feature presented itself in a beta version touted to be compatible with a certain pesky, leonine new operating system and released in the wild on the chuck users list in a previous thread.
I only ask because I lack the time at work to reverse engineer it. ;) Although I feel some user stories forming in my brain… like kittens spawning in the savanna...
Yours, Mike
http://michaelclemow.com http://semiotech.org
On Tue, Apr 3, 2012 at 12:00 PM, Michael Heuer
wrote: Kassen wrote:
On Tue, Apr 03, 2012 at 11:09:07AM -0400, mike clemow wrote:
Hi Spencer, et. al.
Btw, what are ChuGins? They sound AWESOME
Wait, why do you need to ask what they are if you have already heard them? Is this like asking what this delicious meat is?
What is this delicious meat?
Does it compile on 64-bit linux? :)
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
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
On Thu, Apr 05, 2012 at 05:19:03PM -0400, mike clemow wrote:
Wow, Spencer! This stuff is really, really cool! Very ChucKian also, of course. Thank you for sharing.
I concur. I knew, but it was hush-hush. Personally I respect the choices made but I'm happen it's Open now. IMHO ChuGins are a great thing, offering a new coherent way for users of ChucK to share with each other and colaborate. The price is a bit of C++ but not so much and a knowledge of ChucK syntax combined with some tactical copy - pasting will get you 90% there. So; making these is a realistic option for the daring, using them should be as easy as using the standard UGens. It is my hope that we'll together find a way of distributing these and -perhaps most importantly- documenting them. As I see it it is really a very nice design with high potential to grow into a great colaborative phenomenon, for providing a context to conduct and present research in and for enjoying some new sounds. Hopefully at the same time :-). Yours, Kas.
On Tue, Feb 28, 2012 at 10:37:42AM -0500, Charles Turner wrote:
On Feb 28, 2012, at 9:03 AM, Kassen wrote:
Looks like you might be onto something here. I'll try with a command line request for no ADC:
Seems like it;
[chuck]:(2:SYSTEM): | devices adc: 0 dac: 2 (default 0)
As noted I am personally not convinced about the option to use separate devices for in and out. Anyway, later on;
[chuck]:(2:SYSTEM): initializing synthesis engine... [chuck]:(3:SEVERE): | initializing 'dac'... [chuck]:(3:SEVERE): | initializing 'adc'... [chuck]:(3:SEVERE): | initializing 'blackhole'... [chuck]:(2:SYSTEM): | initializing 'real-time' audio... [chuck]:(5:INFORM): | | exception caught: 'RtApiCore::probeDeviceOpen: the device (1) does not support the requested channel count.'... [chuck]:(5:INFORM): | | trying 0 input 2 output... [chuck]:(3:SEVERE): | allocating buffers for 256 x 2 samples...
To me that implies that with some hickups it is opening at least a output, though it's not so clear where the "device (1)" is coming from here as previously only 0 and 2 were mentioned. yet, later;
[chuck]:(2:SYSTEM): | shutting down real-time audio...
RtApiCore::closeStream(): no open stream to close!
That's just plain weird when above it said it was allocating buffers after trying a device. Those layers don't seem to be communicating as they should. "BUG", I say, but that doesn't do you much good when you want fun sounds right now.
[chuck]:(2:SYSTEM): | freeing bbq subsystem...
Entirely unrelated (I think) I wonder what on earth a "bbq subsystem" is :-) Yours, Kas.
participants (6)
-
Anthony Bowyer-Lowe
-
Charles Turner
-
Kassen
-
Michael Heuer
-
mike clemow
-
Spencer Salazar