IQaudio configuration

Sorry to be pedantic but only the hardware sold by zynthian.org should be considered officially supported. Other hardware that appears in the webconf lists are added from community effort and hence are supported by the community. In practice you probably get similar level of support but I feel it important to distinguish the two types of support.

1 Like

So here it is again: journalctl -ujack2 dump

Feb 17 17:34:58 zynthian systemd[1]: Started JACK2 Audio Server.                                                      
Feb 17 17:34:59 zynthian jackd[461]: jackdmp 1.9.14                                                                   
Feb 17 17:34:59 zynthian jackd[461]: Copyright 2001-2005 Paul Davis and others.                                       
Feb 17 17:34:59 zynthian jackd[461]: Copyright 2004-2016 Grame.                                                       
Feb 17 17:34:59 zynthian jackd[461]: Copyright 2016-2019 Filipe Coelho.                                               
Feb 17 17:34:59 zynthian jackd[461]: jackdmp comes with ABSOLUTELY NO WARRANTY                                        
Feb 17 17:34:59 zynthian jackd[461]: This is free software, and you are welcome to redistribute it                    
Feb 17 17:34:59 zynthian jackd[461]: under certain conditions; see the file COPYING for details                       
Feb 17 17:34:59 zynthian jackd[461]: JACK server starting in realtime mode with priority 70                           
Feb 17 17:34:59 zynthian jackd[461]: self-connect-mode is "Don't restrict self connect requests"                      
Feb 17 17:34:59 zynthian jackd[461]: creating alsa driver ... hw:IQaudIODAC|hw:IQaudIODAC|256|2|44100|0|0|nomon|swmete
Feb 17 17:34:59 zynthian jackd[461]: configuring for 44100Hz, period = 256 frames (5.8 ms), buffer = 2 periods        
Feb 17 17:34:59 zynthian jackd[461]: ALSA: final selected sample format for playback: 32bit integer little-endian     
Feb 17 17:34:59 zynthian jackd[461]: ALSA: use 2 periods for playback                                                 
Feb 17 17:34:59 zynthian jackd[461]: scan: added port hw:0,0,0 in-hw-0-0-0-f-midi                                     
Feb 17 17:34:59 zynthian jackd[461]: scan: added port hw:0,0,0 out-hw-0-0-0-f-midi                                    
Feb 17 17:34:59 zynthian jackd[461]: scan: opened port hw:0,0,0 in-hw-0-0-0-f-midi                                    
Feb 17 17:34:59 zynthian jackd[461]: scan: opened port hw:0,0,0 out-hw-0-0-0-f-midi                                   

jack_lsp -c output:

system:playback_1                                                                                                     
   zynaddsubfx:part0/out-L                                                                                            
system:playback_2                                                                                                     
   zynaddsubfx:part0/out-R                                                                                            
system:midi_capture_1                                                                                                 
   ZynMidiRouter:main_in                                                                                              
system:midi_playback_1                                                                                                
ttymidi:MIDI_in                                                                                                       
   ZynMidiRouter:main_in                                                                                              
ttymidi:MIDI_out                                                                                                      
   ZynMidiRouter:midi_out                                                                                             
a2j:Midi Through [14] (capture): Midi Through Port-0                                                                  
   ZynMidiRouter:main_in                                                                                              
a2j:Midi Through [14] (playback): Midi Through Port-0                                                                 
jackpeak:input_a                                                                                                      
   zynaddsubfx:part0/out-L                                                                                            
jackpeak:input_b                                                                                                      
   zynaddsubfx:part0/out-R                                                                                            
ZynMidiRouter:main_out                                                                                                
ZynMidiRouter:midi_out                                                                                                
   ttymidi:MIDI_out                                                                                                   
ZynMidiRouter:net_out                                                                                                 
ZynMidiRouter:ctrl_out                                                                                                
ZynMidiRouter:step_out                                                                                                
   zynthstep:input                                                                                                    
