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