Giter VIP home page Giter VIP logo

pedalboard's Introduction

Pedalboard Logo

License: GPL v3 Documentation PyPI - Python Version Supported Platforms Apple Silicon support for macOS and Linux (Docker) PyPI - Wheel Test Badge Coverage Badge PyPI - Downloads DOI GitHub Repo stars

pedalboard is a Python library for working with audio: reading, writing, rendering, adding effects, and more. It supports most popular audio file formats and a number of common audio effects out of the box, and also allows the use of VST3ยฎ and Audio Unit formats for loading third-party software instruments and effects.

pedalboard was built by Spotify's Audio Intelligence Lab to enable using studio-quality audio effects from within Python and TensorFlow. Internally at Spotify, pedalboard is used for data augmentation to improve machine learning models and to help power features like Spotify's AI DJ and AI Voice Translation. pedalboard also helps in the process of content creation, making it possible to add effects to audio without using a Digital Audio Workstation.

Documentation

Features

  • Built-in audio I/O utilities (pedalboard.io)
    • Support for reading and writing AIFF, FLAC, MP3, OGG, and WAV files on all platforms with no dependencies
    • Additional support for reading AAC, AC3, WMA, and other formats depending on platform
    • Support for on-the-fly resampling of audio files and streams with O(1) memory usage
    • Live audio effects via AudioStream
  • Built-in support for a number of basic audio transformations, including:
    • Guitar-style effects: Chorus, Distortion, Phaser, Clipping
    • Loudness and dynamic range effects: Compressor, Gain, Limiter
    • Equalizers and filters: HighpassFilter, LadderFilter, LowpassFilter
    • Spatial effects: Convolution, Delay, Reverb
    • Pitch effects: PitchShift
    • Lossy compression: GSMFullRateCompressor, MP3Compressor
    • Quality reduction: Resample, Bitcrush
  • Supports VST3ยฎ instrument and effect plugins on macOS, Windows, and Linux (pedalboard.load_plugin)
  • Supports instrument and effect Audio Units on macOS
  • Strong thread-safety, memory usage, and speed guarantees
    • Releases Python's Global Interpreter Lock (GIL) to allow use of multiple CPU cores
      • No need to use multiprocessing!
    • Even when only using one thread:
      • Processes audio up to 300x faster than pySoX for single transforms, and 2-5x faster than SoxBindings (via iCorv)
      • Reads audio files up to 4x faster than librosa.load (in many cases)
  • Tested compatibility with TensorFlow - can be used in tf.data pipelines!

Installation

pedalboard is available via PyPI (via Platform Wheels):

pip install pedalboard  # That's it! No other dependencies required.

If you are new to Python, follow INSTALLATION.md for a robust guide.

Compatibility

pedalboard is thoroughly tested with Python 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, and 3.12 as well as experimental support for PyPy 3.7, 3.8, and 3.9.

  • Linux
    • Tested heavily in production use cases at Spotify
    • Tested automatically on GitHub with VSTs
    • Platform manylinux and musllinux wheels built for x86_64 (Intel/AMD) and aarch64 (ARM/Apple Silicon)
    • Most Linux VSTs require a relatively modern Linux installation (with glibc > 2.27)
  • macOS
    • Tested manually with VSTs and Audio Units
    • Tested automatically on GitHub with VSTs
    • Platform wheels available for both Intel and Apple Silicon
    • Compatible with a wide range of VSTs and Audio Units
  • Windows
    • Tested automatically on GitHub with VSTs
    • Platform wheels available for amd64 (x86-64, Intel/AMD)

Examples

Note: If you'd rather watch a video instead of reading examples or documentation, watch Working with Audio in Python (feat. Pedalboard) on YouTube.

Quick start

from pedalboard import Pedalboard, Chorus, Reverb
from pedalboard.io import AudioFile

# Make a Pedalboard object, containing multiple audio plugins:
board = Pedalboard([Chorus(), Reverb(room_size=0.25)])

# Open an audio file for reading, just like a regular file:
with AudioFile('some-file.wav') as f:
  
  # Open an audio file to write to:
  with AudioFile('output.wav', 'w', f.samplerate, f.num_channels) as o:
  
    # Read one second of audio at a time, until the file is empty:
    while f.tell() < f.frames:
      chunk = f.read(f.samplerate)
      
      # Run the audio through our pedalboard:
      effected = board(chunk, f.samplerate, reset=False)
      
      # Write the output to our output file:
      o.write(effected)

Note: For more information about how to process audio through Pedalboard plugins, including how the reset parameter works, see the documentation for pedalboard.Plugin.process.

Making a guitar-style pedalboard

# Don't do import *! (It just makes this example smaller)
from pedalboard import *
from pedalboard.io import AudioFile

# Read in a whole file, resampling to our desired sample rate:
samplerate = 44100.0
with AudioFile('guitar-input.wav').resampled_to(samplerate) as f:
  audio = f.read(f.frames)

# Make a pretty interesting sounding guitar pedalboard:
board = Pedalboard([
    Compressor(threshold_db=-50, ratio=25),
    Gain(gain_db=30),
    Chorus(),
    LadderFilter(mode=LadderFilter.Mode.HPF12, cutoff_hz=900),
    Phaser(),
    Convolution("./guitar_amp.wav", 1.0),
    Reverb(room_size=0.25),
])

# Pedalboard objects behave like lists, so you can add plugins:
board.append(Compressor(threshold_db=-25, ratio=10))
board.append(Gain(gain_db=10))
board.append(Limiter())

# ... or change parameters easily:
board[0].threshold_db = -40

# Run the audio through this pedalboard!
effected = board(audio, samplerate)

# Write the audio back as a wav file:
with AudioFile('processed-output.wav', 'w', samplerate, effected.shape[0]) as f:
  f.write(effected)

Using VST3ยฎ or Audio Unit instrument and effect plugins

