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.
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;
];
]}]