content: [package]
  name = "kord"
  version = "0.8.0"
  edition = "2021"
  authors = ["Aaron Roney <twitchax@gmail.com>"]
  license = "MIT"
  description = "A tool to easily explore music theory principles."
  readme = "README.md"
  homepage = "https://github.com/twitchax/kord"
  repository = "https://github.com/twitchax/kord"
  keywords = ["cli", "music", "theory", "jazz", "chords"]
  categories = ["command-line-utilities"]
  exclude = ["samples/**/*", "noise/**/*", "../kord-web/"]
  
  [lib]
  name = "klib"
  path = "src/lib.rs"
  crate-type = ["cdylib", "rlib"]
  
  [[bin]]
  name = "kord"
  path = "src/bin.rs"
  required-features = ["cli"]
  
  [package.metadata.wasm-pack.profile.release]
  wasm-opt = false
  
  [lints.rust]
  unexpected_cfgs = { level = "warn", check-cfg = [
      'cfg(wasm)',
      'cfg(host_family_unix)',
      'cfg(host_family_windows )',
  ] }
  
  [features]
  default = ["cli", "analyze", "audio", "ml_infer"]
  
  cli = ["clap", "futures"]
  
  audio = ["rodio"]
  
  analyze = ["analyze_mic", "analyze_file"]
  analyze_base = ["rustfft"]
  analyze_mic = ["analyze_base", "rodio", "cpal", "futures-timer"]
  analyze_file = ["analyze_base", "rodio", "symphonia", "parse_duration0"]
  
  analyze_file_mp3 = ["symphonia/mp3"]
  analyze_file_aac = ["symphonia/aac", "symphonia/isomp4"]
  analyze_file_alac = ["symphonia/alac", "symphonia/isomp4"]
  
  ml = ["ml_train", "ml_infer"]
  ml_base = ["serde", "byteorder", "bincode"]
  
  ml_train = [
      "ml_base",
      "rand",
      "rayon",
      "burn/autodiff",
      "burn/autotune",
      "burn/train",
      "burn/std",
      "burn/tui",
      "burn/metrics",
  ]
  
  ml_tch = ["ml_train", "burn/tch"]
  ml_candle = ["ml_train", "burn/candle"]
  ml_ndarray = ["ml_train", "burn/ndarray"]
  ml_wgpu = ["ml_train", "burn/wgpu"]
  ml_cuda = ["ml_train", "burn/cuda"]
  
  # This flag is for wgpu and cuda fusion.
  ml_fusion = ["ml_train", "burn/fusion"]
  
  ml_candle_cuda = ["ml_candle", "burn/candle-cuda"]
  ml_candle_metal = ["ml_candle", "burn/candle-metal"]
  
  ml_remote = ["burn/remote"]
  ml_server = ["burn/server"]
  
  ml_infer = ["ml_base", "burn", "burn/ndarray"]
  
  wasm = [
      "rodio/wasm-bindgen",
      "wasm-bindgen",
      "wasm-bindgen-futures",
      "js-sys",
      "console_error_panic_hook",
      "wee_alloc",
      "gloo-timers",
  ]
  
  wasi = []
  
  plot = ["plotters"]
  
  [dependencies]
  proc-macro2 = "1"
  paste = "1"
  anyhow = "1"
  pest = "2"
  pest_derive = "2"
  
  symphonia = { version = "0.5.2", optional = true }
  parse_duration0 = { version = "3", optional = true }
  
  # cli
  clap = { version = "4", features = ["derive"], optional = true }
  futures = { version = "0.3", optional = true }
  
  # audio
  rodio = { version = "0.21", default-features = false, features = [
      "symphonia",
      "playback",
  ], optional = true }
  
  # analyze_base
  rustfft = { version = "6", optional = true }
  
  # analyze
  futures-timer = { version = "3", optional = true }
  cpal = { version = "0.16", optional = true }
  
  # ml
  serde = { version = "1", features = ["derive"], optional = true }
  rand = { version = "0.9", optional = true }
  byteorder = { version = "1", optional = true }
  bincode = { version = "2", default-features = false, optional = true, features = [
      "alloc",
      "serde",
  ] }
  rayon = { version = "1", optional = true }
  burn = { version = "0.18", default-features = false, optional = true }
  
  # plot
  plotters = { version = "0.3", optional = true }
  
  # wasm
  wasm-bindgen = { version = "0.2", optional = true }
  wasm-bindgen-futures = { version = "0.4", optional = true }
  js-sys = { version = "0.3", optional = true }
  console_error_panic_hook = { version = "0.1", optional = true }
  wee_alloc = { version = "0.4", optional = true }
  gloo-timers = { version = "0.3", optional = true, features = ["futures"] }
  
  [dev-dependencies]
  pretty_assertions = "1"
  