from pedalboard import Pedalboard, Reverb, load_plugin
from pedalboard.io import AudioFile
from mido import Message # not part of Pedalboard, but convenient!

# Load a VST3 or Audio Unit plugin from a known path on disk:
instrument = load_plugin("./VSTs/Magical8BitPlug2.vst3")
effect = load_plugin("./VSTs/RoughRider3.vst3")

print(effect.parameters.keys())
# dict_keys([
#   'sc_hpf_hz', 'input_lvl_db', 'sensitivity_db',
#   'ratio', 'attack_ms', 'release_ms', 'makeup_db',
#   'mix', 'output_lvl_db', 'sc_active',
#   'full_bandwidth', 'bypass', 'program',
# ])

# Set the "ratio" parameter to 15
effect.ratio = 15

# Render some audio by passing MIDI to an instrument:
sample_rate = 44100
audio = instrument(
  [Message("note_on", note=60), Message("note_off", note=60, time=5)],
  duration=5, # seconds
  sample_rate=sample_rate,
)

# Apply effects to this audio:
effected = effect(audio, sample_rate)

# ...or put the effect into a chain with other plugins:
board = Pedalboard([effect, Reverb()])
# ...and run that pedalboard with the same VST instance!
effected = board(audio, sample_rate)

Creating parallel effects chains

This example creates a delayed pitch-shift effect by running multiple Pedalboards in parallel on the same audio. Pedalboard objects are themselves Plugin objects, so you can nest them as much as you like:

from pedalboard import Pedalboard, Compressor, Delay, Distortion, Gain, PitchShift, Reverb, Mix

passthrough = Gain(gain_db=0)

delay_and_pitch_shift = Pedalboard([
  Delay(delay_seconds=0.25, mix=1.0),
  PitchShift(semitones=7),
  Gain(gain_db=-3),
])

delay_longer_and_more_pitch_shift = Pedalboard([
  Delay(delay_seconds=0.5, mix=1.0),
  PitchShift(semitones=12),
  Gain(gain_db=-6),
])

board = Pedalboard([
  # Put a compressor at the front of the chain:
  Compressor(),
  # Run all of these pedalboards simultaneously with the Mix plugin:
  Mix([
    passthrough,
    delay_and_pitch_shift,
    delay_longer_and_more_pitch_shift,
  ]),
  # Add a reverb on the final mix:
  Reverb()
])

Running Pedalboard on Live Audio

On macOS or Windows, Pedalboard supports streaming live audio through an AudioStream object, allowing for real-time manipulation of audio by adding effects in Python.

from pedalboard import Pedalboard, Chorus, Compressor, Delay, Gain, Reverb, Phaser
from pedalboard.io import AudioStream

# Open up an audio stream:
with AudioStream(
  input_device_name="Apogee Jam+",  # Guitar interface
  output_device_name="MacBook Pro Speakers"
) as stream:
  # Audio is now streaming through this pedalboard and out of your speakers!
  stream.plugins = Pedalboard([
      Compressor(threshold_db=-50, ratio=25),
      Gain(gain_db=30),
      Chorus(),
      Phaser(),
      Convolution("./guitar_amp.wav", 1.0),
      Reverb(room_size=0.25),
  ])
  input("Press enter to stop streaming...")

# The live AudioStream is now closed, and audio has stopped.

Using Pedalboard in tf.data Pipelines

import tensorflow as tf 

sr = 48000 

# Put whatever plugins you like in here:
plugins = pedalboard.Pedalboard([pedalboard.Gain(), pedalboard.Reverb()]) 

# Make a dataset containing random noise:
# NOTE: for real training, here's where you'd want to load your audio somehow:
ds = tf.data.Dataset.from_tensor_slices([np.random.rand(sr)])

# Apply our Pedalboard instance to the tf.data Pipeline:
ds = ds.map(lambda audio: tf.numpy_function(plugins.process, [audio, sr], tf.float32)) 

# Create and train a (dummy) ML model on this audio:
model = tf.keras.models.Sequential([tf.keras.layers.InputLayer(input_shape=(sr,)), tf.keras.layers.Dense(1)])
model.compile(loss="mse") 
model.fit(ds.map(lambda effected: (effected, 1)).batch(1), epochs=10)

For more examples, see:

Contributing

Contributions to pedalboard are welcomed! See CONTRIBUTING.md for details.

Citing

To cite pedalboard in academic work, use its entry on Zenodo: DOI 7817838

To cite via BibTeX:

@software{sobot_peter_2023_7817838,
  author       = {Sobot, Peter},
  title        = {Pedalboard},
  month        = jul,
  year         = 2021,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.7817838},
  url          = {https://doi.org/10.5281/zenodo.7817838}
}

License

pedalboard is Copyright 2021-2023 Spotify AB.

pedalboard is licensed under the GNU General Public License v3. pedalboard includes a number of libraries that are statically compiled, and which carry the following licenses:

VST is a registered trademark of Steinberg Media Technologies GmbH.

pedalboard's People

Contributors

ak391 avatar andrerics avatar astagi avatar brettcannon avatar carlostorreswav avatar christinesutcliffe avatar cweaver-logitech avatar damrsn avatar daviddiazguerra avatar drubinstein avatar emilio1234 avatar gloriajjl avatar hussainabdi avatar i avatar icorv avatar ijc8 avatar jamesmishra avatar johnxjp avatar mayankshrivastava17 avatar nashaad avatar paulm12 avatar psobot avatar rec avatar reshalfahsi avatar rm-star avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pedalboard's Issues

aarch64 Linux docker images can't install pedalboard from pip

Simple example running on an m1 macbook:

Dockerfile:

FROM python
RUN pip install pedalboard

Build attempt:

