Audio
Audio[file] represents audio stored in the given file.
Audio[url] represents audio stored in the given URL.
Audio[data] represents audio with samples given by the array data.
Audio[data, format, opts] represents audio stored as format, where format:
"SignedInteger8"-datamust be an array of signed 8 bit values"SignedInteger16"-datamust be an array of signed 16 bit values"Real32"-datais a floating point array from -1.0 to 1.0
Audio[SoundNote[...]] samples SoundNote into an audio
Audio[Video[...]] extracts audio track from video object
Any improted audio files are represented as Audio.
Options
SampleRate
Sets the sample rate of Audio object.
Examples
Create audio from a sine wave:
Audio[Table[Sin[440 * 2 Pi * t], {t, 0, 1, 1/44100}]]Methods
See all Audio* symbols in this reference section.
Something isn't working? Report an issue.
Please visit the official Wolfram Language Reference for more details.
Updates and streaming
As many WLJS primitives Audio supports real-time streaming of data using Offload expression:
buffer = {};
Audio[buffer//Offload, "Real32"]The following formats are supported for streaming:
- `"Real32", mono
- `"SignedInteger16", mono
with SampleRate option:
- 8000
- 16000
- 44100
To push a new chunk of data to the buffer - simply assign an array:
buffer = Table[Exp[-x/100.0]Sin[x/1.5], {x,0,100Pi, 0.1}];NumericArray for the best performanceYou can assign an event handler to detect, when the buffer is about to be finished to push a new chunk of data:
buffer = {};
samplingFunction = Function[t, Exp[-Mod[t,3]/1.0]Sin[200.0 t]];
time = 0;
EventHandler[Audio[buffer//Offload, "Real32", SampleRate->8000], {"More" -> Function[Null,
With[{c = (1.0/8000.0) (2Pi)},
With[{sampled = Table[samplingFunction[c (i + time)], {i, 0, 4 1024 - 1}]},
buffer = NumericArray[sampled, "Real32"];
];
time += 4 1024;
];
]}]