JUCE

Tracking Juce Wasm

Misko Lee
Why WASM For Audio Programming 正如大家所知道的那样,Web在软件分发方式上具有极大的优势,在现在这个时候,使用web来构建专业的音频应用也已经具备了基础的条件。 Web Audio API 中已经提供了专门用于开发低延迟的音频应用处理的AudioWorklet API. AudioWorklet工作在独立的线程中,对于保证实时音频处理性能提供了基础的条件。 WASM。 借助WASM可以直接将原生代码(C++/Rust等)编译为在Web中可以运行的代码,这也就意味着我们的软件可以共享原生平台与Web平台,而无需从头重新开发。这使得我们的原生软件可以实验性地支持Web平台或削弱功能。 基于以上的原因,我尝试将JUCE Framework迁移到了Web平台,并且取得了实际的效果。 Starting Support WASM On JUCE. 在JUCE中,原生音频设备驱动都封装在juce_audio_devices::AudioIODevice 中,这里处理了全部有关音频设备交互的全部功能,包括输入与输出。 对于不同的音频设备类型,则定义在 juce_audio_devices::AudioDeviceType中,因此这一部分的支持,我们主要是要: 定义一个新的juce_audio_devicesz::AudioDeviceType。 定义一个新的 juce_audio_devices::AudioIODevice 用于port AudioWorklet API。 只要我们完成了以上工作,那么也就代表我们已经完成了而最基本的迁移。 Support Sound Devices. Support Local IO. Example Of WASM JUCE References AudioWorklet

Understand Audio Programming & Juce Framework

Misko Lee
What’s Audio Programming The field of audio programming is a subdomain of multimedia, encompassing various tasks such as sound synthesis, audio signal processing, and audio plugin development. Common applications in the audio programming field include: Music players Audio editors Digital audio workstations (DAWs) MIDI signal processing Audio programming is a standard I/O task, and depending on the stage, it can be divided into: Input: This deals with where the audio data comes from.