docker build .
[+] Building 2.6s (5/5) FINISHED
 => [internal] load build definition from Dockerfile                                                                                                                                                                                                                                                                                                                   0.0s
 => => transferring dockerfile: 81B                                                                                                                                                                                                                                                                                                                                    0.0s
 => [internal] load .dockerignore                                                                                                                                                                                                                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                                                                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/python:latest                                                                                                                                                                                                                                                                                                       0.7s
 => CACHED [1/2] FROM docker.io/library/python@sha256:a1fba384d3aa879533a271ab5d73965fbd3385648f38835dacd07e519f1c7c3f                                                                                                                                                                                                                                                 0.0s
 => ERROR [2/2] RUN pip install pedalboard                                                                                                                                                                                                                                                                                                                             1.8s
------
 > [2/2] RUN pip install pedalboard:
#5 1.233 ERROR: Could not find a version that satisfies the requirement pedalboard (from versions: none)
#5 1.233 ERROR: No matching distribution found for pedalboard
#5 1.718 WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
#5 1.718 You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
------
executor failed running [/bin/sh -c pip install pedalboard]: exit code: 1

This is happening because there's no aarch64 builds registered.

A temporary workaround is to use docker buildx like this.

docker buildx build --platform linux/amd64 .

A better solution is supporting aarch64 directly on linux. I've created a pull request here to do this.

Any plans to support plugin UIs?

Neat project, thanks for releasing it as open-source! I have two questions:

  1. Any plans to support plugin UIs?
    This may not be so relevant for the ML or Content Creation use cases described in your post, but for Creativity it may be useful to be able to open the plugin UI and interact with it directly - for example, to fiddle with parameters more quickly or perform tasks that can only be accomplished in the UI.
    (May also be relevant for addressing the caveat mentioned at the bottom of the demo notebook, re. DRM-locked plugins.)
  2. Did you happen to look into popsicle?
    There is some overlap with pedalboard in that it also wraps JUCE in Python, though it uses cppyy rather than pybind11. (And, of course, it exposes the JUCE API directly, rather than the nice Pedalboard interface for running effect chains.)

Thanks!

Load sub plugin from plugin pack (WaveShell-VST)

Hi.
Im using WaveShell. This is big plugin pack source. But i do not using on pedalboard.

if i call this ( vst = load_plugin("C:\Program Files\Common Files\VST3\WaveShell-VST3 9.6_x64.vst3") ) pedalboard return first plugin in WaveShell. How to select other plugins in WaveShell with load_plugin function parameters.

Application to other domains e.g. radar signal processing

Thanks @psobot and Spotify for this great library!

I have lately been thinking about some other application of this great work and would like to ask the community some suggestions.

Just a little bit of background:
I work as a data engineer for a project in climate science, where we have instruments such as Frequency-Modulated Continuous Wave Radars (FMCW) or Microwave Radiometers. They produce data in (or converted into) a popular format in climate science, called NetCDF. NetCDF are files composed by multidimensional arrays.
An increasingly popular way of analyzing this type of data is using the great library Xarray.

My question is: could we use pedalboard for e.g. finding new ways of reducing the noise from these type of data?

Thanks

Windows can's load AAC Audio File?

hello, I'm trying use io.AudioFile to load .aac audio file, but it doesn't work.
I want to ask did any solution can process on load.acc audio file?
Or should I change other platform e.g Ubuntu?
I would like to know, Thank you.

here is my problem
ValueError: Failed to open audio file: file "static/audio/sample1.aac" does not seem to be of a known or supported format. (If trying to open an MP3 file, ensure the filename ends with '.mp3'.)

Equalizer effet?

Hi,
I was wondering if you planned to implement an Equalizer effect in the library.

Thanks.

All the tests involving CHOWTapeModel.component fail

I have create a conda environment, installed pybind11 and tox via conda and run tox. But all the tests involving CHOWTapeModel.component fail.

Some more details (please tell me if you want more information):

  • macOS BigSur 11.4
  • Python 3.8.12

Any idea?

Can't install version higher than 0.3.8 on macos rosetta

I'm using python 3.8.12 packaged by conda-forge on an M1 and when I try to pip install pedalboard, the latest version I get is 0.3.8. If I try to manually download wheels and install those it tells me my platform is unsupported. The python version I'm using is in Rosetta.

OSError: sndfile library not found

I want to try pedalboard to apply audio plugins on some music I created. I am a python user (version: 3.8.5) and loads notebooks through a docker container on Windows 10.

Per the instructions, I tried to import librosa (0.8.1) to load .wav files and I got the error mentioned in the subject line.
On searching online, it seems like a windows issue. What other packages are reliable to load my music into a notebook?

Autopy won't install

I tried installing autopy severally but it won't install. I even went as far as downloading the latest version of pycharm but still it won't install. What will I do?

Writing Pedalboard plugins in Python

Thanks for a fascinating library!

Is there some way to put user-written pure Python modules, using numpy of course, into the signal chain?

It would be very desirable to be able to write plugins to Pedalboard as Python functions with an interface like this one of yours.

I certainly have a lot of code ready to go for this.

However, the ExternalPlugin class appears to only allow binary externals.

Demo notebook uses deprecated librosa functionality

Sweet package!

I'm just leaving a note here because I noticed that the demo notebook on colab uses the deprecated librosa.display.waveplot function, instead of its more recent replacement librosa.display.waveshow. For your use-case, the API is basically identical and it should be an easy switch.

This isn't a bug per se, but it will eventually stop working when we remove the old function, so I wanted to let you know now.

API documentation

Please publish API documentation based on docstrings, etc. and link from your README.md. Also, in particular the AudioFile object is lacking docstrings.

Thanks!

