Re: [chuck-users] Is it possible to get mp3 output instead of wav?

Hi, My first post here. I stumbled on chuck this morning and have not been able to take my hands off it.. its fun!! While going through the manual I found chuck can write a Wav file to disk, can it also write an .mp3 file? I searched through the chuck-users archives messages but found no direct response.
Also, I was curious if chuck can read in from a mp3 file. If not, are you aware of a command line tool that can convert from mp3 to wav and then feed into chuck (that's assuming wav files can be chucked). One of the reasons to try something like above is to make my own karaoke files (20-30 of them), but all my songs are mp3. I was planning to use chuck to do some frequency filtering to achieve karaoke effect and then possibly add some computer generated sounds to create a mix.
Thanks for developing chuck .. pretty cool :-) Manish

Hey, Manish! My first post here. I stumbled on chuck this morning and have not been
able to take my hands off it.. its fun!! While going through the manual I found chuck can write a Wav file to disk, can it also write an .mp3 file? I searched through the chuck-users archives messages but found no direct response.
Short answer; no. The thing is that compressed files like MP3 and so on are a lot more complicated then .wav, .aiff, and so on. These last come down to a simple train of numbers expressing the amplitude of the contained wave at points in time, MP3 on the other hand is more like a description of how to recreate the sound in a way that will seem (almost) the same to human ears. So; it's a lot more complicated and harder on the CPU to "record to mp3". Basically recording to MP3 comes down to figuring out what the wave would be, encoding that to MP3 and writing the MP3 to disc. This is not to say it would be impossible to do that in the future but it does explain why we don't have it. You can of course still encode the .wav to MP3 yourself in your favourite editor, then delete the .wav for easier storage or for sharing your sounds with your friends without cloging your whole connection with large files.
Also, I was curious if chuck can read in from a mp3 file. If not, are you aware of a command line tool that can convert from mp3 to wav and then feed into chuck (that's assuming wav files can be chucked). One of the reasons to try something like above is to make my own karaoke files (20-30 of them), but all my songs are mp3. I was planning to use chuck to do some frequency filtering to achieve karaoke effect and then possibly add some computer generated sounds to create a mix.
Right now I see two options. You could decompress your files to waves (for example VLC has a "transcode wizard" that will do this, WinAmp can be set to output to wave files instead of your soundcard and of course any decent audio editor can save to .wav) then load those in a SndBuf UGen for playback in ChucK. You could also get one of the various programs that can route audio between programs and link the output of your MP3 player to the input (adc) of ChucK for further realtime treatment. What program you use for this will depend on your OS. For Linux there is Jack, Mac has Soundflower... and for Windows I don't know for sure what the best choise would be because I have a soundcard that will do this for me so I didn't look into that too deeply. There is no such thing as directly sending a wave file to ChucK; you can either load the file in a SndBuf and tell it how and when to play back or you can send a audio stream into ChucK. I hope that clarifies? Yours, Kas.

On Thu, Oct 2, 2008 at 6:18 AM, Kassen
Hey, Manish!
My first post here. I stumbled on chuck this morning and have not been able to take my hands off it.. its fun!! While going through the manual I found chuck can write a Wav file to disk, can it also write an .mp3 file? I searched through the chuck-users archives messages but found no direct response.
Short answer; no. The thing is that compressed files like MP3 and so on are a lot more complicated then .wav, .aiff, and so on. These last come down to a simple train of numbers expressing the amplitude of the contained wave at points in time, MP3 on the other hand is more like a description of how to recreate the sound in a way that will seem (almost) the same to human ears. So; it's a lot more complicated and harder on the CPU to "record to mp3". Basically recording to MP3 comes down to figuring out what the wave would be, encoding that to MP3 and writing the MP3 to disc. This is not to say it would be impossible to do that in the future but it does explain why we don't have it.
You can of course still encode the .wav to MP3 yourself in your favourite editor, then delete the .wav for easier storage or for sharing your sounds with your friends without cloging your whole connection with large files.
Also, I was curious if chuck can read in from a mp3 file. If not, are you aware of a command line tool that can convert from mp3 to wav and then feed into chuck (that's assuming wav files can be chucked). One of the reasons to try something like above is to make my own karaoke files (20-30 of them), but all my songs are mp3. I was planning to use chuck to do some frequency filtering to achieve karaoke effect and then possibly add some computer generated sounds to create a mix.
Right now I see two options. You could decompress your files to waves (for example VLC has a "transcode wizard" that will do this, WinAmp can be set to output to wave files instead of your soundcard and of course any decent audio editor can save to .wav) then load those in a SndBuf UGen for playback in ChucK.
You could also get one of the various programs that can route audio between programs and link the output of your MP3 player to the input (adc) of ChucK for further realtime treatment. What program you use for this will depend on your OS. For Linux there is Jack, Mac has Soundflower... and for Windows I don't know for sure what the best choise would be because I have a soundcard that will do this for me so I didn't look into that too deeply.
There is no such thing as directly sending a wave file to ChucK; you can either load the file in a SndBuf and tell it how and when to play back or you can send a audio stream into ChucK.
In Linux or OS X, you could also create a pipe called "output.wav" and write the ChucK output to this file. Then start a process like 'lame' which encodes this file to an .mp3. As long as it's able to keep up, ChucK won't block and you'll get an mp3 file without writing a huge intermediate wav file. I don't really recommend it though because it'll strain your processor for little real gain. On the other hand, I guess on a multi-core machine that doesn't matter so much. commands (tested on linux): mkfifo output.wav lame --preset 320 output.wav output.mp3 & chuck awesomewicked.ck rec.ck:output.wav Steve
participants (3)
-
Kassen
-
Manish Mittal
-
Stephen Sinclair