[chuck-users] ChucK w/Lion and many audio devices, was: SUCCESS! Re: Most recent Chuck for Lion?
Charles Turner
vze26m98 at optonline.net
Sun Mar 4 15:39:41 EST 2012
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
More information about the chuck-users
mailing list