Function parameters.keys() of vst3 plugin MAutoPitch not returning all of existing values (probably because of '#' in it's names)

MAutoPitch = load_plugin('C:\Program Files\Common Files\VST3\MeldaProduction\Pitch Shift\MAutoPitch.vst3')
print(MAutoPitch.parameters.keys())

Result:
dict_keys(['depth_automatic_tuning', 'speed_automatic_tuning', 'detune_automatic_tuning', 'dry_wet_effects', 'width_effects', 'keep_formants_effects', 'formant_shiift_effects', 'threshold_detector', 'stabilization_detector', 'min_frequency_detector', 'max_frequency_detector', 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'previous_preeset_trigger', 'next_preset_trigger', 'base_frequency_automatic_tuning', 'bypass', 'program'])

And what is really offers plugin:
image

The most problem is Scale-block missing. I suppose it's because of '#' cymbol. parameters.keys() skips it or ignores or something like this. And even if it exists, next problem will be:

# MAutoPitch.c = False
# MAutoPitch.c# = True - THIS
# MAutoPitch.d = True
# MAutoPitch.d# = False - AND THIS

At the same time i can turn plugin state to number-style (with Cockos Reaper) and there are much more parameters including '#'-named:
image

Negative indices are not supported by Pedalboard, Chain, or Mix objects

When indexing a PluginContainer (i.e.: a Pedalboard, Chain, or Mix object), direct array-style access should work and return the plugin at that index. However, when using negative indices (as is common and valid in Python), PluginContainer.__getitem__ (or similar methods) raises an exception.

(Thanks to @nashaad for noticing this in #107.)

Bug on valid_values for vst3

To reproduce:
vst3 Melda => MBandPass.vst3

when loaded...
self.vst.frequency_high_pass_filter = ????

sometimes it considered as str, sometimes as float value,
so produce the exceptions! (type exeption, out of range exception)

can be see on this function str vs float
def get_raw_value_for(self, new_value) -> float:

the right is a float type not str

as for valid ranges,
the true valid ranges of the plugin for frequencies is [0,1], log10 normalized from [20, 20000] Hz
pedal board gives us two non valid ranges
1/ float 10-9955
2/ str with strange discrete range of values
can be seen on this function
self.valid_values

it would be nice to have the possibility to work directly with raw values without verifications to avoid exceptions and not useful checks

and to have more valid mechanism of parameters extraction from plugins

pan/volume, sends, groups, automatization

Is it possible to extent pedalboard to pan/volume, sends, groups/subgroups to be possible to create networks as in daw, and automatization of parameters?

Could you show on the current version of pedalboard the examples of implementation of sends, groups and automatization, please?

thanks!

dearVR MICRO plugin shows "Azimuth" parameter as "azimuth_๏ฟ‚๏พฐ"

Hi, I'd to know if it possible some help.

What is the problem with this code?

import soundfile as sf
from pedalboard import load_plugin

dearVR = load_plugin("python/dearVR MICRO.vst3")
dearVR.parameters["azimuth_๏ฟ‚๏พฐ"] = -50

audio, sample_rate = sf.read('C:/Users/neimog/OneDrive - design.ufjf.br/Documentos/REAPER Media/untitled.wav')

#
final_audio = dearVR.process(audio, sample_rate, output_channels=2)

## save audio 
#sf.write('C:/Users/neimog/OneDrive/Documentos/OM - Workspace/out-files/sound-with-dearVR.wav', final_audio, sample_rate)

Because I am having this error:

Traceback (most recent call last):
  File "c:\Users\neimog\OneDrive - design.ufjf.br\Documentos\OM - Workspace\OM-Libraries\OM-CKN\python\vst3-with-OM.py", line 10, in <module>
    final_audio = dearVR.process(audio, sample_rate, output_channels=2)
TypeError: process(): incompatible function arguments. The following argument types are supported:
    1. (self: pedalboard_native.Plugin, input_array: numpy.ndarray[numpy.float32], sample_rate: float, buffer_size: int = 8192) -> numpy.ndarray[numpy.float32]
    2. (self: pedalboard_native.Plugin, input_array: numpy.ndarray[numpy.float64], sample_rate: float, buffer_size: int = 8192) -> numpy.ndarray[numpy.float32]

Invoked with: <pedalboard.VST3Plugin "dearVR MICRO" at 00000281F9A23270>, array([[ 0.00000000e+00,  0.00000000e+00],
       [-1.87195837e-07, -1.87195837e-07],
       [-1.28382817e-06, -1.28382817e-06],
       ...,
       [ 0.00000000e+00,  0.00000000e+00],
       [ 0.00000000e+00,  0.00000000e+00],
       [ 0.00000000e+00,  0.00000000e+00]]), 44100; kwargs: output_channels=2

Sorry if this is an elementary mistake. I am starting to coding!

process to a fixed memory location

Is it possible to add the option to process to a fixed memory location? this would avoid allocation of memory every time

input_audio =sf.read(...)
output_audio = np.zeros(input_audio.shape)
board.process(input_audio, output_audio)

Waves plugins support

Thank you so much for this library

Wavesโ€™ plugins are organized in shell like 'WaveShell2-VST3 12.0.vst3' or 'WaveShell2-AU 12.0.component' which contains all plugins
Attempting to import an AU Component fails
While importing VST3 succeeds with the following warnings:

WaveShell2-VST3 12.0.vst3 import warnings:
objc[7909]: Class wvWavesV12_0_0_62_WVFileManager_GUI_Mac is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2f00) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb480). One of the two will be used. Which one is undefined.
objc[7909]: Class Test is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2f50) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb4d0). One of the two will be used. Which one is undefined.
objc[7909]: Class NotificationCenterDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2fa0) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb570). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesNSTextView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb26e0) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb5c0). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesNSImageView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2730) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb610). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesNSTextField is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2780) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb660). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesWindow is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb27d0) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb6b0). One of the two will be used. Which one is undefined.
objc[7909]: Class WavesSystemView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2820) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb700). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2848) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb728). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesMenu is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb28c0) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb7a0). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesMenuItemData is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb28e8) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb7c8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesTextDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2938) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb818). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesAboutDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb29b0) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb890). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesTextFormatter is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb29d8) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb8b8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesPresetPanel is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2a50) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb930). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesTreeView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2a78) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb958). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesTreePanel is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2ac8) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb9a8). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveHTMLWin is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b18) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb9f8). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKWebView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b90) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebba70). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKScriptMessageHandler is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2be0) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebbac0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveNSWindowDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c30) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebbb10). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKUIDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c80) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebbb60). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKNavigationDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2cd0) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebbbb0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKDownloadDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d20) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebbc00). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesTreeDataSource is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d70) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebbca0). One of the two will be used. Which one is undefined.
objc[7909]: Class WCCustomizedMenuDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d98) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebbcc8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WCCustomMenuItem is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2e38) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebbd68). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WCCustomMenuView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2dc0) and /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebbcf0). One of the two will be used. Which one is undefined.
objc[7909]: Class WavesMetalRenderer is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2668) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.6.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11c9edac8). One of the two will be used. Which one is undefined.
objc[7909]: Class WavesSystemView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2820) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.6.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11c9edc80). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveHTMLWin is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b18) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.6.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11c9edf78). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKWebView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b90) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.6.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11c9edfc8). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKScriptMessageHandler is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2be0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.6.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11c9ee040). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveNSWindowDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c30) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.6.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11c9ee090). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKUIDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c80) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.6.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11c9ee0e0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKNavigationDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2cd0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.6.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11c9ee130). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKDownloadDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d20) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.6.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11c9ee180). One of the two will be used. Which one is undefined.
objc[7909]: Class WCCustomizedMenuDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d98) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.6.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11c9ee1f8). One of the two will be used. Which one is undefined.
objc[7909]: Class Test is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2f50) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.6.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11c9ee3b0). One of the two will be used. Which one is undefined.
objc[7909]: Class WavesMetalRenderer is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2668) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03610). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesNSTextView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb26e0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03688). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesNSImageView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2730) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce036d8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesNSTextField is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2780) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03728). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesWindow is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb27d0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03778). One of the two will be used. Which one is undefined.
objc[7909]: Class WavesSystemView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2820) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce037c8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2848) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce037f0). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesMenu is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb28c0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03868). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesMenuItemData is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb28e8) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03890). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesTextDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2938) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce038e0). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesAboutDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb29b0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03958). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesTextFormatter is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb29d8) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03980). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesPresetPanel is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2a50) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce039f8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesTreeView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2a78) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03a20). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesTreePanel is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2ac8) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03a70). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveHTMLWin is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b18) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03ac0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKWebView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b90) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03b38). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKScriptMessageHandler is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2be0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03b88). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveNSWindowDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c30) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03bd8). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKUIDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c80) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03c28). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKNavigationDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2cd0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03c78). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKDownloadDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d20) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03cc8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WavesTreeDataSource is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d70) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03d18). One of the two will be used. Which one is undefined.
objc[7909]: Class WCCustomizedMenuDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d98) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03d40). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WCCustomMenuItem is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2e38) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03de0). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WCCustomMenuView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2dc0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03d68). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WCCocoaOGLTextDraw is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2e88) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03e30). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_0_0_62_WVFileManager_GUI_Mac is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2f00) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03ea8). One of the two will be used. Which one is undefined.
objc[7909]: Class Test is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2f50) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.0.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11ce03ef8). One of the two will be used. Which one is undefined.
objc[7909]: Class WavesMetalRenderer is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2668) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.5.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11d79c628). One of the two will be used. Which one is undefined.
objc[7909]: Class WavesSystemView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2820) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.5.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11d79c7e0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveHTMLWin is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b18) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.5.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11d79cad8). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKWebView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b90) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.5.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11d79cb50). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKScriptMessageHandler is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2be0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.5.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11d79cba0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveNSWindowDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c30) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.5.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11d79cbf0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKUIDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c80) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.5.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11d79cc40). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKNavigationDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2cd0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.5.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11d79cc90). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKDownloadDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d20) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.5.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11d79cce0). One of the two will be used. Which one is undefined.
objc[7909]: Class WCCustomizedMenuDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d98) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.5.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11d79cd58). One of the two will be used. Which one is undefined.
objc[7909]: Class Test is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2f50) and /Library/Audio/Plug-Ins/WPAPI/WaveShell1-WPAPI_2 12.5.bundle/Contents/MacOS/WaveShell1-WPAPI_2 (0x11d79cf10). One of the two will be used. Which one is undefined.
objc[7909]: Class WavesMetalRenderer is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2668) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9628). One of the two will be used. Which one is undefined.
objc[7909]: Class WavesSystemView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2820) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf97e0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveHTMLWin is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b18) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9ad8). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKWebView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b90) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9b50). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKScriptMessageHandler is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2be0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9ba0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveNSWindowDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c30) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9bf0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKUIDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c80) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9c40). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKNavigationDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2cd0) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9c90). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKDownloadDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d20) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9ce0). One of the two will be used. Which one is undefined.
objc[7909]: Class WCCustomizedMenuDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d98) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9d58). One of the two will be used. Which one is undefined.
objc[7909]: Class Test is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2f50) and /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9f10). One of the two will be used. Which one is undefined.
WaveShell2-VST3 12.0.vst3 import warnings:
objc[7909]: Class WavesMetalRenderer is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2668) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7480). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesNSTextView is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf96a0) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd74f8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesNSImageView is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf96f0) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7548). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesNSTextField is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9740) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7598). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesWindow is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9790) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd75e8). One of the two will be used. Which one is undefined.
objc[7909]: Class WavesSystemView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2820) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7638). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesView is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9808) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7660). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesMenu is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9880) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd76d8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesMenuItemData is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf98a8) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7700). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesTextDelegate is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf98f8) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7750). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesAboutDelegate is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9970) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd77c8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesTextFormatter is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9998) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd77f0). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesPresetPanel is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9a10) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7868). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesTreeView is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9a38) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7890). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesTreePanel is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9a88) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd78e0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveHTMLWin is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b18) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7930). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKWebView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b90) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd79a8). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKScriptMessageHandler is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2be0) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd79f8). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveNSWindowDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c30) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7a48). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKUIDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c80) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7a98). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKNavigationDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2cd0) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7ae8). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKDownloadDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d20) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7b38). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesTreeDataSource is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9d30) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7b88). One of the two will be used. Which one is undefined.
objc[7909]: Class WCCustomizedMenuDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d98) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7bb0). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WCCustomMenuItem is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9df8) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7c50). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WCCustomMenuView is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9d80) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7bd8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WCCocoaOGLTextDraw is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9e48) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7ca0). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WVFileManager_GUI_Mac is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9ec0) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7d18). One of the two will be used. Which one is undefined.
objc[7909]: Class Test is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2f50) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7d68). One of the two will be used. Which one is undefined.
objc[7909]: Class NotificationCenterDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2fa0) and /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.1.vst3/Contents/MacOS/WaveShell2-VST3 (0x139dd7db8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WVFileManager_GUI_Mac is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9ec0) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1a00). One of the two will be used. Which one is undefined.
objc[7909]: Class Test is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2f50) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1a50). One of the two will be used. Which one is undefined.
objc[7909]: Class WCNSTask is implemented in both /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebb4f8) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1a78). One of the two will be used. Which one is undefined.
objc[7909]: Class NotificationCenterDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2fa0) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1af0). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesNSTextView is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf96a0) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1b40). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesNSImageView is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf96f0) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1b90). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesNSTextField is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9740) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1be0). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesWindow is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9790) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1c30). One of the two will be used. Which one is undefined.
objc[7909]: Class WavesSystemView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2820) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1c80). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesView is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9808) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1ca8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesMenu is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9880) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1d20). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesMenuItemData is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf98a8) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1d48). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesTextDelegate is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf98f8) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1d98). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesAboutDelegate is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9970) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1e10). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesTextFormatter is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9998) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1e38). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesPresetPanel is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9a10) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1eb0). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesTreeView is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9a38) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1ed8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesTreePanel is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9a88) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1f28). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveHTMLWin is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b18) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1f78). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKWebView is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2b90) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc1ff0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKScriptMessageHandler is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2be0) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc2040). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveNSWindowDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c30) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc2090). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKUIDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2c80) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc20e0). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKNavigationDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2cd0) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc2130). One of the two will be used. Which one is undefined.
objc[7909]: Class WaveWKDownloadDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d20) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc2180). One of the two will be used. Which one is undefined.
objc[7909]: Class WCElectronRemoteView is implemented in both /Applications/Waves/Plug-Ins V12/WavesLib2.0_12.0.framework/Versions/A/WavesLib (0x11bebbc28) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc21a8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WavesTreeDataSource is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9d30) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc2220). One of the two will be used. Which one is undefined.
objc[7909]: Class WCCustomizedMenuDelegate is implemented in both /Library/Audio/Plug-Ins/VST3/WaveShell2-VST3 12.0.vst3/Contents/MacOS/WaveShell2-VST3 (0x118cb2d98) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc2248). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WCCustomMenuItem is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9df8) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc22e8). One of the two will be used. Which one is undefined.
objc[7909]: Class wvWavesV12_1_0_104_WCCustomMenuView is implemented in both /Library/Audio/Plug-Ins/WPAPI/WaveShell2-WPAPI_2 12.1.bundle/Contents/MacOS/WaveShell2-WPAPI_2 (0x11daf9d80) and /Applications/Waves/Plug-Ins V12/WavesLib2.41_12.1.framework/Versions/A/WavesLib (0x13acc2270). One of the two will be used. Which one is undefined.

