Simple Multitrack 0.6.5

Simple Multitrack contains a set of programs that allows the simultaneous recording of an audio track.
Simple Multitrack
  1 Screenshot
Simple Multitrack contains a set of programs that allows the simultaneous recording of an audio track while listening to a monitor mix of other tracks.

This software uses the OSS audio drivers found in the Linux kernel or the
CoreAudio API on Mac OS X. It has been tested on

Linux 2.4.20 on a Pentium III 1.4GHz with a SBLive soundcard, and
Linux 2.4.20 on a Pentium I 120MHz laptop with a Crystal soundcard.
Mac OS 10.3.3 on a PowerBook G4.

Both Linux machines are running Slackware, so please tell me about your successes or problems on other distros.

Please read the BUGS section of this document. If you have bug reports, bug fixes, questions, comments, criticism, improvements, or documentation corrections please e-mail me.


cd bin;
source shellsetup;

This will compile the programs and put them in your path.
It will also make your shell prompt shorter, so you have room.
It will also define a little function that is explained below.

to record initial track:
srp < /dev/zero > my_file

to listen to a track:
mix 2 1 1 1 my_file | srp > /dev/null

to listen to one track while recording a new track:
mix 2 1 1 1 file_1 | srp > file_2

to listen to two tracks while recording a new track:
mix 2 1 .5 .5 file_1 .5 .5 file_2 | srp > file_3

Simple Multitrack is basically two programs. They were designed to be used together, but they might be useful on their own. I will describe each program separately before discussing them together.

mix is a command line program. It mixes one or more monophonic audio files into a single output stream. The output stream can have any number of channels: mono, stereo, quad, whatever you like. The output stream is written to standard out.

The input files are specified as command line arguments, as are the gain settings for each input. Invocation goes like this (in stereo mode):

mix nocs mgain l_gain_1 r_gain_1 file_1 l_gain_2 r_gain_2 file_2 ...

where nocs is the number of output channels, and mgain is the master gain.

Command line arguments to mix after the nocs and mgain arguments are the channels. For N output channels, you will have N gain arguments and then the name of the file. Therefore, the arguments after nocs and mgain must appear in (nocs+1)-tuples.

mix will continue to pump out an endless stream of silence after the end of the input files is reached. This behavior is different from most UNIX command line programs, which exit at the end of their input data, which closes their stdout.

mix can be exited with the keyboard interrupt, ctrl-c. The input files must be 16-bit 44100 samples/sec monophonic raw signed word files. The output stream is in 16-bit 44100 samples/sec stereo raw signed word format. (Thank God, it's in word format!) The program sox can be used to convert from most audio formats to and from most other audio formats.


mix 2 1 0 1 my_file
This pans my_file completely to the right.

mix 2 1 1 1 my_file
This centers my_file.

mix 2 .5 1 0 flute 0 1 viola
This puts the flute completely to the left and viola completely to the right.
The master_gain is set to .5 to reduce the overall level of the mix by 3dB.

mix 2 .5 1 .3 flute .2 .9 viola
This is similar but gentler.

mix 2 .5 2 .6 flute .2 .9 viola
This is the same but the flute is louder.

mix 2 1 2 .6 flute .2 .9 viola .3 .3 violin
The violin is added in the center.

Note: If you get clipping errors when using mix, you can lower the mgain factor instead of adjusting all of the individual channel gains, although that works too.

srp is a command line program. It enables simultaneous recording and playback of audio using a sound card. It will only work if your sound card and its driver support full-duplex operation correctly.

srp reads a stream of stereo 16-bit 44100 samples/sec raw signed word data on standard in and plays that stream out on the soundcard. Meanwhile, it reads from the left channel of the soundcard and writes a mono 16-bit 44100 samp/sec stream on standard out.

last updated on:
December 20th, 2006, 16:38 GMT
developed by:
Kurt Rosenfeld
license type:
GPL (GNU General Public License) 
ROOT \ Multimedia \ Audio
Simple Multitrack
Download Button

In a hurry? Add it to your Download Basket!

user rating



Rate it!

Add your review!