ZynMidiRouter:ch0_out                                                                                                 
   zynaddsubfx-01:midi_input                                                                                          
ZynMidiRouter:ch1_out                                                                                                 
ZynMidiRouter:ch2_out                                                                                                 
ZynMidiRouter:ch3_out                                                                                                 
ZynMidiRouter:ch4_out                                                                                                 
ZynMidiRouter:ch5_out                                                                                                 
ZynMidiRouter:ch6_out                                                                                                 
ZynMidiRouter:ch7_out                                                                                                 
ZynMidiRouter:ch8_out                                                                                                 
ZynMidiRouter:ch9_out                                                                                                 
ZynMidiRouter:ch10_out                                                                                                
ZynMidiRouter:ch11_out                                                                                                
ZynMidiRouter:ch12_out                                                                                                
ZynMidiRouter:ch13_out                                                                                                
ZynMidiRouter:ch14_out                                                                                                
ZynMidiRouter:ch15_out                                                                                                
ZynMidiRouter:main_in                                                                                                 
   system:midi_capture_1                                                                                              
   ttymidi:MIDI_in                                                                                                    
   a2j:Midi Through [14] (capture): Midi Through Port-0                                                               
ZynMidiRouter:net_in                                                                                                  
ZynMidiRouter:seq_in                                                                                                  
ZynMidiRouter:step_in                                                                                                 
   zynthstep:output                                                                                                   
ZynMidiRouter:ctrl_in                                                                                                 
zynthstep:input                                                                                                       
   ZynMidiRouter:step_out                                                                                             
zynthstep:output                                                                                                      
   ZynMidiRouter:step_in                                                                                              
zynaddsubfx:out-L                                                                                                     
zynaddsubfx:out-R                                                                                                     
zynaddsubfx:part0/out-L                                                                                               
   system:playback_1                                                                                                  
   jackpeak:input_a                                                                                                   
zynaddsubfx:part0/out-R                                                                                               
   system:playback_2                                                                                                  
   jackpeak:input_b                                                                                                   
zynaddsubfx:part1/out-L                                                                                               
zynaddsubfx:part1/out-R                                                                                               
zynaddsubfx:part2/out-L                                                                                               
zynaddsubfx:part2/out-R                                                                                               
zynaddsubfx:part3/out-L                                                                                               
zynaddsubfx:part3/out-R                                                                                               
zynaddsubfx:part4/out-L                                                                                               
zynaddsubfx:part4/out-R                                                                                               
zynaddsubfx:part5/out-L                                                                                               
zynaddsubfx:part5/out-R                                                                                               
zynaddsubfx:part6/out-L                                                                                               
zynaddsubfx:part6/out-R                                                                                               
zynaddsubfx:part7/out-L                                                                                               
zynaddsubfx:part7/out-R                                                                                               
zynaddsubfx:part8/out-L                                                                                               
zynaddsubfx:part8/out-R                                                                                               
zynaddsubfx:part9/out-L                                                                                               
zynaddsubfx:part9/out-R                                                                                               
zynaddsubfx:part10/out-L                                                                                              
zynaddsubfx:part10/out-R                                                                                              
zynaddsubfx:part11/out-L                                                                                              
zynaddsubfx:part11/out-R                                                                                              
zynaddsubfx:part12/out-L                                                                                              
zynaddsubfx:part12/out-R                                                                                              
zynaddsubfx:part13/out-L                                                                                              
zynaddsubfx:part13/out-R                                                                                              
zynaddsubfx:part14/out-L                                                                                              
zynaddsubfx:part14/out-R                                                                                              
zynaddsubfx:part15/out-L                                                                                              
zynaddsubfx:part15/out-R                                                                                              
zynaddsubfx-01:midi_input                                                                                             
   ZynMidiRouter:ch0_out                                                                                              
root@zynthian://zynthian# 