After the warnings, the first plugin from the container list is loaded

Based on the discussions on the forum, the launch of Waves is possible:

https://forum.juce.com/t/hosting-waves-kplugcategshell-plugins/33819
https://forum.juce.com/t/open-waves-plugin/36864

Parallel and Feedback Plug-in Composition?

I'm a newcomer to pedalboard, so apologies if there is already some way to do this!

Is there any way of chaining plugins in a non sequential way? In particular, having an input pass by two plugins in parallel and then combining them again, or creating some sort of feedback loop with a defined time delay?

Currently, it seems as though only direct plugins or a sequence (list) of plugins are supported - this limits the potential for creating more interesting plugins.

TypeError: __init__(): incompatible constructor arguments. The following argument types are supported:
    1. pedalboard_native.utils.Chain(plugins: List[pedalboard_native.Plugin])
    2. pedalboard_native.utils.Chain()

[Request] Midi support

Is there any way to send MIDI signals to Pedalboard? Most DAWs can forward MIDI signals to a VST plugin, then I can use Python as a virtual MIDI device to communicate with it programmatically, but haven't found any equivalent option for Pedalboard, no parameters seem to be for accepting MIDI signals (that I know of), implementing that would be the cherry on the cake! I'm absolutely amazed at the sheer amount of possibilities that are now at my fingertips thanks to your repo.

