Sounds Reactor is an AWS lambda function that responds to uploads to an S3 bucket by downloading the file, transcoding it to ASK audio format, and then uploading it again.
Setting it up is a little tricky, but once set up, it just works.
- Create an S3 bucket to store your sound files. We're going to call this BUCKET_NAME throughout.
- Create an AWS Lambda function with an S3 trigger configured for BUCKET_NAME and Object Created event type.
- Leave the function body blank, or just the skeleton given and create the function.
- Note the ARN of the function after creation. We'll call it LAMBDA_ARN throughout.
- Fork this repo
- Change the ARN in Gruntfile.js to LAMBDA_ARN.
grunt deploy
- Upload sounds you want to be converted to a directory within BUCKET_NAME like sounds/incoming/quiet/foo.wav
- Sound Reactor will convert foo.wav and upload it to sounds/foo.mp3.
You can customize how conversion gets run by changing index.js. You can define profiles like loud, quiet, etc, by adding to the parameters
map. If you have sound file types you'll be uploading other than .mp3, .aif, and .wav, you can add to the relevant regular expression.
Or, you could rewrite the whole thing. It's not exactly a paragon of software engineering excellence.