OK, thanks for making that point. I used “officially supported” for lack of a better expression, but what I meant was that when a piece of hardware appeared in the device list in the webconf I assumed that this hardware had been successfully used for building a zynthian (and hopefully with the provided settings) so at some point I should be able to get mine up and running.

…and I’m aware I’m getting support from the community not “official” support and I am grateful for what you are doing to help me

Just tried disabling the auto-mute stuff in alsamixer and it didn’t help

1 Like

For me, selecting the default soundcard always helps.

nano /etc/asound.conf

paste there:
----- cut -----
pcm.!default {
type hw
card 0
}

ctl.!default {
type hw
card 0
}
----- cut -----
were you replace card “0” number with the number of your device (see the alsamixer’s card list)

1 Like

Yes, you’re right @dhrupadiya

aplay -l command shows the numbering of audio devices too. But these numbers are subject to change …

1 Like

Hi, just to say that I received an IQaudIO DAC Pro and it works like a charm after setting hw:IQaudIODAC in place of hw:0 in the jackd parameters.
No need to touch anything in alsamixer as well.

About the card:
nice build with

  • 2x20 male pins header for stacking another hat on it
  • pcm5122 DAC
  • RCA cinch line out
  • 3.65 mm headphone
  • 2x3 pins header footprint for wiring a balanced line out
  • 8 pins header footprint for deporting the single ended line out + wiring a physical “mute” switch
  • 1x5 pins header footprint for deporting the headphone output
3 Likes

Well, good for you… I didn’t have a chance to really try to get my DAC+ working since I posted my latest journalctl / jack_lsp dumps, but having started from a fresh Zynthian image and configured the settings supposedly correctly in webconf, I was running out of ideas anyway. I was planning to resume trying this week. DAC+ and DAC pro must not be so different from each other, and you got it to work right away doing nothing special. Could you maybe send your audio HW webconf settings + the same journalctl -ujack2 / jack_lsp -c outputs (and/or whatever else relevant)? At least now we have a functional IQaudio-based configuration to compare with… Thanks in advance

Hi pat, I’m buzy at work for a couple of days, but I will send you all the details before the week.

Some more recent info of my latest trials:

  • once I had made IQaudio DAC+ work with raspbian. Tried again and it is no longer the case : it’s detected but doesn’t make any sound. When I select the rpi output (right click on the speaker on the bottom right of the screen) it works, when I select IQaudioDAC device I get no sound. Something weird under raspbian though: if I open the device settings I get this: image
    and the weird thing is that it is the “digital” slider that controls the audio out device volume slider (left click on the speaker on the bottom right of the screen), not the “analogue” one. As for the analogue one, the only positions it accepts are 0 and 100%. I was expecting the analog slider to drive the raspbian volume slider. This is for raspbian, but maybe it can give some hints?
  • On zynthian GUI, I found a RPi headphones checkbox in the admin menu, which works fine: if I enable it I get sound through the rpi headphones out and alsa mixer shows a headphone volume knob which indeed controls the rpi headphone output volume. If I disable it then I don’t get any sound from anywhere (neither rpi nor dac+) and alsamixer shows a blank panel

… and even more surprising: I disconnected my display just in case (it’s on the DSI port so very unlikely to conflict), retried and then got sound from the IQaudio. Rebooted: still some sound. Plugged display back and rebooted: still some sound…Rebooted again: still some sound. So no idea why I didn’t get any sound the first time. And BTW, the “digital” slider in the IQaudio control panel indeed controls the analog output volume (I was using the headphones out from the DAC+ all the way but I assume it’s the same for the main out).

Custom Zynthians never seem to quite work first time until you’ve made a fuss over them like a pet.

2 Likes

good to know your audio board is okay.
All the manipulations and test you’re talking about were made under a stock raspbian distro or with ZynthianOs ?