can you use live audio

Can Pedalboard take audio from an input, process it , and send to an output?
I.E not with files

I can't see how to do this

[Investigation] Profiling for real-time audio [question]

After listening to the Spotify podcast on pedalboard with a a live audio demo and seeing the guitarboard project I was inspired to run a python memory profiler to find out if it is possible identify areas where garbage collection would run to clean up objects with an eye to removing or handling those. This would allow us to turn off the garbage collector and then running with live audio in theory would not suffer from blips.
Having tried this I found that memory use went up to 40MB and stayed there no matter what I tried.
That left me wondering

  1. Is this investigation necessary
  2. Is pedlaboard already in a state where running with live audio will work out of the box?

/edit appologies I seem to be unable to add labels

Guitar Rig 5 : Segfault

Hi,

Just wanted to let you know I'm getting a segfault for Guitar Rig 5.component
MacBook Pro (16-inch, 2019)
macOS 12.2.1 (21D62)

gr = pedalboard.load_plugin(gr_path) -> Segmentation fault: 11

I'm able to load and run other native instrument plugins fine. Might be worth adding to compatability

[Question] Using pedalboard to mix music played on commercial website

Hi Pedalboard,

Based on the license, I would like to clarify if i need to attribute this github when showcasing my audio on a commercial website.
I am not using any plugins, just the default capabilities of this library to mix audio files. The source code will not be distributed or sold.

