I'm in the process of setting up an audio processor on my remotely hosted CentOS box. The audio processor itself is command line based, and after speaking with the author he explained to me that it works by reading in a live .WAV stream, and it outputs a live .WAV too.
Now basically, the scenario I have is this:
I have a shoutcast server on this box using port 8000. This shoutcast server is the point at which the DJ's connect.
I have a secondary shoutcast server using port 8002 where the listeners will connect.
In between these, I would like to use this audio processing tool. It would need to connect to the first shoutcast server on port 8000, process the audio, and then send it to the server on port 8002.
The program cannot do this on it's own unfortunately, so I am told by the software author. He also stated that this scenario is workable, providing I use the right method. He suggested something like the following:
- Command line tool that reads the incoming stream, and pipes it to:
- Command line tool that extracts the MP3 data to WAV format, for example lame with option --decode.
- Stereo Tool.
- Program that encodes WAV to MP3 data, for example lame.
- Program that streams this, which can handle a pipe as input.
Step 1+2 could be replaced by: 'arecord', linked using 'jack' to a program that receives and plays an incoming stream
Similarly, step 5 could be replaced by: 'aplayer', linked using 'jack' to a program that streams audio data.
I do understand what he has said, and I could proably do this if I was using a local install with a GUI and a sound card.
It's mainly the input and output im struggling with.
arecord | lame -encodingoptionshere - - | aplay