Closed LucaMarconato closed 2 years ago
Hi @LucaMarconato! I do indeed more information - what errors do the tests fail with? Any useful stack traces or error messages?
Hi again @LucaMarconato - just an FYI that I'm going to close this in a week if it's no longer an issue, as I don't really have any information to go off of (and I've been unable to reproduce the issue).
Hi, sorry for the delay in answering, here is my full output from tox
, do you need any extra information, like the full conda environment info?
(39) macbook@MacBook-Pro-di-macbook pedalboard % tox
py recreate: /Users/macbook/programming/python/pedalboard/.tox/py
py installdeps: -r/Users/macbook/programming/python/pedalboard/dev-requirements.txt
py installed: absl-py==0.14.1,appdirs==1.4.4,appnope==0.1.2,astunparse==1.6.3,attrs==21.2.0,backcall==0.2.0,black==21.7b0,bumpversion==0.5.3,cachetools==4.2.4,certifi==2021.10.8,charset-normalizer==2.0.7,click==8.0.3,colorama==0.4.4,coverage==5.0.2,decorator==5.1.0,flake8==4.0.1,flatbuffers==1.12,gast==0.4.0,google-auth==1.35.0,google-auth-oauthlib==0.4.6,google-pasta==0.2.0,grpcio==1.34.1,h5py==3.1.0,idna==3.2,interrogate==1.5.0,ipdb==0.13.9,ipython==7.28.0,jedi==0.18.0,Jinja2==3.0.2,keras-nightly==2.5.0.dev2021032900,Keras-Preprocessing==1.1.2,livereload==2.6.3,Markdown==3.3.4,MarkupSafe==2.0.1,matplotlib-inline==0.1.3,mccabe==0.6.1,mkdocs==1.0.4,more-itertools==8.10.0,mypy-extensions==0.4.3,numpy==1.19.5,oauthlib==3.1.1,opt-einsum==3.3.0,packaging==21.0,parso==0.8.2,pathspec==0.9.0,-e git+git@github.com:spotify/pedalboard.git@96f282c68b6f1ac3e43a7f7c83523d9e957a8c37#egg=pedalboard,pexpect==4.8.0,pickleshare==0.7.5,pluggy==0.13.1,prompt-toolkit==3.0.20,protobuf==3.18.1,ptyprocess==0.7.0,py==1.10.0,pyasn1==0.4.8,pyasn1-modules==0.2.8,pybind11==2.8.0,pycodestyle==2.8.0,pyflakes==2.4.0,Pygments==2.10.0,pyparsing==2.4.7,pytest==5.3.2,pytest-cov==2.8.1,pytest-mock==3.3.1,PyYAML==5.4.1,regex==2021.10.8,requests==2.26.0,requests-oauthlib==1.3.0,rsa==4.7.2,six==1.15.0,sox==1.4.1,tabulate==0.8.9,tensorboard==2.6.0,tensorboard-data-server==0.6.1,tensorboard-plugin-wit==1.8.0,tensorflow==2.5.0,tensorflow-estimator==2.5.0,termcolor==1.1.0,toml==0.10.2,tomli==1.2.1,tornado==6.1,traitlets==5.1.0,typing-extensions==3.7.4.3,urllib3==1.26.7,wcwidth==0.2.5,Werkzeug==2.0.2,wrapt==1.12.1
py run-test-pre: PYTHONHASHSEED='256814189'
py run-test: commands[0] | coverage run -m pytest
========================================================= test session starts =========================================================
platform darwin -- Python 3.9.7, pytest-5.3.2, py-1.10.0, pluggy-0.13.1 -- /Users/macbook/programming/python/pedalboard/.tox/py/bin/python
cachedir: .tox/py/.pytest_cache
rootdir: /Users/macbook/programming/python/pedalboard, inifile: tox.ini, testpaths: tests
plugins: mock-3.3.1, cov-2.8.1
collected 265 items
tests/test_benchmark.py::test_pysox_performance_difference SKIPPED [ 0%]
tests/test_external_plugins.py::test_at_least_one_plugin_is_available_for_testing PASSED [ 0%]
tests/test_external_plugins.py::test_at_least_one_parameter[CHOWTapeModel.vst3] PASSED [ 1%]
tests/test_external_plugins.py::test_at_least_one_parameter[CHOWTapeModel.component] FAILED [ 1%]
tests/test_external_plugins.py::test_initial_parameters[CHOWTapeModel.vst3] PASSED [ 1%]
tests/test_external_plugins.py::test_initial_parameters[CHOWTapeModel.component] FAILED [ 2%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-input_gain] PASSED [ 2%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-output_gain] PASSED [ 3%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-dry_wet] PASSED [ 3%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-preset] PASSED [ 3%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-tone_bass] PASSED [ 4%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-tone_treble] PASSED [ 4%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-tape_drive] PASSED [ 4%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-tape_saturation] PASSED [ 5%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-tape_bias] PASSED [ 5%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-oversampling] PASSED [ 6%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-tape_speed] PASSED [ 6%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-tape_spacing] PASSED [ 6%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-tape_thickness] PASSED [ 7%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-playhead_gap] PASSED [ 7%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-azimuth] PASSED [ 7%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-flutter_rate] PASSED [ 8%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-flutter_depth] PASSED [ 8%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-wow_rate] PASSED [ 9%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-wow_depth] PASSED [ 9%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-wow_variance] PASSED [ 9%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-wow_drift] PASSED [ 10%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-degrade_depth] PASSED [ 10%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-degrade_amount] PASSED [ 10%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-degrade_variance] PASSED [ 11%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-degrade_envelope] PASSED [ 11%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-chew_depth] PASSED [ 12%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-chew_freq] PASSED [ 12%]
tests/test_external_plugins.py::test_initial_parameter_validation[CHOWTapeModel.vst3-chew_variance] PASSED [ 12%]
tests/test_external_plugins.py::test_initial_parameter_validation_missing[CHOWTapeModel.vst3] PASSED [ 13%]
tests/test_external_plugins.py::test_initial_parameter_validation_missing[CHOWTapeModel.component] FAILED [ 13%]
tests/test_external_plugins.py::test_import_error_on_missing_path[__init__] PASSED [ 13%]
tests/test_external_plugins.py::test_import_error_on_missing_path[VST3Plugin] PASSED [ 14%]
tests/test_external_plugins.py::test_import_error_on_missing_path[AudioUnitPlugin] PASSED [ 14%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count[1-48000-CHOWTapeModel.vst3] PASSED [ 15%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count[1-48000-CHOWTapeModel.component] FAILED [ 15%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count[2-48000-CHOWTapeModel.vst3] PASSED [ 15%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count[2-48000-CHOWTapeModel.component] FAILED [ 16%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count[1-44100-CHOWTapeModel.vst3] PASSED [ 16%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count[1-44100-CHOWTapeModel.component] FAILED [ 16%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count[2-44100-CHOWTapeModel.vst3] PASSED [ 17%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count[2-44100-CHOWTapeModel.component] FAILED [ 17%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count[1-22050-CHOWTapeModel.vst3] PASSED [ 18%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count[1-22050-CHOWTapeModel.component] FAILED [ 18%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count[2-22050-CHOWTapeModel.vst3] PASSED [ 18%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count[2-22050-CHOWTapeModel.component] FAILED [ 19%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count_without_reloading[CHOWTapeModel.vst3] PASSED [ 19%]
tests/test_external_plugins.py::test_plugin_accepts_variable_channel_count_without_reloading[CHOWTapeModel.component] FAILED [ 20%]
tests/test_external_plugins.py::test_all_parameters_are_accessible_as_properties[CHOWTapeModel.vst3] PASSED [ 20%]
tests/test_external_plugins.py::test_all_parameters_are_accessible_as_properties[CHOWTapeModel.component] FAILED [ 20%]
tests/test_external_plugins.py::test_parameters_cant_be_assigned_to_directly[CHOWTapeModel.vst3] PASSED [ 21%]
tests/test_external_plugins.py::test_parameters_cant_be_assigned_to_directly[CHOWTapeModel.component] FAILED [ 21%]
tests/test_external_plugins.py::test_all_parameters_have_accessors[CHOWTapeModel.vst3] PASSED [ 21%]
tests/test_external_plugins.py::test_all_parameters_have_accessors[CHOWTapeModel.component] FAILED [ 22%]
tests/test_external_plugins.py::test_attributes_proxy[CHOWTapeModel.vst3] PASSED [ 22%]
tests/test_external_plugins.py::test_attributes_proxy[CHOWTapeModel.component] FAILED [ 23%]
tests/test_external_plugins.py::test_bool_parameters[CHOWTapeModel.vst3-input_filters_on_off] PASSED [ 23%]
tests/test_external_plugins.py::test_bool_parameters[CHOWTapeModel.vst3-input_cut_makeup] PASSED [ 23%]
tests/test_external_plugins.py::test_bool_parameters[CHOWTapeModel.vst3-tone_on_off] PASSED [ 24%]
tests/test_external_plugins.py::test_bool_parameters[CHOWTapeModel.vst3-tape_on_off] PASSED [ 24%]
tests/test_external_plugins.py::test_bool_parameters[CHOWTapeModel.vst3-loss_on_off] PASSED [ 24%]
tests/test_external_plugins.py::test_bool_parameters[CHOWTapeModel.vst3-wow_flutter_on_off] PASSED [ 25%]
tests/test_external_plugins.py::test_bool_parameters[CHOWTapeModel.vst3-degrade_point1x] PASSED [ 25%]
tests/test_external_plugins.py::test_bool_parameters[CHOWTapeModel.vst3-degrade_on_off] PASSED [ 26%]
tests/test_external_plugins.py::test_bool_parameters[CHOWTapeModel.vst3-chew_on_off] PASSED [ 26%]
tests/test_external_plugins.py::test_bool_parameters[CHOWTapeModel.vst3-bypass] PASSED [ 26%]
tests/test_external_plugins.py::test_bool_parameter_valdation[CHOWTapeModel.vst3-input_filters_on_off] PASSED [ 27%]
tests/test_external_plugins.py::test_bool_parameter_valdation[CHOWTapeModel.vst3-input_cut_makeup] PASSED [ 27%]
tests/test_external_plugins.py::test_bool_parameter_valdation[CHOWTapeModel.vst3-tone_on_off] PASSED [ 27%]
tests/test_external_plugins.py::test_bool_parameter_valdation[CHOWTapeModel.vst3-tape_on_off] PASSED [ 28%]
tests/test_external_plugins.py::test_bool_parameter_valdation[CHOWTapeModel.vst3-loss_on_off] PASSED [ 28%]
tests/test_external_plugins.py::test_bool_parameter_valdation[CHOWTapeModel.vst3-wow_flutter_on_off] PASSED [ 29%]
tests/test_external_plugins.py::test_bool_parameter_valdation[CHOWTapeModel.vst3-degrade_point1x] PASSED [ 29%]
tests/test_external_plugins.py::test_bool_parameter_valdation[CHOWTapeModel.vst3-degrade_on_off] PASSED [ 29%]
tests/test_external_plugins.py::test_bool_parameter_valdation[CHOWTapeModel.vst3-chew_on_off] PASSED [ 30%]
tests/test_external_plugins.py::test_bool_parameter_valdation[CHOWTapeModel.vst3-bypass] PASSED [ 30%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-input_gain] PASSED [ 30%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-output_gain] PASSED [ 31%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-dry_wet] PASSED [ 31%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-preset] PASSED [ 32%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-tone_bass] PASSED [ 32%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-tone_treble] PASSED [ 32%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-tape_drive] PASSED [ 33%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-tape_saturation] PASSED [ 33%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-tape_bias] PASSED [ 33%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-oversampling] PASSED [ 34%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-tape_speed] PASSED [ 34%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-tape_spacing] PASSED [ 35%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-tape_thickness] PASSED [ 35%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-playhead_gap] PASSED [ 35%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-azimuth] PASSED [ 36%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-flutter_rate] PASSED [ 36%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-flutter_depth] PASSED [ 36%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-wow_rate] PASSED [ 37%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-wow_depth] PASSED [ 37%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-wow_variance] PASSED [ 38%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-wow_drift] PASSED [ 38%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-degrade_depth] PASSED [ 38%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-degrade_amount] PASSED [ 39%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-degrade_variance] PASSED [ 39%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-degrade_envelope] PASSED [ 40%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-chew_depth] PASSED [ 40%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-chew_freq] PASSED [ 40%]
tests/test_external_plugins.py::test_float_parameters[CHOWTapeModel.vst3-chew_variance] PASSED [ 41%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-input_gain] PASSED [ 41%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-output_gain] PASSED [ 41%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-dry_wet] PASSED [ 42%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-preset] PASSED [ 42%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-tone_bass] PASSED [ 43%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-tone_treble] PASSED [ 43%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-tape_drive] PASSED [ 43%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-tape_saturation] PASSED [ 44%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-tape_bias] PASSED [ 44%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-oversampling] PASSED [ 44%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-tape_speed] PASSED [ 45%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-tape_spacing] PASSED [ 45%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-tape_thickness] PASSED [ 46%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-playhead_gap] PASSED [ 46%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-azimuth] PASSED [ 46%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-flutter_rate] PASSED [ 47%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-flutter_depth] PASSED [ 47%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-wow_rate] PASSED [ 47%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-wow_depth] PASSED [ 48%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-wow_variance] PASSED [ 48%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-wow_drift] PASSED [ 49%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-degrade_depth] PASSED [ 49%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-degrade_amount] PASSED [ 49%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-degrade_variance] PASSED [ 50%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-degrade_envelope] PASSED [ 50%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-chew_depth] PASSED [ 50%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-chew_freq] PASSED [ 51%]
tests/test_external_plugins.py::test_float_parameter_valdation[CHOWTapeModel.vst3-chew_variance] PASSED [ 51%]
tests/test_external_plugins.py::test_str_parameters[CHOWTapeModel.vst3-input_low_cut] PASSED [ 52%]
tests/test_external_plugins.py::test_str_parameters[CHOWTapeModel.vst3-input_high_cut] PASSED [ 52%]
tests/test_external_plugins.py::test_str_parameters[CHOWTapeModel.vst3-tone_transition_frequency] PASSED [ 52%]
tests/test_external_plugins.py::test_str_parameters[CHOWTapeModel.vst3-tape_mode] PASSED [ 53%]
tests/test_external_plugins.py::test_str_parameters[CHOWTapeModel.vst3-mix_group] PASSED [ 53%]
tests/test_external_plugins.py::test_str_parameters[CHOWTapeModel.vst3-program] PASSED [ 53%]
tests/test_external_plugins.py::test_string_parameter_valdation[CHOWTapeModel.vst3-input_low_cut] PASSED [ 54%]
tests/test_external_plugins.py::test_string_parameter_valdation[CHOWTapeModel.vst3-input_high_cut] PASSED [ 54%]
tests/test_external_plugins.py::test_string_parameter_valdation[CHOWTapeModel.vst3-tone_transition_frequency] PASSED [ 55%]
tests/test_external_plugins.py::test_string_parameter_valdation[CHOWTapeModel.vst3-tape_mode] PASSED [ 55%]
tests/test_external_plugins.py::test_string_parameter_valdation[CHOWTapeModel.vst3-mix_group] PASSED [ 55%]
tests/test_external_plugins.py::test_string_parameter_valdation[CHOWTapeModel.vst3-program] PASSED [ 56%]
tests/test_external_plugins.py::test_plugin_parameters_persist_between_calls[CHOWTapeModel.vst3] PASSED [ 56%]
tests/test_external_plugins.py::test_plugin_parameters_persist_between_calls[CHOWTapeModel.component] FAILED [ 56%]
tests/test_external_plugins.py::test_plugin_state_cleared_between_invocations_by_default[CHOWTapeModel.vst3] PASSED [ 57%]
tests/test_external_plugins.py::test_plugin_state_cleared_between_invocations_by_default[CHOWTapeModel.component] FAILED [ 57%]
tests/test_external_plugins.py::test_plugin_state_not_cleared_between_invocations_if_reset_is_false[CHOWTapeModel.vst3] PASSED [ 58%]
tests/test_external_plugins.py::test_plugin_state_not_cleared_between_invocations_if_reset_is_false[CHOWTapeModel.component] FAILED [ 58%]
tests/test_external_plugins.py::test_explicit_reset[CHOWTapeModel.vst3] PASSED [ 58%]
tests/test_external_plugins.py::test_explicit_reset[CHOWTapeModel.component] FAILED [ 59%]
tests/test_external_plugins.py::test_explicit_reset_in_pedalboard[CHOWTapeModel.vst3] PASSED [ 59%]
tests/test_external_plugins.py::test_explicit_reset_in_pedalboard[CHOWTapeModel.component] FAILED [ 60%]
tests/test_external_plugins.py::test_wrapped_bool[True] PASSED [ 60%]
tests/test_external_plugins.py::test_wrapped_bool[False] PASSED [ 60%]
tests/test_external_plugins.py::test_wrapped_bool_requires_bool PASSED [ 61%]
tests/test_filters.py::test_filter_attenutation[22050-440-HighpassFilter] PASSED [ 61%]
tests/test_filters.py::test_filter_attenutation[22050-440-LowpassFilter] PASSED [ 61%]
tests/test_filters.py::test_filter_attenutation[22050-880-HighpassFilter] PASSED [ 62%]
tests/test_filters.py::test_filter_attenutation[22050-880-LowpassFilter] PASSED [ 62%]
tests/test_filters.py::test_filter_attenutation[44100-440-HighpassFilter] PASSED [ 63%]
tests/test_filters.py::test_filter_attenutation[44100-440-LowpassFilter] PASSED [ 63%]
tests/test_filters.py::test_filter_attenutation[44100-880-HighpassFilter] PASSED [ 63%]
tests/test_filters.py::test_filter_attenutation[44100-880-LowpassFilter] PASSED [ 64%]
tests/test_filters.py::test_filter_attenutation[48000-440-HighpassFilter] PASSED [ 64%]
tests/test_filters.py::test_filter_attenutation[48000-440-LowpassFilter] PASSED [ 64%]
tests/test_filters.py::test_filter_attenutation[48000-880-HighpassFilter] PASSED [ 65%]
tests/test_filters.py::test_filter_attenutation[48000-880-LowpassFilter] PASSED [ 65%]
tests/test_filters.py::test_lowpass_slope[22050-880-440] PASSED [ 66%]
tests/test_filters.py::test_lowpass_slope[22050-880-880] PASSED [ 66%]
tests/test_filters.py::test_lowpass_slope[22050-1760-440] PASSED [ 66%]
tests/test_filters.py::test_lowpass_slope[22050-1760-880] PASSED [ 67%]
tests/test_filters.py::test_lowpass_slope[44100-880-440] PASSED [ 67%]
tests/test_filters.py::test_lowpass_slope[44100-880-880] PASSED [ 67%]
tests/test_filters.py::test_lowpass_slope[44100-1760-440] PASSED [ 68%]
tests/test_filters.py::test_lowpass_slope[44100-1760-880] PASSED [ 68%]
tests/test_filters.py::test_lowpass_slope[48000-880-440] PASSED [ 69%]
tests/test_filters.py::test_lowpass_slope[48000-880-880] PASSED [ 69%]
tests/test_filters.py::test_lowpass_slope[48000-1760-440] PASSED [ 69%]
tests/test_filters.py::test_lowpass_slope[48000-1760-880] PASSED [ 70%]
tests/test_locking.py::test_multiple_threads_using_same_plugin_instances[2] PASSED [ 70%]
tests/test_locking.py::test_multiple_threads_using_same_plugin_instances[10] PASSED [ 70%]
tests/test_locking.py::test_multiple_threads_using_same_plugin_instances[20] PASSED [ 71%]
tests/test_memory_leaks.py::test_plugin_can_be_garbage_collected[CHOWTapeModel.vst3] PASSED [ 71%]
tests/test_memory_leaks.py::test_plugin_can_be_garbage_collected[CHOWTapeModel.component] FAILED [ 72%]
tests/test_native_module.py::test_no_transforms[shape0] PASSED [ 72%]
tests/test_native_module.py::test_no_transforms[shape1] PASSED [ 72%]
tests/test_native_module.py::test_no_transforms[shape2] PASSED [ 73%]
tests/test_native_module.py::test_no_transforms[shape3] PASSED [ 73%]
tests/test_native_module.py::test_no_transforms[shape4] PASSED [ 73%]
tests/test_native_module.py::test_noise_gain[shape0] PASSED [ 74%]
tests/test_native_module.py::test_noise_gain[shape1] PASSED [ 74%]
tests/test_native_module.py::test_noise_gain[shape2] PASSED [ 75%]
tests/test_native_module.py::test_noise_gain[shape3] PASSED [ 75%]
tests/test_native_module.py::test_noise_gain[shape4] PASSED [ 75%]
tests/test_native_module.py::test_throw_on_invalid_compressor_ratio PASSED [ 76%]
tests/test_native_module.py::test_convolution_file_exists PASSED [ 76%]
tests/test_native_module.py::test_convolution_works PASSED [ 76%]
tests/test_native_module.py::test_throw_on_inaccessible_convolution_file PASSED [ 77%]
tests/test_native_module.py::test_distortion[shape0--12] PASSED [ 77%]
tests/test_native_module.py::test_distortion[shape0--6] PASSED [ 78%]
tests/test_native_module.py::test_distortion[shape0-0] PASSED [ 78%]
tests/test_native_module.py::test_distortion[shape0-1.1] PASSED [ 78%]
tests/test_native_module.py::test_distortion[shape0-6] PASSED [ 79%]
tests/test_native_module.py::test_distortion[shape0-12] PASSED [ 79%]
tests/test_native_module.py::test_distortion[shape0-24] PASSED [ 80%]
tests/test_native_module.py::test_distortion[shape0-48] PASSED [ 80%]
tests/test_native_module.py::test_distortion[shape0-96] PASSED [ 80%]
tests/test_native_module.py::test_distortion[shape1--12] PASSED [ 81%]
tests/test_native_module.py::test_distortion[shape1--6] PASSED [ 81%]
tests/test_native_module.py::test_distortion[shape1-0] PASSED [ 81%]
tests/test_native_module.py::test_distortion[shape1-1.1] PASSED [ 82%]
tests/test_native_module.py::test_distortion[shape1-6] PASSED [ 82%]
tests/test_native_module.py::test_distortion[shape1-12] PASSED [ 83%]
tests/test_native_module.py::test_distortion[shape1-24] PASSED [ 83%]
tests/test_native_module.py::test_distortion[shape1-48] PASSED [ 83%]
tests/test_native_module.py::test_distortion[shape1-96] PASSED [ 84%]
tests/test_native_module.py::test_distortion[shape2--12] PASSED [ 84%]
tests/test_native_module.py::test_distortion[shape2--6] PASSED [ 84%]
tests/test_native_module.py::test_distortion[shape2-0] PASSED [ 85%]
tests/test_native_module.py::test_distortion[shape2-1.1] PASSED [ 85%]
tests/test_native_module.py::test_distortion[shape2-6] PASSED [ 86%]
tests/test_native_module.py::test_distortion[shape2-12] PASSED [ 86%]
tests/test_native_module.py::test_distortion[shape2-24] PASSED [ 86%]
tests/test_native_module.py::test_distortion[shape2-48] PASSED [ 87%]
tests/test_native_module.py::test_distortion[shape2-96] PASSED [ 87%]
tests/test_native_module.py::test_distortion[shape3--12] PASSED [ 87%]
tests/test_native_module.py::test_distortion[shape3--6] PASSED [ 88%]
tests/test_native_module.py::test_distortion[shape3-0] PASSED [ 88%]
tests/test_native_module.py::test_distortion[shape3-1.1] PASSED [ 89%]
tests/test_native_module.py::test_distortion[shape3-6] PASSED [ 89%]
tests/test_native_module.py::test_distortion[shape3-12] PASSED [ 89%]
tests/test_native_module.py::test_distortion[shape3-24] PASSED [ 90%]
tests/test_native_module.py::test_distortion[shape3-48] PASSED [ 90%]
tests/test_native_module.py::test_distortion[shape3-96] PASSED [ 90%]
tests/test_native_module.py::test_distortion[shape4--12] PASSED [ 91%]
tests/test_native_module.py::test_distortion[shape4--6] PASSED [ 91%]
tests/test_native_module.py::test_distortion[shape4-0] PASSED [ 92%]
tests/test_native_module.py::test_distortion[shape4-1.1] PASSED [ 92%]
tests/test_native_module.py::test_distortion[shape4-6] PASSED [ 92%]
tests/test_native_module.py::test_distortion[shape4-12] PASSED [ 93%]
tests/test_native_module.py::test_distortion[shape4-24] PASSED [ 93%]
tests/test_native_module.py::test_distortion[shape4-48] PASSED [ 93%]
tests/test_native_module.py::test_distortion[shape4-96] PASSED [ 94%]
tests/test_native_module.py::test_plugin_state_not_cleared_between_invocations[True] PASSED [ 94%]
tests/test_native_module.py::test_plugin_state_not_cleared_between_invocations[False] PASSED [ 95%]
tests/test_native_module.py::test_plugin_state_not_cleared_if_passed_smaller_buffer PASSED [ 95%]
tests/test_python_interface.py::test_no_transforms[shape0] PASSED [ 95%]
tests/test_python_interface.py::test_no_transforms[shape1] PASSED [ 96%]
tests/test_python_interface.py::test_no_transforms[shape2] PASSED [ 96%]
tests/test_python_interface.py::test_no_transforms[shape3] PASSED [ 96%]
tests/test_python_interface.py::test_no_transforms[shape4] PASSED [ 97%]
tests/test_python_interface.py::test_fail_on_invalid_plugin PASSED [ 97%]
tests/test_python_interface.py::test_fail_on_invalid_sample_rate PASSED [ 98%]
tests/test_python_interface.py::test_fail_on_invalid_buffer_size PASSED [ 98%]
tests/test_python_interface.py::test_repr PASSED [ 98%]
tests/test_python_interface.py::test_is_list_like PASSED [ 99%]
tests/test_python_interface.py::test_process_validates_sample_rate PASSED [ 99%]
tests/test_tensorflow.py::test_can_be_called_in_tensorflow_data_pipeline PASSED [100%]
============================================================== FAILURES ===============================================================
________________________________________ test_at_least_one_parameter[CHOWTapeModel.component] _________________________________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_at_least_one_parameter(plugin_filename: str):
"""
Many tests below are parametrized on the parameters of the plugin;
if our parameter parsing code fails, those tests won't fail as
there will just be no code to run. This works around that problem.
"""
> assert get_parameters(plugin_filename)
E AssertionError: assert {}
E + where {} = get_parameters('CHOWTapeModel.component')
tests/test_external_plugins.py:114: AssertionError
__________________________________________ test_initial_parameters[CHOWTapeModel.component] ___________________________________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_initial_parameters(plugin_filename: str):
parameters = {
k: v.min_value for k, v in get_parameters(plugin_filename).items() if v.type == float
}
# Reload the plugin, but set the initial parameters in the load call.
> plugin = load_test_plugin(plugin_filename, parameter_values=parameters)
tests/test_external_plugins.py:124:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',)
kwargs = {'parameter_values': {}}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
_________________________________ test_initial_parameter_validation_missing[CHOWTapeModel.component] __________________________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_initial_parameter_validation_missing(plugin_filename: str):
with pytest.raises(AttributeError):
> load_test_plugin(plugin_filename, parameter_values={"missing_parameter": 123})
tests/test_external_plugins.py:153:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',)
kwargs = {'parameter_values': {'missing_parameter': 123}}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
_____________________________ test_plugin_accepts_variable_channel_count[1-48000-CHOWTapeModel.component] _____________________________
plugin_filename = 'CHOWTapeModel.component', num_channels = 1, sample_rate = 48000
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
@pytest.mark.parametrize(
"num_channels,sample_rate",
[(1, 48000), (2, 48000), (1, 44100), (2, 44100), (1, 22050), (2, 22050)],
)
def test_plugin_accepts_variable_channel_count(
plugin_filename: str, num_channels: int, sample_rate: float
):
> plugin = load_test_plugin(plugin_filename)
tests/test_external_plugins.py:170:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
_____________________________ test_plugin_accepts_variable_channel_count[2-48000-CHOWTapeModel.component] _____________________________
plugin_filename = 'CHOWTapeModel.component', num_channels = 2, sample_rate = 48000
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
@pytest.mark.parametrize(
"num_channels,sample_rate",
[(1, 48000), (2, 48000), (1, 44100), (2, 44100), (1, 22050), (2, 22050)],
)
def test_plugin_accepts_variable_channel_count(
plugin_filename: str, num_channels: int, sample_rate: float
):
> plugin = load_test_plugin(plugin_filename)
tests/test_external_plugins.py:170:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
_____________________________ test_plugin_accepts_variable_channel_count[1-44100-CHOWTapeModel.component] _____________________________
plugin_filename = 'CHOWTapeModel.component', num_channels = 1, sample_rate = 44100
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
@pytest.mark.parametrize(
"num_channels,sample_rate",
[(1, 48000), (2, 48000), (1, 44100), (2, 44100), (1, 22050), (2, 22050)],
)
def test_plugin_accepts_variable_channel_count(
plugin_filename: str, num_channels: int, sample_rate: float
):
> plugin = load_test_plugin(plugin_filename)
tests/test_external_plugins.py:170:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
_____________________________ test_plugin_accepts_variable_channel_count[2-44100-CHOWTapeModel.component] _____________________________
plugin_filename = 'CHOWTapeModel.component', num_channels = 2, sample_rate = 44100
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
@pytest.mark.parametrize(
"num_channels,sample_rate",
[(1, 48000), (2, 48000), (1, 44100), (2, 44100), (1, 22050), (2, 22050)],
)
def test_plugin_accepts_variable_channel_count(
plugin_filename: str, num_channels: int, sample_rate: float
):
> plugin = load_test_plugin(plugin_filename)
tests/test_external_plugins.py:170:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
_____________________________ test_plugin_accepts_variable_channel_count[1-22050-CHOWTapeModel.component] _____________________________
plugin_filename = 'CHOWTapeModel.component', num_channels = 1, sample_rate = 22050
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
@pytest.mark.parametrize(
"num_channels,sample_rate",
[(1, 48000), (2, 48000), (1, 44100), (2, 44100), (1, 22050), (2, 22050)],
)
def test_plugin_accepts_variable_channel_count(
plugin_filename: str, num_channels: int, sample_rate: float
):
> plugin = load_test_plugin(plugin_filename)
tests/test_external_plugins.py:170:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
_____________________________ test_plugin_accepts_variable_channel_count[2-22050-CHOWTapeModel.component] _____________________________
plugin_filename = 'CHOWTapeModel.component', num_channels = 2, sample_rate = 22050
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
@pytest.mark.parametrize(
"num_channels,sample_rate",
[(1, 48000), (2, 48000), (1, 44100), (2, 44100), (1, 22050), (2, 22050)],
)
def test_plugin_accepts_variable_channel_count(
plugin_filename: str, num_channels: int, sample_rate: float
):
> plugin = load_test_plugin(plugin_filename)
tests/test_external_plugins.py:170:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
________________________ test_plugin_accepts_variable_channel_count_without_reloading[CHOWTapeModel.component] ________________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_plugin_accepts_variable_channel_count_without_reloading(plugin_filename: str):
> plugin = load_test_plugin(plugin_filename)
tests/test_external_plugins.py:182:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
______________________________ test_all_parameters_are_accessible_as_properties[CHOWTapeModel.component] ______________________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_all_parameters_are_accessible_as_properties(plugin_filename: str):
> plugin = load_test_plugin(plugin_filename)
tests/test_external_plugins.py:202:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
________________________________ test_parameters_cant_be_assigned_to_directly[CHOWTapeModel.component] ________________________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_parameters_cant_be_assigned_to_directly(plugin_filename: str):
> plugin = load_test_plugin(plugin_filename)
tests/test_external_plugins.py:210:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
_____________________________________ test_all_parameters_have_accessors[CHOWTapeModel.component] _____________________________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_all_parameters_have_accessors(plugin_filename: str):
> plugin = load_test_plugin(plugin_filename)
tests/test_external_plugins.py:220:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
___________________________________________ test_attributes_proxy[CHOWTapeModel.component] ____________________________________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_attributes_proxy(plugin_filename: str):
> plugin = load_test_plugin(plugin_filename)
tests/test_external_plugins.py:234:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
________________________________ test_plugin_parameters_persist_between_calls[CHOWTapeModel.component] ________________________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_plugin_parameters_persist_between_calls(plugin_filename: str):
> plugin = load_test_plugin(plugin_filename)
tests/test_external_plugins.py:383:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
__________________________ test_plugin_state_cleared_between_invocations_by_default[CHOWTapeModel.component] __________________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_plugin_state_cleared_between_invocations_by_default(plugin_filename: str):
> plugin = load_test_plugin(plugin_filename, disable_caching=True)
tests/test_external_plugins.py:427:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
____________________ test_plugin_state_not_cleared_between_invocations_if_reset_is_false[CHOWTapeModel.component] _____________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_plugin_state_not_cleared_between_invocations_if_reset_is_false(plugin_filename: str):
> plugin = load_test_plugin(plugin_filename, disable_caching=True)
tests/test_external_plugins.py:444:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
____________________________________________ test_explicit_reset[CHOWTapeModel.component] _____________________________________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_explicit_reset(plugin_filename: str):
> plugin = load_test_plugin(plugin_filename, disable_caching=True)
tests/test_external_plugins.py:459:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
_____________________________________ test_explicit_reset_in_pedalboard[CHOWTapeModel.component] ______________________________________
plugin_filename = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_filename", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_explicit_reset_in_pedalboard(plugin_filename: str):
sr = 44100
> board = pedalboard.Pedalboard([load_test_plugin(plugin_filename, disable_caching=True)], sr)
tests/test_external_plugins.py:476:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_external_plugins.py:67: in load_test_plugin
plugin = pedalboard.load_plugin(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
____________________________________ test_plugin_can_be_garbage_collected[CHOWTapeModel.component] ____________________________________
plugin_path = 'CHOWTapeModel.component'
@pytest.mark.parametrize("plugin_path", AVAILABLE_PLUGINS_IN_TEST_ENVIRONMENT)
def test_plugin_can_be_garbage_collected(plugin_path: str):
# Load a VST3 plugin from disk:
> plugin = pedalboard.load_plugin(
os.path.join(TEST_PLUGIN_BASE_PATH, platform.system(), plugin_path)
)
tests/test_memory_leaks.py:31:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('/Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component',), kwargs = {}
exceptions = [ImportError('Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.co...ogramming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.')]
plugin_class = <class 'pedalboard.pedalboard.AudioUnitPlugin'>, tried_plugins = 'VST3Plugin or AudioUnitPlugin'
def load_plugin(*args, **kwargs):
if not AVAILABLE_PLUGIN_CLASSES:
raise ImportError(
"Pedalboard found no supported external plugin types in this installation ({}).".format(
platform.system()
)
)
exceptions = []
for plugin_class in AVAILABLE_PLUGIN_CLASSES:
try:
return plugin_class(*args, **kwargs)
except ImportError as e:
exceptions.append(e)
except Exception:
raise
else:
tried_plugins = ", ".join([c.__name__ for c in AVAILABLE_PLUGIN_CLASSES])
# Good error messages are important, okay?
if len(AVAILABLE_PLUGIN_CLASSES) > 2:
tried_plugins = ", or ".join(tried_plugins.rsplit(", ", 1))
else:
tried_plugins = " or ".join(tried_plugins.rsplit(", ", 1))
> raise ImportError(
"Failed to load plugin as {}. Errors were:\n\t{}".format(
tried_plugins,
"\n\t".join(
[
"{}: {}".format(klass.__name__, exception)
for klass, exception in zip(AVAILABLE_PLUGIN_CLASSES, exceptions)
]
),
)
)
E ImportError: Failed to load plugin as VST3Plugin or AudioUnitPlugin. Errors were:
E VST3Plugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
E AudioUnitPlugin: Unable to load plugin /Users/macbook/programming/python/pedalboard/tests/plugins/Darwin/CHOWTapeModel.component: unsupported plugin format or load failure.
pedalboard/pedalboard.py:659: ImportError
========================================================== warnings summary ===========================================================
.tox/py/lib/python3.9/site-packages/_pytest/junitxml.py:436
/Users/macbook/programming/python/pedalboard/.tox/py/lib/python3.9/site-packages/_pytest/junitxml.py:436: PytestDeprecationWarning: The 'junit_family' default value will change to 'xunit2' in pytest 6.0.
Add 'junit_family=legacy' to your pytest.ini file to silence this warning and make your suite compatible.
_issue_warning_captured(deprecated.JUNIT_XML_DEFAULT_FAMILY, config.hook, 2)
pedalboard/pedalboard.py:29
/Users/macbook/programming/python/pedalboard/pedalboard/pedalboard.py:29: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
class Pedalboard(collections.MutableSequence):
.tox/py/lib/python3.9/site-packages/tensorflow/python/autograph/impl/api.py:22
/Users/macbook/programming/python/pedalboard/.tox/py/lib/python3.9/site-packages/tensorflow/python/autograph/impl/api.py:22: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
-- Docs: https://docs.pytest.org/en/latest/warnings.html
----------------------------- generated xml file: /Users/macbook/programming/python/pedalboard/junit.xml ------------------------------
---------- coverage: platform darwin, python 3.9.7-final-0 -----------
Name Stmts Miss Cover Missing
--------------------------------------------------------
pedalboard/__init__.py 5 0 100%
pedalboard/pedalboard.py 353 31 91% 44, 75, 91, 122, 136, 182, 233, 331, 358, 373, 383-386, 394-395, 479, 486, 490, 543, 545, 553, 556, 583, 611-613, 625-631, 639, 656
pedalboard/version.py 4 0 100%
--------------------------------------------------------
TOTAL 362 31 91%
Coverage XML written to file cobertura/coverage.xml
======================================= 20 failed, 244 passed, 1 skipped, 3 warnings in 58.60s ========================================
ERROR: InvocationError for command /Users/macbook/programming/python/pedalboard/.tox/py/bin/coverage run -m pytest (exited with code 1)
docs recreate: /Users/macbook/programming/python/pedalboard/.tox/docs
docs installdeps: -rdocs-requirements.txt
docs installed: attrs==21.2.0,click==8.0.3,colorama==0.4.4,interrogate==1.5.0,Jinja2==3.0.2,livereload==2.6.3,Markdown==3.3.4,MarkupSafe==2.0.1,mkdocs==1.0.4,py==1.10.0,PyYAML==5.4.1,six==1.16.0,tabulate==0.8.9,toml==0.10.2,tornado==6.1
docs run-test-pre: PYTHONHASHSEED='256814189'
check-formatting recreate: /Users/macbook/programming/python/pedalboard/.tox/check-formatting
check-formatting installdeps: black
check-formatting installed: black==21.9b0,click==8.0.3,mypy-extensions==0.4.3,pathspec==0.9.0,platformdirs==2.4.0,regex==2021.10.8,tomli==1.2.1,typing-extensions==3.10.0.2
check-formatting run-test-pre: PYTHONHASHSEED='256814189'
lint recreate: /Users/macbook/programming/python/pedalboard/.tox/lint
lint installdeps: flake8
lint installed: flake8==4.0.1,mccabe==0.6.1,pycodestyle==2.8.0,pyflakes==2.4.0
lint run-test-pre: PYTHONHASHSEED='256814189'
lint run-test: commands[0] | flake8
_______________________________________________________________ summary _______________________________________________________________
ERROR: py: commands failed
docs: commands succeeded
check-formatting: commands succeeded
lint: commands succeeded
(39) macbook@MacBook-Pro-di-macbook pedalboard %
Thanks @LucaMarconato! A couple more things to try:
CHOWTapeModel.component
plugin in the repo is compiled for x86, so I'm not entirely sure what would happen if you tried to load it on an M1 Mac.CHOWTapeModel.component
into ~/Library/Audio/Plug-Ins/Components/
:
auvaltool -al
list the plugin?auvaltool -v aufx Jdox Chow
(to run validation on the plugin) complete successfully?Hi again @psobot! I ran into the same issue as @LucaMarconato and thought I could help answer these questions. I am running on a M1.
Does auvaltool -al
 list the plugin?
Yes, it is listed as aufx Jdox Chow - chowdsp: CHOWTapeModel (file:///Library/Audio/Plug-Ins/Components/CHOWTapeModel.component/)
Does auvaltool -v aufx Jdox Chow
 (to run validation on the plugin) complete successfully?
Yes it does. It returns AU VALIDATION SUCCEEDED
.
If you have a plug-in host installed, can you see CHOWTapeModel in the list of available plug-ins?
I can see the plugin and use it as well!
After adding CHOWTapeModel.component
to ~/Library/Audio/Plug-Ins/Components/
, all these component test cases pass. Not sure why, but I've left it there for now.
FYI for anyone facing this issue, I had the same problem on a non-M1 MacBook Pro (2016 13-inch MBP) and it was resolved the same way as above. Adding CHOWTapeModel.component
to ~/Library/Audio/Plug-Ins/Components/
.
Thanks @HussainAbdi and @LucaMarconato! I'm adding a change to fix these tests and raise a more descriptive ImportError
if the plugin fails to load. It seems that on M1, or in certain unknown configurations, plugins are required to be installed to ~/Library/Audio/Plug-Ins/Components
or they'll fail to load.
I have create a conda environment, installed
pybind11
andtox
viaconda
and runtox
. But all the tests involvingCHOWTapeModel.component
fail.Some more details (please tell me if you want more information):
Any idea?