Example Colab Notebook Breaks on PedalBoard Object

Hey there, the example colab notebook listed in the README breaks when you get to the PedalBoard object piece (Got unexpected keywork arg sampling_rate, then when you remove it it still breaks). I haven't looked at this repo much since its initial release, but I'm guessing its because of some new breaking changes to the API in some newer release.

What's the expected way to use the PedalBoard object these days?

Valhalla Supermassive - does not accept audio input?

Hello,
I've been working on a little proof-of-concept, and one of the plugins I would like to use in it is an external .vst3 plugin called Supermassive, by Valhalla: https://valhalladsp.com/shop/reverb/valhalla-supermassive/

However, when I try to load it using
plg_supermassive = load_plugin("./VST3s/ValhallaSupermassive.vst3"), Python spits out ValueError: Plugin 'ValhallaSupermassive' does not accept audio input. It may be an instrument plug-in and not an audio effect processor.

This plugin is most definitely an effects plugin and not a synth plugin. In addition, I have some other external plugins already working fine in my project.

This is the only plugin that I want to have in my proof-of-concept that doesn't work-- but without it, the outputted audio just doesn't sound as realistic. I've tried using Pedalboard's built-in reverb, as well as some other reverbs that do work, but I can't get them dialed in as well as I have Supermassive dialed in inside my DAW.

Any help or pointers would be appreciated... Am I missing something?

Extracting Background and Foreground Music

Hi all, I am working on identifying the music in the serial audios.
Now music can be present in different forms:
Only music(easy to identify), in the background, or in the foreground.
Is there any way using PedalBoard, or any other tool to extract background or foreground audio, so that it can boost the accuracy on identifying audio.
For clarification, I am attaching a sample audio where music can be heard slightly in the background.
Thanks for any help.

Can't change ChowCentaur params

from pedalboard import load_plugin, VST3Plugin
cent = load_plugin('/usr/lib/vst3/ChowCentaur.vst3')
cent([0.0, 0.1], sample_rate=44100)
cent.gain = 0.0
print(cent.gain) # -> 0.0
cent([0.0, 0.1], sample_rate=44100)
print(cent.gain) # -> 0.5

The audio is the same, always with the default parameters which it resets upon processing.
Am I doing something wrong here, or is this a bug, or just the plugin itself not being compatible?

Editing Audio files programmatically

Happy to help implement this but wanted to discuss the idea first.

The simple use case would be to chop off silence at the end or beginning of a file based on amplitude of audio.

For me the use case would be I have a long audio file (maybe field recording) with a bunch of sounds separated by silence and I want to turn that audio file into many small audio files to make a sample pack.

Thoughts? Does anyone know of something like this that already exists?

cant load vst

  File "H:/yakuz/fghtsfghjfgjsfgj.py", line 4, in <module>
    vst = load_plugin(r"H:\\Users\\Flashlight Bulbton\\Downloads\\Audacity-2.3.3\\Plug-Ins\\Kn0ck0ut.dll")
  File "C:\Users\EzoGaming\AppData\Local\Programs\Python\Python37\lib\site-packages\pedalboard\pedalboard.py", line 679, in load_plugin
    for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
