spotify / pedalboard

🎛 🔊 A Python library for audio.
https://spotify.github.io/pedalboard
GNU General Public License v3.0
4.96k stars 249 forks source link

Question: Is it possible save and load Chunks for Plug-Ins ? #326

Open dschiller opened 1 month ago

dschiller commented 1 month ago

As JUCE supports states which i guess are Chunks, Pedalboard should be able to save and load chunks for Plug-Ins.

psobot commented 1 month ago

Hi @dschiller - what's a Chunk?

dschiller commented 1 month ago

Hey Peter, a Chunk or a State is the data that a Plug-In uses to serialize it's current state.

VST SDK: https://steinbergmedia.github.io/vst3_doc/vstsdk/structVST3_1_1Vst2xState.html#ae06a4427e89917ea46f51958cb2136e7

JUCE: https://docs.juce.com/master/tutorial_audio_processor_value_tree_state.html

In the context of audio plug-ins, a "chunk" typically refers to a block of data used to store and retrieve the state or configuration of a plug-in. It's essentially a serialized representation of the plug-in's parameters, settings, and internal state.

Chunks are commonly used for tasks like saving and loading presets, session states, or automation data in Digital Audio Workstations (DAWs) or other audio software environments. When a user saves a preset in a DAW, for example, the DAW might serialize the current state of the plug-in into a chunk of data, which can then be stored in a file. Later, when the user loads that preset, the chunk is deserialized and used to restore the plug-in to the saved state.

Chunks can vary in format depending on the plug-in and the software environment. They may be stored in various data formats such as XML, JSON, binary, or proprietary formats specific to certain plug-in formats or DAWs.

Overall, chunks provide a standardized way for plug-ins to save and restore their state across different sessions and software environments, ensuring consistency and interoperability.