2022-01-26 22:52:57 +11:00
|
|
|
[package]
|
|
|
|
name = "nih_plug"
|
2022-02-06 05:40:42 +11:00
|
|
|
version = "0.0.0"
|
2022-01-26 22:52:57 +11:00
|
|
|
edition = "2021"
|
2022-10-19 21:49:19 +11:00
|
|
|
rust-version = "1.63"
|
2022-01-26 22:52:57 +11:00
|
|
|
authors = ["Robbert van der Helm <mail@robbertvanderhelm.nl>"]
|
2022-02-13 02:03:28 +11:00
|
|
|
license = "ISC"
|
2022-01-26 22:52:57 +11:00
|
|
|
|
2022-02-06 05:40:42 +11:00
|
|
|
keywords = ["audio", "plugin", "vst", "vst3"]
|
|
|
|
description = "A simple but modern API-agnostic audio plugin framework"
|
2022-03-08 06:03:05 +11:00
|
|
|
repository = "https://github.com/robbert-vdh/nih-plug"
|
2022-02-06 05:40:42 +11:00
|
|
|
|
2022-01-25 22:23:19 +11:00
|
|
|
[workspace]
|
2022-02-02 05:39:45 +11:00
|
|
|
members = [
|
|
|
|
"nih_plug_derive",
|
2022-02-06 10:22:33 +11:00
|
|
|
"nih_plug_egui",
|
2022-03-13 08:10:14 +11:00
|
|
|
"nih_plug_iced",
|
2022-03-18 09:14:45 +11:00
|
|
|
"nih_plug_vizia",
|
2022-03-02 20:01:48 +11:00
|
|
|
"nih_plug_xtask",
|
2022-03-02 20:27:02 +11:00
|
|
|
|
|
|
|
"cargo_nih_plug",
|
2022-02-02 05:39:45 +11:00
|
|
|
"xtask",
|
|
|
|
|
2022-02-04 02:57:10 +11:00
|
|
|
"plugins/examples/gain",
|
2022-04-15 07:53:14 +10:00
|
|
|
"plugins/examples/gain_gui_egui",
|
|
|
|
"plugins/examples/gain_gui_iced",
|
|
|
|
"plugins/examples/gain_gui_vizia",
|
2022-04-18 10:33:05 +10:00
|
|
|
"plugins/examples/midi_inverter",
|
2022-07-06 21:55:53 +10:00
|
|
|
"plugins/examples/poly_mod_synth",
|
2022-02-04 02:57:10 +11:00
|
|
|
"plugins/examples/sine",
|
2022-03-06 12:07:53 +11:00
|
|
|
"plugins/examples/stft",
|
2022-02-13 02:27:57 +11:00
|
|
|
|
2022-11-10 01:47:26 +11:00
|
|
|
"plugins/buffr_glitch",
|
2022-03-09 03:41:23 +11:00
|
|
|
"plugins/crisp",
|
2022-05-29 21:42:45 +10:00
|
|
|
"plugins/crossover",
|
2022-02-13 02:27:57 +11:00
|
|
|
"plugins/diopser",
|
2022-04-27 23:37:17 +10:00
|
|
|
"plugins/loudness_war_winner",
|
2022-03-08 05:51:38 +11:00
|
|
|
"plugins/puberty_simulator",
|
2022-05-25 07:57:11 +10:00
|
|
|
"plugins/safety_limiter",
|
2022-07-14 06:27:56 +10:00
|
|
|
"plugins/spectral_compressor",
|
2022-02-02 05:39:45 +11:00
|
|
|
]
|
2022-01-26 22:52:57 +11:00
|
|
|
|
2022-02-16 04:13:47 +11:00
|
|
|
[features]
|
2022-04-16 00:14:42 +10:00
|
|
|
default = ["vst3"]
|
2022-04-23 01:00:59 +10:00
|
|
|
|
2022-02-16 04:13:47 +11:00
|
|
|
# Enabling this feature will cause the plugin to terminate when allocations
|
2022-07-08 10:18:24 +10:00
|
|
|
# occur in the processing function during debug builds. Keep in mind that panics
|
|
|
|
# may also allocate if they use string formatting, so temporarily disabling this
|
2022-04-24 23:40:44 +10:00
|
|
|
# feature may be necessary when debugging panics in DSP code.
|
2022-04-16 00:14:42 +10:00
|
|
|
assert_process_allocs = ["dep:assert_no_alloc"]
|
2022-04-23 01:00:59 +10:00
|
|
|
# Enables an export target for standalone binaries through the
|
2022-07-08 10:18:24 +10:00
|
|
|
# `nih_export_standalone()` function. Disabled by default as this requires
|
2022-04-23 01:00:59 +10:00
|
|
|
# building additional dependencies for audio and MIDI handling.
|
2022-08-22 01:55:09 +10:00
|
|
|
standalone = ["dep:baseview", "dep:clap", "dep:cpal", "dep:jack", "dep:rtrb"]
|
2022-04-23 01:00:59 +10:00
|
|
|
# Enables the `nih_export_vst3!()` macro. Enabled by default. This feature
|
|
|
|
# exists mostly for GPL-compliance reasons, since even if you don't use the VST3
|
2022-04-16 00:14:42 +10:00
|
|
|
# wrapper you might otherwise still include a couple (unused) symbols from the
|
2022-07-08 10:18:24 +10:00
|
|
|
# `vst3-sys` crate.
|
2022-04-16 00:14:42 +10:00
|
|
|
vst3 = ["dep:vst3-sys"]
|
2022-03-02 07:39:53 +11:00
|
|
|
# Add adapters to the Buffer object for reading the channel data to and from
|
|
|
|
# `std::simd` vectors. Requires a nightly compiler.
|
|
|
|
simd = []
|
2022-08-18 21:55:31 +10:00
|
|
|
# Compress plugin state using the Zstandard algorithm. Loading uncompressed
|
|
|
|
# state is still supported so existing state will still load after enabling this
|
|
|
|
# feature for a plugin, but it can not be disabled again without losing state
|
|
|
|
# compatibility.
|
|
|
|
zstd = ["dep:zstd"]
|
|
|
|
|
2022-04-12 00:41:09 +10:00
|
|
|
# Only relevant when generating docs, adds the `doc_auto_cfg` nightly feature
|
|
|
|
docs = []
|
2022-02-16 04:13:47 +11:00
|
|
|
|
2022-01-26 22:52:57 +11:00
|
|
|
[dependencies]
|
|
|
|
nih_plug_derive = { path = "nih_plug_derive" }
|
2022-02-01 05:40:52 +11:00
|
|
|
|
2022-08-18 21:55:31 +10:00
|
|
|
anyhow = "1.0"
|
2023-01-07 03:48:13 +11:00
|
|
|
anymap = "0.12.1"
|
2022-02-06 13:38:59 +11:00
|
|
|
atomic_float = "0.1"
|
2022-03-02 05:52:56 +11:00
|
|
|
atomic_refcell = "0.1"
|
2022-06-27 07:13:35 +10:00
|
|
|
backtrace = "0.3.65"
|
2022-03-23 23:02:54 +11:00
|
|
|
bitflags = "1.3"
|
2022-02-04 01:58:00 +11:00
|
|
|
cfg-if = "1.0"
|
2022-07-08 10:19:43 +10:00
|
|
|
clap-sys = "0.3"
|
2022-02-05 22:46:26 +11:00
|
|
|
crossbeam = "0.8"
|
2022-01-27 10:19:50 +11:00
|
|
|
lazy_static = "1.4"
|
2022-04-24 23:03:27 +10:00
|
|
|
log = { version = "0.4", features = ["std", "release_max_level_info"] }
|
2022-04-08 07:28:31 +10:00
|
|
|
midi-consts = "0.1"
|
2022-02-01 03:16:27 +11:00
|
|
|
parking_lot = "0.12"
|
2022-02-08 07:58:59 +11:00
|
|
|
raw-window-handle = "0.4"
|
2022-01-30 00:20:14 +11:00
|
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
|
|
serde_json = "1.0"
|
2022-04-24 23:03:27 +10:00
|
|
|
simplelog = "0.12"
|
2022-01-27 07:02:52 +11:00
|
|
|
widestring = "1.0.0-beta.1"
|
2022-02-04 01:58:00 +11:00
|
|
|
|
2022-09-08 04:02:35 +10:00
|
|
|
# Used for the `assert_process_allocs` feature. This fork includes support for
|
|
|
|
# the log crate and printing backtraces on allocation failure so you can trace
|
|
|
|
# the allocation back to a place in the code.
|
|
|
|
# TODO: The `log` feature causes would pipe these messages through our logger
|
|
|
|
# which is great in theory, but if the allocation failure happens as part
|
|
|
|
# of the logger then this will cause the program to hang indefinitely
|
|
|
|
# because simplelog gates the log function behind a mutex. At some point
|
|
|
|
# we should implement our own logger and enable this feature. That way we
|
|
|
|
# can also use CLAP's logging extension.
|
|
|
|
assert_no_alloc = { git = "https://github.com/robbert-vdh/rust-assert-no-alloc.git", branch = "nih-plug", features = ["backtrace"], optional = true }
|
2022-02-04 01:58:00 +11:00
|
|
|
|
2022-04-23 03:22:23 +10:00
|
|
|
# Used for the `standalone` feature
|
2022-04-27 21:13:49 +10:00
|
|
|
# NOTE: OpenGL support is not needed here, but rust-analyzer gets confused when
|
|
|
|
# some crates do use it and others don't
|
2023-01-13 04:49:55 +11:00
|
|
|
baseview = { git = "https://github.com/RustAudio/baseview.git", rev = "7001c2521fa1a439a01967cb881b411cd75d9ee0", features = ["opengl"], optional = true }
|
2022-06-14 23:11:03 +10:00
|
|
|
# All the claps!
|
|
|
|
clap = { version = "3.2", features = ["derive"], optional = true }
|
2022-10-24 07:32:47 +11:00
|
|
|
cpal = { version = "0.14.1", optional = true }
|
2022-11-03 13:20:04 +11:00
|
|
|
# Current upstream JACK always links to libjack, even when using the default
|
|
|
|
# dynamic loading feature
|
|
|
|
jack = { git = "https://github.com/robbert-vdh/rust-jack.git", tag = "tmp-handle-library-failure", optional = true }
|
2022-08-22 01:55:09 +10:00
|
|
|
rtrb = { version = "0.2.2", optional = true }
|
2022-04-23 03:22:23 +10:00
|
|
|
|
|
|
|
# Used for the `vst3` feature
|
2022-10-21 01:31:13 +11:00
|
|
|
vst3-sys = { git = "https://github.com/robbert-vdh/vst3-sys.git", branch = "fix/drop-box-from-raw", optional = true }
|
2022-04-23 03:22:23 +10:00
|
|
|
|
2022-08-18 21:55:31 +10:00
|
|
|
# Used for the `zstd` feature
|
|
|
|
zstd = { version = "0.11.2", optional = true }
|
|
|
|
|
2022-09-05 02:20:42 +10:00
|
|
|
[dev-dependencies]
|
|
|
|
approx = "0.5.1"
|
|
|
|
|
2022-04-21 03:36:04 +10:00
|
|
|
[target.'cfg(all(target_family = "unix", not(target_os = "macos")))'.dependencies]
|
|
|
|
libc = "0.2.124"
|
|
|
|
|
2023-01-07 01:14:57 +11:00
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
|
|
objc = "0.2.7"
|
|
|
|
core-foundation = "0.9.3"
|
|
|
|
|
2022-04-24 23:03:27 +10:00
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
|
|
# STDIO isn't reliable on Windows, so when hosting plugins in a DAW it may be
|
|
|
|
# useful to log using `OutputDebugString()` instead
|
|
|
|
win_dbg_logger = "0.1"
|
|
|
|
|
2022-04-21 03:36:04 +10:00
|
|
|
[target.'cfg(target_os = "windows")'.dependencies.windows]
|
2022-02-07 10:33:41 +11:00
|
|
|
version = "0.32"
|
|
|
|
features = [
|
|
|
|
"Win32_Foundation",
|
|
|
|
"Win32_Graphics_Gdi",
|
|
|
|
"Win32_UI_WindowsAndMessaging",
|
|
|
|
"Win32_System_LibraryLoader",
|
|
|
|
"Win32_System_Performance",
|
|
|
|
]
|
2022-03-09 11:08:50 +11:00
|
|
|
|
|
|
|
[profile.release]
|
2022-03-09 11:16:48 +11:00
|
|
|
lto = "thin"
|
2022-03-09 11:08:50 +11:00
|
|
|
strip = "symbols"
|
2022-05-23 04:17:15 +10:00
|
|
|
|
|
|
|
[profile.profiling]
|
|
|
|
inherits = "release"
|
|
|
|
debug = true
|
2022-05-23 04:28:25 +10:00
|
|
|
strip = "none"
|