SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

ALSA support in Mixxx (alpha)

Pre-requisites: A working ALSA setup - check the ALSA website[1] for documentation and the Wiki[2] is also very helpful.

The ALSA support in Mixxx has been designed with a multichannel soundcard in mind. However the flexibility of ALSA's plugin architecture allows other audio hardware configurations to work with Mixxx.

  1. multichannel card (4.0, 5.1, etc) Test that the separate front and rear channels work using aplay, eg.

$ aplay -Dfront test.wav
$ aplay -Drear test.wav

or use James Courtier-Dutton's speaker-test utility[3].

By default, Mixxx uses the two plugins: the plug plugin to convert sampling rate, format, etc and the surround40 plugin to pipe the audio stream to the correct channels. If the above tests work then Mixxx should work once you have placed the following stanza in your ~/.asoundrc file.

pcm.mixxx {

  type           plug
  slave.pcm      "surround40:0"

slave.channels 4
}

2) single stereo card
One possible way to use a stereo card for mixing is to combine the master channels to the left output and the headphone (pre-listen) channels to the right output.

pcm.mixxx {

  type           route
  slave.pcm      "hw:0"
  slave.channels 2
  ttable.0.0     0.5
  ttable.1.0     0.5
  ttable.2.1     0.5
  ttable.3.1     0.5

}

3) 2 or more stereo cards
Tie together two sound cards using the multi plugin. The output from the first card (hw:0) is the master output and the second card (hw:1) serves as the headphone output.

pcm.mixxxmulti {

        type multi
        slaves.a.pcm "hw:0"
        slaves.a.channels 2
        slaves.b.pcm "hw:1"
        slaves.b.channels 2
        bindings.0.slave a
        bindings.0.channel 0
        bindings.1.slave a
        bindings.1.channel 1
        bindings.2.slave b
        bindings.2.channel 0
        bindings.3.slave b
        bindings.3.channel 1

}

pcm.mixxx {

        type route
        slave.pcm "mixxxmulti"
        ttable.0.0 1
        ttable.1.1 1
        ttable.2.2 1
        ttable.3.3 1

}

NB why doesn't the plug plugin work in place of the route plugin in the last two configurations?

[1] http://www.alsa-project.org
[2] http://alsa.opensrc.org/
[3] http://www.superbug.demon.co.uk/speaker-test/


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.