drawbar 0.7.1

Your Nord's sounds, in a window: browse, edit and send programs, samples and pianos, in the browser or on the desktop
Documentation
[package]
name = "drawbar"
description = "Your Nord's sounds, in a window: browse, edit and send programs, samples and pianos, in the browser or on the desktop"
edition.workspace = true
rust-version = "1.88"
license.workspace = true
repository.workspace = true
version = "0.7.1"

[lib]
# `cdylib` is what wasm-bindgen consumes; `rlib` is what the native binary links.
crate-type = ["cdylib", "rlib"]
name = "drawbar"

[[bin]]
name = "drawbar"
path = "src/main.rs"

[dependencies]
base64 = "0.22"
# glow (WebGL2 / OpenGL) rather than the default wgpu backend: it is the smaller
# wasm module, and the browsers that have WebUSB all have WebGL2.
eframe = { version = "0.32", default-features = false, features = [
  "default_fonts",
  "glow",
  "persistence",
  "wayland",
  "x11",
] }
egui_extras = { version = "0.32", default-features = false, features = ["svg"] }
nord-format = { path = "../nord-format", version = "0.6.0", features = [
  "bundle",
] }
rfd = "0.15"

[dev-dependencies]
# `synthetic` lays out a piano library from a description: the piano editor's tests
# need a `.npno` and nothing else in the workspace builds one without a template.
nord-format = { path = "../nord-format", version = "0.6.0", features = [
  "synthetic",
] }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
nord-usb = { path = "../nord-usb", version = "0.6.0", features = [
  "blocking",
  "nusb",
] }
# `playback` alone: the decoders are for files, and what this feeds it is raw samples.
rodio = { version = "0.22", default-features = false, features = ["playback"] }

[target.'cfg(target_arch = "wasm32")'.dependencies]
js-sys = "0.3"
# Exact: `wasm-bindgen-cli` must match this version, and the Nix build takes the CLI
# nixpkgs ships, so this pin follows nixpkgs (see overlay.nix).
wasm-bindgen = "=0.2.121"
wasm-bindgen-futures = "0.4"
web-sys = { version = "0.3", features = [
  "AudioBuffer",
  "AudioBufferSourceNode",
  "AudioContext",
  "AudioDestinationNode",
  "AudioNode",
  "AudioParam",
  "AudioScheduledSourceNode",
  "BaseAudioContext",
  "Blob",
  "BlobPropertyBag",
  "Document",
  "Element",
  "Headers",
  "HtmlAnchorElement",
  "HtmlCanvasElement",
  "Navigator",
  "Request",
  "RequestInit",
  "Response",
  "Storage",
  "Url",
  "Usb",
  "UsbConnectionEvent",
  "UsbDevice",
  "UsbDeviceFilter",
  "UsbDeviceRequestOptions",
  "Window",
] }
nord-usb = { path = "../nord-usb", version = "0.6.0", default-features = false, features = [
  "web",
] }