I'm trying to understand how generate audio based on a string. Think of how you can open a non-audio file in something like Audacity (it opens as binary I guess) and play it as noise.
I have a simple working player in tone.js below that plugs in a base64 string of an audio file to the player. How do I replace that base64 audio file with an ordinary string (text), say "Hello world", that gets converted into an audio file as a string, either as bas64 as below as perhaps using binary conversion?
<script>
//load a base64 mp3
const player = new Tone.Player("data:audio/mp3;base64, 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").toDestination();
//if loaded then play
Tone.loaded().then(() => {
player.start();
});
</script>
I've not used Tone.JS. But I have played by raw PCM data with the Web Audio API. The data consists of floating point values that range from -1 to 1. I think a necessary step will be coming up with a transform function that converts your String data to numbers that fall within this range, if you take the path of playing back PCM.
You will need very long strings, though, if your play is a common sample rate of 44100 frames per second, and each char maps to a single frame.