Scott's Mp3 Mixer v0.01
This is a reconstruction of an old piece of software I used to have, the basic idea is to let you mix 2 audio streams generated from mpeg audio files with volume and speed control.
The code is basically a wrapper which uses mpg123 to actually decode the mpeg files to raw audio data. The programme then applies the speed control and mixes the two audio streams.
Because sustaining the throughput requires a lot of process switching you need a reasonably high spec machine to keep the audio pipe fed. Because there is a buffer for talking to the sound card there is a perceptible delay between hitting a kety and the output changing. It's possible to shrink the buffer and reduce this delay, but the smaller the buffer the more likley there will be skips due to the buffer running dry.
This is a quick hack (about an hour and a half) I may improve it...
maybe not.
- usage
You Need mpg123 to use this - get it from http://mpg.123.org
compile mpg123 and put it somewhere in your path. compile the programme.
run it with all the mpeg audio files you want to use on teh command line.
e.g.
./mp3dj ~/mp3/*.mp3
then control overythign from the keyboard.....
'+' - Quit
'1','q','w' - select file for channel 1
'a','z','x' - select file for channel 2
'2' - Start/stop channel 1
's' - Start/stop channel 2
'3','e' - Volume control on channel 1
'd','c' - Volume control on Channel 2
'4','r' - Speed Control on Channel 1
'f','v' - Speed Control on Channel 2
That's all that's implemented so far.
- Notes
- I'm so far too lazy to deal with variable sample rates - 44.1kHz in stereo 16 bit is all I suuport, if your files are different then they will sound strange.
The speed control works by skipping samples - not particularyly high quality.
The volume has a smooth clipping algorithm implemented - this means that single track will show some distortion - but it sounds a lot better when you're mixing multiple tracks.
- Todo
Command recording - so you don't need to play everyhting live.
interface to mp3serv radio to let you braodcast.
microphone mute to let you speak over recordings.
proper level meter.
TK interface.
Integrate mpg123 code into binary.
rewind/fwd fast.
any ideas?
