Web Capabilities
I see you can fill a named buffer from outside the RNBO object in Max if it has the same name.I guess not but wondering if there is a way to do this in other hosts - thinking of JS in the web export really. I'm wanting to let users drop an audio file into a web browser and then play with it.
Is Ableton Link supported with Web Export? I'm pretty sure I read it was supported with Pi export but not sure about browser based stuff. There is a node package for link I'm pretty sure.
I should be able to feed audio or microphone input into web exported rnbo though right?
Thanks!
Hi Gavspav.
The docs and reference for using RNBO in a web context provide guidance on how to work with buffers and external data and how to fill them from your JavaScript code.
This article is a good starting point https://rnbo.cycling74.com/learn/buffers-and-file-dependencies
There is currently no Link support within the resulting code from the web export. It relies upon the feature set the host, in this case your web browser, provides.
Note that the Web Export code neither requires nor uses any server apart from simple static file serving, the latter being required by browser security standards.
Thanks, I didn't notice that!
I'll just tack this on the same thread as it's probably mentioned somewhere else in the docs that I haven't spotted.......
None of the rbno web export patches I've tried (my own or other people's) have worked with Brave (the browser). I'm surprised at this as I thought it was basically Chrome but they don't seem too.
I can confirm that there seems to be an issue in the Brave Browser when setting external data (AudioBuffers) from web application code on a RNBO Device.
We are investigating this further as well but it seems like the issue is isolated to Brave currently and might potentially be a browser vendor issue. If an exported RNBO patch is not using external set buffers it seems to work as expected.
Just following up here that there is in fact a performance issue in Brave due to their Farbling code that affects AudioBuffer.getChannelData and leads to the stalling behaviour you are seeing.
The issue is tracked here:
https://github.com/brave/brave-browser/issues/26507
If you'd like to read more about Brave's Farbling / Fingerprint blocking here a few links:
If supporting Brave is crucial for your application until this issue is addressed you can get around this by handing an interleaved Float32Array to the RNBO Device as device.setDataBuffer supports the following two ways of calling it:
device.setDataBuffer(id: string, data: AudioBuffer)
device.setDataBuffer(id: string, data: ArrayBuffer, channelCount: number, sampleRate: number)
If you are looking for an example on how to create the interleaved Float32Array from an AudioBuffer you can refer to this Gist linked to in the Brave issue.
Thanks for the info. It's not crucial at all - I was just letting you know!