Csound 6 fails to initialize PortAudio directly, but works via file somehow

1.3k views Asked by At

I haven't used csound in quite some years; after installing the latest non-RC version (6.03.2) on Windows 7 I was unpleasantly surprised that I get no audio from it anymore. Oddly enough I can render to file and CsoundQt then can automatically play the redendered file ok, also through PortAudio. For the sake of fixing an example input I'm using 01C01_db_vs_linear.csd from the demos, although the choice of this file doesn't really matter for the outcome. Here's what I get when I just hit play (or Ctrl+R) in CsoundQt:

STARTING FILE
Creating options
Creating orchestra
Creating score
rtaudio: PortAudio module enabled ... 
using blocking interface
Elapsed time at end of orchestra compile: real: 0.003s, CPU: 0.003s
sorting score ...
    ... done
Elapsed time at end of score sort: real: 0.003s, CPU: 0.003s
--Csound version 6.03.2 (double samples) May 12 2014
midi channel 1 using instr 1
midi channel 2 using instr 2
midi channel 3 using instr 1
midi channel 4 using instr 1
midi channel 5 using instr 1
midi channel 6 using instr 1
midi channel 7 using instr 1
midi channel 8 using instr 1
midi channel 9 using instr 1
midi channel 10 using instr 1
midi channel 11 using instr 1
midi channel 12 using instr 1
midi channel 13 using instr 1
midi channel 14 using instr 1
midi channel 15 using instr 1
midi channel 16 using instr 1
graphics suppressed, ascii substituted
0dBFS level = 1.0
orch now loaded
audio buffered in 4096 sample-frame blocks
PortAudio V19-devel (built Apr 21 2014 11:58:26)
   0: adc0 (ASIO4ALL v2)
PortAudio: failed to obtain device info.
Failed to initialise real time audio input

And I get no audio out. And here is what happens if I use the 'render to file' (Alt+F):

STARTING FILE
Creating options
Creating orchestra
Creating score
rtaudio: PortAudio module enabled ... 
using callback interface
Elapsed time at end of orchestra compile: real: 0.004s, CPU: 0.004s
sorting score ...
    ... done
Elapsed time at end of score sort: real: 0.004s, CPU: 0.004s
--Csound version 6.03.2 (double samples) May 12 2014
midi channel 1 using instr 1
midi channel 2 using instr 2
midi channel 3 using instr 1
midi channel 4 using instr 1
midi channel 5 using instr 1
midi channel 6 using instr 1
midi channel 7 using instr 1
midi channel 8 using instr 1
midi channel 9 using instr 1
midi channel 10 using instr 1
midi channel 11 using instr 1
midi channel 12 using instr 1
midi channel 13 using instr 1
midi channel 14 using instr 1
midi channel 15 using instr 1
midi channel 16 using instr 1
graphics suppressed, ascii substituted
0dBFS level = 1.0
orch now loaded
audio buffered in 4096 sample-frame blocks
PortAudio V19-devel (built Apr 21 2014 11:58:26)
   0: dac0 (Microsoft Sound Mapper - Output)
   1: dac1 (Speakers (High Definition Audio)
   2: dac2 (Digital Audio (S/PDIF) (High De)
   3: dac3 (Digital Audio (S/PDIF) (High De)
   4: dac4 (Primary Sound Driver)
   5: dac5 (Speakers (High Definition Audio Device))
   6: dac6 (Digital Audio (S/PDIF) (High Definition Audio Device))
   7: dac7 (Digital Audio (S/PDIF) (High Definition Audio Device))
   8: dac8 (ASIO4ALL v2)
PortAudio: selected output device 'Speakers (High Definition Audio'
writing 8192 sample blks of 64-bit floats to dac 
SECTION 1:
new alloc for instr 1:
B  0.000 .. 11.000 T 11.000 TT 11.000 M:  0.99990  0.99990
new alloc for instr 2:
B 11.000 .. 21.000 T 21.000 TT 21.000 M:  0.99983  0.99983
Score finished in csoundPerformKsmps().
inactive allocs returned to freespace
end of score.          overall amps:  0.99990  0.99990
       overall samples out of range:        0        0
0 errors in performance
Elapsed time at end of performance: real: 21.098s, CPU: 21.098s
closing device
227 8192 sample blks of 64-bit floats written to dac

And of course I can hear it this way. But why doesn't direct play work?

Edited to add: since it seem that the adc[s] is/are causing some kind of problem for PortAudio (which don't show up via play through rendered file because presumably it doesn't try to initialize the adcs when playing that way), I've uninstalled ASIO4ALL and rebooted, but still no luck playing directly, I just get a more cryptic log now because it lists no adcs at all, but still doesn't get past enumerating those non-existing adcs now:

STARTING FILE
Creating options
Creating orchestra
Creating score
rtaudio: PortAudio module enabled ... 
using blocking interface
Elapsed time at end of orchestra compile: real: 0.003s, CPU: 0.017s
sorting score ...
    ... done
Elapsed time at end of score sort: real: 0.004s, CPU: 0.017s
--Csound version 6.03.2 (double samples) May 12 2014
midi channel 1 using instr 1
midi channel 2 using instr 2
midi channel 3 using instr 1
midi channel 4 using instr 1
midi channel 5 using instr 1
midi channel 6 using instr 1
midi channel 7 using instr 1
midi channel 8 using instr 1
midi channel 9 using instr 1
midi channel 10 using instr 1
midi channel 11 using instr 1
midi channel 12 using instr 1
midi channel 13 using instr 1
midi channel 14 using instr 1
midi channel 15 using instr 1
midi channel 16 using instr 1
graphics suppressed, ascii substituted
0dBFS level = 1.0
orch now loaded
audio buffered in 4096 sample-frame blocks
PortAudio V19-devel (built Apr 21 2014 11:58:26)
Failed to initialise real time audio input

This with direct run (Ctrl+R), playing via rendered file (Alt+F) still works as before.

1

There are 1 answers

1
the gods from engineering On BEST ANSWER

Meh, I fixed it for now by picking no inputs in the config as suggested in http://csound.1045644.n5.nabble.com/Csound-QiuteCsound-problem-td3231424.html. This is quite annoying as the line/mic input is auto-configured when plugging stuff in on Windows, so one would expect PortAudio to manage this much by itself, but apparently that's beyond its current feature set. I'll have to remember to change that back to adc when using some input.

enter image description here