You are not logged in.

#1 2009-09-25 00:55:04

lymphatik
Member
From: Somewhere else
Registered: 2009-03-07
Posts: 119

[solved] oss or alsa rejecting me

Hi,

I think I kind of have the same issue as if I launch a web page with some flash and then try to launch mplayer. Mplayer just tells me device busy .( And I am also unable to get upmix for flash however it is working perfectly for mplayer ?

So I decided to give a shot at oss and of course oss would not work as expected either. The closest that I could set it up was flash + mplayer working together smoothly. But I could not get upmix of stereo to surround. The closest that I could get was front and rear working but without the sub and center. If I had all the 5.1 working together I was just getting the bass of the sub redirected all over the other channel.

So for alsa I did that:

I added to the modules list in /etc/rc.conf !snd-pcm-oss !snd_seq_oss. And moreover I am unable to get stero in surround for flash but it is working for mplayer

If you could help me to fix either oss or alsa that would make my day or even month ^^

[AO_ALSA] alsa-lib: pcm_hw.c:1325:(snd_pcm_hw_open) open /dev/snd/pcmC0D0p failed: Device or resource busy
[AO_ALSA] Playback open error: Device or resource busy
Failed to initialize audio driver 'alsa:device=3to6'
Could not open/initialize audio device -> no sound.
Audio: no sound

/etc/asound.conf

pcm.ice2_21cutoffsub {
     type ladspa
     slave.pcm       ice_plug
     path    "/usr/lib/ladspa"
     plugins {
          0 {
               label lp4pole_fcrcia_oa
               policy none
               input.bindings.2 "Input";
               output.bindings.2 "Output";
               input {
                    controls       [ 300 0 ]
               }
          }
          1 {
               label delay_0.01s
               input.bindings.0 "Input";
               output.bindings.0 "Output";
               input {
                    controls [ 0 1 ]
               }
          }
     }
}

# move channel 0 to channel 2
pcm.move0to2 {
     type route
     slave.pcm 3to6
     slave.channels 3
     ttable.0.2 1
}
# 3to6 has 3 input and 6 output channels
# the stereo signal is on ch. 0 and 1
# ch.0 is copied to 0 and 2  (front and rear)
# ch.1 is copied to 1 and 3  (front and rear)
# ch.0 and ch.1 will is mixed to ch.4 (center)
# ch.2 is routed to ch.5 (subwoofer)
pcm.3to6 {
     type route 
     slave.pcm "surround51"
     slave.channels 6
     ttable.0.0 1
     ttable.1.1 1
     ttable.0.2 1
     ttable.1.3 1
     ttable.0.4 0.5
     ttable.1.4 0.5
     ttable.0.5 1
     ttable.1.5 1
}
#choppy sound for flash
pcm.!default {
    type plug
    slave.pcm "3to6"
    slave.buffer_time 0
    slave.buffer_size 5120 #  to fix choppy flashy
}

Last edited by lymphatik (2009-09-26 09:57:25)

Offline

#2 2009-09-25 01:08:23

guzz46
Member
From: New Zealand
Registered: 2009-06-18
Posts: 190

Re: [solved] oss or alsa rejecting me

What version of alsa-lib do you have?

I had a similar problem when i upgraded to 1.0.21 but 1.0.21.a-1 fixed it for me

Offline

#3 2009-09-25 02:45:58

lymphatik
Member
From: Somewhere else
Registered: 2009-03-07
Posts: 119

Re: [solved] oss or alsa rejecting me

the latest one alsa-lib-1.0.21.a-1

could you post your asound.conf? that might help me to solve my problem thanks

Offline

#4 2009-09-25 03:09:01

guzz46
Member
From: New Zealand
Registered: 2009-06-18
Posts: 190

Re: [solved] oss or alsa rejecting me

I don't have an asound.conf i have an asound.state which probably wont help as i most likely have a different sound card than you but here it is any way

state.SB {
    control.1 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        comment.dbmin -4650
        comment.dbmax 0
        iface MIXER
        name 'Front Playback Volume'
        value.0 31
        value.1 31
    }
    control.2 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Front Playback Switch'
        value.0 true
        value.1 true
    }
    control.3 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        comment.dbmin -4650
        comment.dbmax 0
        iface MIXER
        name 'Surround Playback Volume'
        value.0 0
        value.1 0
    }
    control.4 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Surround Playback Switch'
        value.0 false
        value.1 false
    }
    control.5 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 31'
        comment.dbmin -4650
        comment.dbmax 0
        iface MIXER
        name 'Center Playback Volume'
        value 0
    }
    control.6 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 31'
        comment.dbmin -4650
        comment.dbmax 0
        iface MIXER
        name 'LFE Playback Volume'
        value 0
    }
    control.7 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Center Playback Switch'
        value false
    }
    control.8 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'LFE Playback Switch'
        value false
    }
    control.9 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        comment.dbmin -4650
        comment.dbmax 0
        iface MIXER
        name 'Side Playback Volume'
        value.0 31
        value.1 31
    }
    control.10 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Side Playback Switch'
        value.0 true
        value.1 true
    }
    control.11 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        comment.dbmin -3450
        comment.dbmax 1200
        iface MIXER
        name 'CD Playback Volume'
        value.0 0
        value.1 0
    }
    control.12 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'CD Playback Switch'
        value.0 false
        value.1 false
    }
    control.13 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        comment.dbmin -3450
        comment.dbmax 1200
        iface MIXER
        name 'Line Playback Volume'
        value.0 0
        value.1 0
    }
    control.14 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Line Playback Switch'
        value.0 false
        value.1 false
    }
    control.15 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        comment.dbmin -3450
        comment.dbmax 1200
        iface MIXER
        name 'Mic Playback Volume'
        value.0 0
        value.1 0
    }
    control.16 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 3'
        comment.dbmin 0
        comment.dbmax 3000
        iface MIXER
        name 'Mic Boost'
        value.0 0
        value.1 0
    }
    control.17 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Mic Playback Switch'
        value.0 false
        value.1 false
    }
    control.18 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 '2ch'
        comment.item.1 '4ch'
        comment.item.2 '6ch'
        iface MIXER
        name 'Channel Mode'
        value '6ch'
    }
    control.19 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Capture Switch'
        value.0 false
        value.1 false
    }
    control.20 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Capture Switch'
        index 1
        value.0 true
        value.1 true
    }
    control.21 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        comment.dbmin -1650
        comment.dbmax 3000
        iface MIXER
        name 'Capture Volume'
        value.0 0
        value.1 0
    }
    control.22 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        comment.dbmin -1650
        comment.dbmax 3000
        iface MIXER
        name 'Capture Volume'
        index 1
        value.0 0
        value.1 0
    }
    control.23 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 Mic
        comment.item.1 Line
        comment.item.2 CD
        comment.item.3 'Front Mic'
        iface MIXER
        name 'Input Source'
        value Mic
    }
    control.24 {
        comment.access 'read write'
        comment.type ENUMERATED
        comment.count 1
        comment.item.0 Mic
        comment.item.1 Line
        comment.item.2 CD
        iface MIXER
        name 'Input Source'
        index 1
        value Mic
    }
    control.25 {
        comment.access read
        comment.type IEC958
        comment.count 1
        iface MIXER
        name 'IEC958 Playback Con Mask'
        value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
    }
    control.26 {
        comment.access read
        comment.type IEC958
        comment.count 1
        iface MIXER
        name 'IEC958 Playback Pro Mask'
        value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
    }
    control.27 {
        comment.access 'read write'
        comment.type IEC958
        comment.count 1
        iface MIXER
        name 'IEC958 Playback Default'
        value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
    }
    control.28 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'IEC958 Playback Switch'
        value true
    }
    control.29 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'IEC958 Default PCM Playback Switch'
        value true
    }
    control.30 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        comment.dbmin -3450
        comment.dbmax 1200
        iface MIXER
        name 'Beep Playback Volume'
        value.0 0
        value.1 0
    }
    control.31 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 2
        iface MIXER
        name 'Beep Playback Switch'
        value.0 false
        value.1 false
    }
    control.32 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 1
        comment.range '0 - 31'
        comment.dbmin -4650
        comment.dbmax 0
        iface MIXER
        name 'Master Playback Volume'
        value 24
    }
    control.33 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'Master Playback Switch'
        value true
    }
    control.34 {
        comment.access 'read write user'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 255'
        comment.tlv '0000000100000008ffffec1400000014'
        comment.dbmin -5100
        comment.dbmax 0
        iface MIXER
        name 'PCM Playback Volume'
        value.0 255
        value.1 255
    }
}
state.HDMI {
    control.1 {
        comment.access read
        comment.type IEC958
        comment.count 1
        iface MIXER
        name 'IEC958 Playback Con Mask'
        value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
    }
    control.2 {
        comment.access read
        comment.type IEC958
        comment.count 1
        iface MIXER
        name 'IEC958 Playback Pro Mask'
        value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
    }
    control.3 {
        comment.access 'read write'
        comment.type IEC958
        comment.count 1
        iface MIXER
        name 'IEC958 Playback Default'
        value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
    }
    control.4 {
        comment.access 'read write'
        comment.type BOOLEAN
        comment.count 1
        iface MIXER
        name 'IEC958 Playback Switch'
        value false
    }
}

