grame-cncm / faust

Functional programming language for signal processing and sound synthesis
http://faust.grame.fr
Other
2.54k stars 319 forks source link

Manipulation of voice recordings #87

Closed sedubois closed 4 years ago

sedubois commented 6 years ago

Apologies for this basic question, but I haven't figured out if/how Faust can import recordings such as a set of mp3 files, do some transformations on them, then both export the result to a new file as well as play it in place?

I would like to stitch together various recorded voice instructions with varying amounts of silence and bell recordings between them in order to construct guided meditations of varying lengths. I would like the user to be able to dynamically choose how much silence there should be, which bells should play when, etc.

To give a background on my requirements, I aim first to allow doing this through a web app, and if necessary later on, generalize to Android/iOS (but maybe it would be possible to cater to all main platforms through the web using webassembly etc?). The web app should work across Chrome, Firefox, Safari and Edge, and should work even if the smartphone screen gets locked, even on iOS.

Thank you for sharing this project, and than you for having taken the time to read this 🙂

MacroMachines commented 6 years ago

@sedubois As I understand it, FAUST is centered on the DSP side, so anything generated with math and feedback or manipulation of a continuous Audio Stream. File parsing and codecs have been solved very well in other libraries (JUCE is a particularly good one, and Pure Data). I suggest using another library to feed in audio files to faust processing. The Faust Playground effect Granulator and Looper are good examples of using faust to chop up a long delay line that would work well if you fed in audio files.