Every time I talk about tests on Raspbian, it’s the real thing, i.e. another SD card with a stock Raspbian that I normally use with another RPi board as a mini-desktop computer. For these tests, I took the SD card out from this other board and stuck it in the one dedicated to my Zynthian project, i.e. with the DAC+ and touch display mounted on it. On the other hand, when I mention the zynthian GUI, I obviously use the SD card with Zynthian OS.

Eventually tried it, as I was running out of other ideas, but doesn’t make any difference

@pat, please tell me, what “aplay -l” command says in terminal. It should give you the list of all devices with numbers. In my case on my first zynthian it is:

card 3: audioinjectorpi [audioinjector-pi-soundcard], device 0: AudioInjector audio wm8731-hifi-0 [AudioInjector audio wm8731-hifi-0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

So when I edit “/etc/asound.conf” and select it as default, alsamixer shows it all the time.

pcm.!default {
        type hw
        card 3
}

ctl.!default {
        type hw
        card 3
}

I have never experiences and changes of device order after these operations. Alsamixer works as expected without any problem. Maybe there are some commands to reset the state of alsamixer, earlier before Audioinjector came into the list of cards in webconfig, I’ve used these commands that somehow restored the state of input and output on the card:

alsactl --file /usr/share/doc/audioInjector/asound.state.MIC.thru.test restore
alsactl --file /usr/share/doc/audioInjector/asound.state.RCA.thru.test restore

Hope I could help a little or give an idea were to proceed.

Hi @dhrupadiya , here is “aplay -l” output:

**** List of PLAYBACK Hardware Devices ****                                                                           
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]                            
  Subdevices: 8/8                                                                                                     
  Subdevice #0: subdevice #0                                                                                          
  Subdevice #1: subdevice #1                                                                                          
  Subdevice #2: subdevice #2                                                                                          
  Subdevice #3: subdevice #3                                                                                          
  Subdevice #4: subdevice #4                                                                                          
  Subdevice #5: subdevice #5                                                                                          
  Subdevice #6: subdevice #6                                                                                          
  Subdevice #7: subdevice #7                                                                                          
card 3: IQaudIODAC [IQaudIODAC], device 0: IQaudIO DAC HiFi pcm512x-hifi-0 [IQaudIO DAC HiFi pcm512x-hifi-0]          

So I made /etc/asound.conf the same as yours (this file didn’t exist before apparently, I created it)

The difference it makes is that when I launch alsamixer from the terminal, it now shows me the IQaudio control panel directly. I indeed no longer have to select it manually like I used to. In Zynthian GUI however, the Alsa Mixer still appears as an empty box… and I still have no sound :frowning:

@pat, I am very glad, that at least your card is now default for alsamixer.

I’ve found on one forum here the possible solution:

Under alsamixer, I just had to MUTE S/PDIF for the sound to play back again.

It could be something similar in your case.

I would search in the following direction, because it seems to be alsamixer settings problem with your particular sound card.

I didn’t find any SPDIF setting in my sound card settings, but there is a “digital” volume + mute (which actually control the analog output level under stock raspbian…), I tried to mute it but no difference.
In the meantime I figured out why the Alsa Mixer panel in Zynthian GUI (renamed “Audio Levels” in latest update) was empty: you have to add manually what controls it must show in webconf, which I did (I added Analog -which is just on/off as I said earlier-, Digital Left and Digital Right), and they now appear in zynthian GUI… but have no effect.

BTW, while Zynthian boots up I hear two clicks a few seconds apart in the IQaudio output, which tends to show it does something with the board at initialization, but unfortunately this is all I hear.

I also tried hw:3 instead of hw:IQaudIODAC, but no difference either

Also tried a couple of things I found in another forum thread about AudioInjector board where the guy fixed his problem by changing jackd options: -d => -Rd and 256 => 512 but didn’t help either

I tend to go back to a Raspbian ssd and get things working in there first. It does at least prove the components.

A card set to Mute appears just as dead as one that’s not even alive…