Offline

#5 2009-09-25 10:10:51

lymphatik
Member
From: Somewhere else
Registered: 2009-03-07
Posts: 119

Re: [solved] oss or alsa rejecting me

Well I even tried without asound.conf and I still can't play ywo song at a time. I do not understand because you normally do not have to set up dmix for that.

Offline

#6 2009-09-26 02:11:15

lymphatik
Member
From: Somewhere else
Registered: 2009-03-07
Posts: 119

Re: [solved] oss or alsa rejecting me

Finally found it took me some times. I also add to change mpd.conf according to this sitem otherwise I would not have upmix

http://mpd.wikia.com/wiki/Configuration#Audio_Outputs

pcm.snd_card {
     type hw
     card 0 # change to your cards number or name
}

# 6 channel dmix:
pcm.dmix6 {
     type dmix
        ipc_key 1024
        ipc_key_add_uid false # let multiple users share otherwise doesnt work for mpd
        ipc_perm 0666 # for all users IPC permissions (octal, default 0600)
        slave {
                pcm snd_card # see below
                rate 48000
                channels 6
                period_time 0
                period_size 1024 # try 2048 against skipping
                buffer_time 0
                buffer_size 5120 # in case of problems reduce this
                                 # in case of skipping, try increasing
        }
    #disabled as it doesnt mix two channels together for LFE and Center
    #bindings {
        #0 0 # from 0 => to 0
        #1 1 # from 1 => to 1
    #0 2
    #1 3
    #2 4
    #3 5
       #}

     }

# upmixing: 
pcm.ch51dup {
        type route
        slave.pcm dmix6
        slave.channels 6
        ttable.0.0 1
        ttable.1.1 1
        ttable.0.2 1
        ttable.1.3 1
        ttable.0.4 0.5
        ttable.1.4 0.5
        ttable.0.5 0.5
        ttable.1.5 0.5
   }

pcm.duplex {
     type asym
     playback.pcm "ch51dup" # upmix first
#     playback.pcm "dmix6"  # just pass to 6 channel dmix
#     capture.pcm "dsnoop:0" # doesn't work for me
     capture.pcm "snd_card"
}

# change default device:
pcm.!default {
     type plug
     #if only need bindings
     #slave.pcm "dmix6"
     slave.pcm "duplex"
}

# for aoss
pcm.dsp "duplex"

#pcm.dsp1 "duplex"

Last edited by lymphatik (2009-09-26 03:28:24)

Offline

Board footer

Powered by FluxBB