ImportError: Failed to load plugin as VST3Plugin. Errors were:
	VST3Plugin: Unable to load plugin H:\\Users\\Flashlight Bulbton\\Downloads\\Audacity-2.3.3\\Plug-Ins\\Kn0ck0ut.dll: unsupported plugin format or load failure.```

Changing VST parameter throughout time?

Hi, the current code example shows how to set a specific parameter to a fixed number. Is it possible to change this throughout time (e.g. at beginning of song VST parameter is set to 0, at the end it's set to 1), or via some math function?

Is it possible to open a VST3/AU plugin editor?

Hello,
thanks for this great project, we're in the process of evaluating whether we can use this project to run some regression tests for our audio plugins.
I wonder if it is possible to open a plugin editor programmatically, in order to e.g. save a image of the GUI for comparing it against older versions.
From what i understand this is currently not possible, do you see an option to implement this?
We would probably be able to invest some time to help in adding the feature too.
All the best, Stephan

Resample doesn't resample

In the following code, "audio" and "processed" are the same length and have almost identical values (+/- 0.001). So writing the new file just produces a slowed-down version, not a downsampled version. Still fairly new to this library so let me know if I've set something up wrong!

import soundfile as sf
from pedalboard import *

# written like the examples
audio, fs = sf.read('48k_audio.wav')
new_fs = 16000
board = Pedalboard( [Resample(new_fs)] )
print(board)
processed = board(audio, new_fs)
sf.write('./resampled.wav', processed, new_fs)

# written like test_resample.py
plugin = Resample(new_fs)
processed = plugin.process(audio, new_fs)
sf.write('./resampled_2.wav', processed, new_fs)

python 3.8.8, pedalboard 0.4.1

Pedalboard objects are not pickleable or serializable

First of all, thanks a lot for the amazing library, it's a great help!

While toying around, I wanted to store Pedalboard instances by directly dumping them using pickle (https://docs.python.org/3/library/pickle.html).
This fails yielding a TypeError: cannot pickle 'Pedalboard' object.
After doing some research it might be due to the fact that Pedalboard.__dict__ is an empty dictionary and thus nothing can be pickled.
Besides, the __reduce__ method called by pickle for dumping yields the following error:

terminate called after throwing an instance of 'std::runtime_error'
what():  instance allocation failed: new instance has no pybind11-registered base types

I don't know if that is a relevant issue, I think it would be great to be able to save Pedalboard instances in some way. Maybe pickling it is not the correct way to do it and there exists another technique?

I'd love to help fixing that issue if it is considered relevant.

ccache issues with WSL2 with Ubuntu

Hi! I'm building from sources so I can try to contribute to this project, and all's gone well so far (Managed to build via the python script python3 setup.py build develop and tox tests pass) but when I try to build with ccache (using the rm -rf build && CC="ccache clang" CXX="ccache clang++" DEBUG=1 python3 setup.py build -j8 develop command provided), I keep bumping into

ccache: invalid option -- 't'
Usage:
    ccache [options]
    ccache compiler [compiler options]
    compiler [compiler options]          (via symbolic link)

Options:
    -c, --cleanup         delete old files and recalculate size counters
                          (normally not needed as this is done automatically)
    -C, --clear           clear the cache completely (except configuration)
    -F, --max-files=N     set maximum number of files in cache to N (use 0 for
                          no limit)
    -M, --max-size=SIZE   set maximum size of cache to SIZE (use 0 for no
                          limit); available suffixes: k, M, G, T (decimal) and
                          Ki, Mi, Gi, Ti (binary); default suffix: G
    -o, --set-config=K=V  set configuration key K to value V
    -p, --print-config    print current configuration options
    -s, --show-stats      show statistics summary
    -z, --zero-stats      zero statistics counters

    -h, --help            print this help text
    -V, --version         print version and copyright information

See also <https://ccache.samba.org>.
error: command 'ccache' failed with exit status 1

which according to an old issue I found is related to "distutils issue, environment variable CXX must not contain spaces".
I have clang and clang++ installed, but I also noticed that during the actual build the compilation process appears clang is being used instead of clang++? I also tried exporting the CC="ccache clang", CXX="ccache clang++", DEBUG=1 but got the same invalid option t output.

ccache clang -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time [...omitted]

OS is

Description:    Ubuntu 18.04.6 LTS
Release:        18.04
Codename:       bionic

running in Windows10 via WSL2. So I'm not sure if this is a problem with ccache or python or this project or what yet. I'm going to keep prodding but if this is an issue that someone else has already solved and has a quick explanation for it would be a great help!

Thanks! Great project, can't wait to start digging into it more

Anaglyph is not working! (?)

Hi again @psobot, this is one more problem with a specific plugin.

I am running this code:

import soundfile as sf
from pedalboard import load_plugin

plugin = load_plugin(r'C:\USERS\CHARL\ONEDRIVE_USP.BR\DOCUMENTS\PLUGINS\VST3\anaglyph-win-v0.9.4c\Anaglyph.vst3')

#all_parameters = list(plugin.parameters.keys())

plugin.azimuth = 90
audio, sample_rate = sf.read(r'C:\Users\charl\Documents\OM#\temp-files\om-ckn\Mus_Suja.wav-v-stereo.wav')
final_audio = plugin.process(audio, sample_rate)
sf.write(r'C:\Users\charl\OneDrive_usp.br\Documents\OpenMusic\out-files\Mus_Suja2.wav', final_audio, sample_rate)

Is it my mistake?

(I am writing this here because I think that it is not. Maybe it can be an issue).

Thank you, Merry Christmas!

http://anaglyph.dalembert.upmc.fr/

Rubber Band's GPLv2 license is incompatible with GPLv3

Hi! I'm a great fan of Pedalboard. I use at my company all the time.

Pedalboard is a derivative work of JUCE, Steinberg VST, and Rubber Band, which creates a licensing incompatibility between GPLv2 and GPLv3:

  • Rubber Band is licensed as GPLv2, but GPLv2 derivative works cannot be relicensed as GPLv3 (or any other license).
  • JUCE and Steinberg VST are dual-licensed as proprietary/GPLv3. But GPLv3 derivative works cannot be relicensed as GPLv2.

There are a few ways to fix this:

  • Convince the Rubber Band copyright holders to relicense as "GPL" without a version number or "GPLv2-or-later." Then, license Pedalboard as GPLv3.
  • Convince JUCE and Steinberg to relicense as proprietary/GPL, proprietary/GPLv2 or proprietary/GPLv2-or-later. Then, license Pedalboard as GPLv2.
  • Find a GPLv3-compatible replacement for Rubber Band. Then, license Pedalboard as GPLv3.

support for more than two channels

hi,
is it a way to add support for more than two channels. I am working with VSTs for ambisonic (at least 4 input/output channels, up to 64).

from pedalboard import Pedalboard, load_plugin
from pedalboard.io import AudioFile
import numpy as np

se = load_plugin("/.vst3/IEM/MultiEncoder.vst3") # vst3 plugins from https://plugins.iem.at/
se.ambisonics_order = '1st' # means 4 channels required for output
se.number_of_input_channels = 4  # as input pligin takes 4 audio tracks, and return 4 output channels - ambisonic actually

audio4 = np.zeros((4, 10000))
board = Pedalboard([se])
effected = board(audio4, 48100)

The error I got is:

RuntimeError: More than two channels received!

ps. plugin I use actually works fine with the reaper DAW (https://www.reaper.fm/) on my side.

Is there a way to open preset file?

I am using an external VST3 Plugin and MacOS.

Is there any way to load .fxp preset file or .patch file?
I want to use parameters stored in the preset file.

FabFilter plugins produce silent output

While applying board effects to audios most often some of the exported audios are just blank.
I am using FabFilter Plugins.
Specifically using ( 'FabFilter Pro-Q 3.vst3' , 'FabFilter Pro-Q 3.vst3' , 'FabFilter Pro-C 2.vst3', 'FabFilter Pro-R.vst3', 'FabFilter Pro-L 2.vst3' ) in the order they are written in.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.