[package] name = "nih_plug" version = "0.0.0" edition = "2021" authors = ["Robbert van der Helm "] license = "ISC" keywords = ["audio", "plugin", "vst", "vst3"] description = "A simple but modern API-agnostic audio plugin framework" repository = "https://github.com/robbert-vdh/nih-plug" [workspace] members = [ "nih_plug_derive", "nih_plug_egui", "nih_plug_iced", "nih_plug_vizia", "nih_plug_xtask", "cargo_nih_plug", "xtask", "plugins/examples/gain", "plugins/examples/gain_gui_egui", "plugins/examples/gain_gui_iced", "plugins/examples/gain_gui_vizia", "plugins/examples/midi_inverter", "plugins/examples/sine", "plugins/examples/stft", "plugins/crisp", "plugins/crossover", "plugins/diopser", "plugins/loudness_war_winner", "plugins/puberty_simulator", "plugins/safety_limiter", ] [features] default = ["vst3"] # Enabling this feature will cause the plugin to terminate when allocations # occur in the processing function while compiling in debug mode. Keep in mind # that most panic handlers will also allocate, so temporarily disabling this # feature may be necessary when debugging panics in DSP code. assert_process_allocs = ["dep:assert_no_alloc"] # Enables an export target for standalone binaries through the # `nih_export_standalone()` function. Disabled by default, as this requires # building additional dependencies for audio and MIDI handling. standalone = ["dep:anyhow", "dep:baseview", "dep:clap", "dep:jack"] # 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 # wrapper you might otherwise still include a couple (unused) symbols from the # `vst3-sys` create. vst3 = ["dep:vst3-sys"] # Add adapters to the Buffer object for reading the channel data to and from # `std::simd` vectors. Requires a nightly compiler. simd = [] # Only relevant when generating docs, adds the `doc_auto_cfg` nightly feature docs = [] [dependencies] nih_plug_derive = { path = "nih_plug_derive" } atomic_float = "0.1" atomic_refcell = "0.1" bitflags = "1.3" cfg-if = "1.0" clap-sys = "0.1" crossbeam = "0.8" lazy_static = "1.4" log = { version = "0.4", features = ["std", "release_max_level_info"] } log-panics = { version = "2.0", features = ["with-backtrace"] } midi-consts = "0.1" parking_lot = "0.12" raw-window-handle = "0.4" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" simplelog = "0.12" widestring = "1.0.0-beta.1" # Used for the `assert_process_allocs` feature assert_no_alloc = { version = "1.1", optional = true } # Used for the `standalone` feature anyhow = { version = "1.0", optional = true } # NOTE: OpenGL support is not needed here, but rust-analyzer gets confused when # some crates do use it and others don't baseview = { git = "https://github.com/robbert-vdh/baseview.git", branch = "feature/resize", features = ["opengl"], optional = true } # All the claps! clap = { version = "3.2", features = ["derive"], optional = true } jack = { version = "0.10.0", optional = true } # Used for the `vst3` feature vst3-sys = { git = "https://github.com/robbert-vdh/vst3-sys.git", branch = "fix/note-off-event", optional = true } [target.'cfg(all(target_family = "unix", not(target_os = "macos")))'.dependencies] libc = "0.2.124" [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" [target.'cfg(target_os = "windows")'.dependencies.windows] version = "0.32" features = [ "Win32_Foundation", "Win32_Graphics_Gdi", "Win32_UI_WindowsAndMessaging", "Win32_System_LibraryLoader", "Win32_System_Performance", ] [profile.release] lto = "thin" strip = "symbols" [profile.profiling] inherits = "release" debug = true strip = "none"