From 3b8b160a07d5625fcd3301681103c8ad37546942 Mon Sep 17 00:00:00 2001 From: Polochon-street Date: Fri, 14 May 2021 16:35:08 +0200 Subject: [PATCH] =?UTF-8?q?Just=20unpacked=20here=20=F0=9F=93=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/rust.yml | 34 + Cargo.lock | 1860 ++++++++++++++++++++++ Cargo.toml | 44 + README.md | 32 + data/capacity_fix.ogg | Bin 0 -> 49059 bytes data/chroma-filter.npy | Bin 0 -> 98528 bytes data/chroma-interval.npy | Bin 0 -> 10784 bytes data/chroma-stft-normalized-expected.npy | Bin 0 -> 16064 bytes data/chroma.npy | Bin 0 -> 10784 bytes data/convolve.npy | Bin 0 -> 16128 bytes data/convolve_odd.npy | Bin 0 -> 16128 bytes data/downsampled.npy | Bin 0 -> 896 bytes data/estimate-tuning-pitch.npy | Bin 0 -> 3216 bytes data/f_analysis.npy | Bin 0 -> 21440 bytes data/f_analysis_normalized.npy | Bin 0 -> 21440 bytes data/filtered_features.npy | Bin 0 -> 896 bytes data/interval-feature-matrix.npy | Bin 0 -> 9008 bytes data/librosa-decoded.npy | Bin 0 -> 516240 bytes data/librosa-stft.npy | Bin 0 -> 1037428 bytes data/no_channel.wav | Bin 0 -> 463976 bytes data/piano.flac | Bin 0 -> 110889 bytes data/picture.jpg | Bin 0 -> 845563 bytes data/picture.png | Bin 0 -> 845563 bytes data/pitch-tuning.npy | Bin 0 -> 3216 bytes data/s16_mono_22_5kHz.flac | Bin 0 -> 221444 bytes data/s16_stereo_22_5kHz.flac | Bin 0 -> 207501 bytes data/s32_stereo_44_1_kHz.flac | Bin 0 -> 1153953 bytes data/s32_stereo_44_1_kHz.mp3 | Bin 0 -> 177981 bytes data/sorted_features.npy | Bin 0 -> 896 bytes data/spectrum-chroma-mags.npy | Bin 0 -> 6304 bytes data/spectrum-chroma-pitches.npy | Bin 0 -> 6304 bytes data/spectrum-chroma.npy | Bin 0 -> 1361328 bytes data/tone_11080Hz.flac | Bin 0 -> 205191 bytes data/white_noise.flac | Bin 0 -> 2889352 bytes examples/analyse.rs | 17 + examples/distance.rs | 26 + src/chroma.rs | 638 ++++++++ src/lib.rs | 131 ++ src/library.rs | 389 +++++ src/misc.rs | 108 ++ src/song.rs | 606 +++++++ src/temporal.rs | 158 ++ src/timbral.rs | 463 ++++++ src/utils.rs | 821 ++++++++++ 44 files changed, 5327 insertions(+) create mode 100644 .github/workflows/rust.yml create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 README.md create mode 100644 data/capacity_fix.ogg create mode 100644 data/chroma-filter.npy create mode 100644 data/chroma-interval.npy create mode 100644 data/chroma-stft-normalized-expected.npy create mode 100644 data/chroma.npy create mode 100644 data/convolve.npy create mode 100644 data/convolve_odd.npy create mode 100644 data/downsampled.npy create mode 100644 data/estimate-tuning-pitch.npy create mode 100644 data/f_analysis.npy create mode 100644 data/f_analysis_normalized.npy create mode 100644 data/filtered_features.npy create mode 100644 data/interval-feature-matrix.npy create mode 100644 data/librosa-decoded.npy create mode 100644 data/librosa-stft.npy create mode 100644 data/no_channel.wav create mode 100644 data/piano.flac create mode 100644 data/picture.jpg create mode 100644 data/picture.png create mode 100644 data/pitch-tuning.npy create mode 100644 data/s16_mono_22_5kHz.flac create mode 100644 data/s16_stereo_22_5kHz.flac create mode 100644 data/s32_stereo_44_1_kHz.flac create mode 100644 data/s32_stereo_44_1_kHz.mp3 create mode 100644 data/sorted_features.npy create mode 100644 data/spectrum-chroma-mags.npy create mode 100644 data/spectrum-chroma-pitches.npy create mode 100644 data/spectrum-chroma.npy create mode 100644 data/tone_11080Hz.flac create mode 100644 data/white_noise.flac create mode 100644 examples/analyse.rs create mode 100644 examples/distance.rs create mode 100644 src/chroma.rs create mode 100644 src/lib.rs create mode 100644 src/library.rs create mode 100644 src/misc.rs create mode 100644 src/song.rs create mode 100644 src/temporal.rs create mode 100644 src/timbral.rs create mode 100644 src/utils.rs diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..6809f24 --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,34 @@ +name: Rust + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + toolchain: nightly-2021-04-01 + override: false + - name: Packages + run: sudo apt-get install build-essential yasm libavutil-dev libavcodec-dev libavformat-dev libavfilter-dev libavfilter-dev libavdevice-dev libswresample-dev libfftw3-dev ffmpeg + - name: Build + run: cargo build --verbose + - name: Run tests + run: cargo test --verbose + - name: Run example tests + run: cargo test --verbose --examples + - name: Build benches + run: cargo +nightly-2021-04-01 bench --verbose --features=bench --no-run + - name: Build examples + run: cargo build --examples --verbose diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..b5d9c49 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1860 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "ahash" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" + +[[package]] +name = "aho-corasick" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" +dependencies = [ + "memchr", +] + +[[package]] +name = "ansi_term" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "aubio-lib" +version = "0.1.3" +source = "git+https://github.com/Polochon-street/aubio-rs?branch=aubio-tweaks#46d3b7e70f35e5f4c3b0e5c53b96dc5a0489bdce" +dependencies = [ + "aubio-sys 0.1.3 (git+https://github.com/Polochon-street/aubio-rs?branch=aubio-tweaks)", + "fetch_unroll", + "which", +] + +[[package]] +name = "aubio-rs" +version = "0.1.3" +source = "git+https://github.com/Polochon-street/aubio-rs#81757678e3a89716a490dbb5f3d69c7f53183306" +dependencies = [ + "aubio-sys 0.1.3 (git+https://github.com/Polochon-street/aubio-rs)", +] + +[[package]] +name = "aubio-sys" +version = "0.1.3" +source = "git+https://github.com/Polochon-street/aubio-rs?branch=aubio-tweaks#46d3b7e70f35e5f4c3b0e5c53b96dc5a0489bdce" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "aubio-sys" +version = "0.1.3" +source = "git+https://github.com/Polochon-street/aubio-rs#81757678e3a89716a490dbb5f3d69c7f53183306" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "autocfg" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" + +[[package]] +name = "base-x" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "bindgen" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66c0bb6167449588ff70803f4127f0684f9063097eca5016f37eb52b92c2cf36" +dependencies = [ + "bitflags", + "cexpr", + "cfg-if 0.1.10", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", +] + +[[package]] +name = "bitflags" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" + +[[package]] +name = "bliss-rs" +version = "0.1.0" +dependencies = [ + "anyhow", + "aubio-lib", + "aubio-rs", + "clap", + "crossbeam", + "dirs", + "env_logger", + "ffmpeg-next", + "lazy_static", + "log", + "mpd", + "ndarray", + "ndarray-npy", + "ndarray-stats", + "noisy_float", + "num_cpus", + "rayon", + "ripemd160", + "rusqlite", + "rustfft", + "tempdir", + "thiserror", +] + +[[package]] +name = "block-buffer" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +dependencies = [ + "block-padding", + "byte-tools", + "byteorder", + "generic-array 0.12.4", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array 0.14.4", +] + +[[package]] +name = "block-padding" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +dependencies = [ + "byte-tools", +] + +[[package]] +name = "bufstream" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8" + +[[package]] +name = "bumpalo" +version = "3.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe" + +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "cc" +version = "1.0.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" + +[[package]] +name = "cexpr" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chunked_transfer" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e" + +[[package]] +name = "clang-sys" +version = "0.29.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "2.33.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "const_fn" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "402da840495de3f976eaefc3485b7f5eb5b0bf9761f9a47be27fe975b3b8c2ec" + +[[package]] +name = "cookie" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951" +dependencies = [ + "percent-encoding", + "time 0.2.26", + "version_check", +] + +[[package]] +name = "cookie_store" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3818dfca4b0cb5211a659bbcbb94225b7127407b2b135e650d717bfb78ab10d3" +dependencies = [ + "cookie", + "idna", + "log", + "publicsuffix", + "serde", + "serde_json", + "time 0.2.26", + "url", +] + +[[package]] +name = "crc32fast" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crossbeam" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd01a6eb3daaafa260f6fc94c3a6c36390abc2080e38e3e34ced87393fb77d80" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", + "lazy_static", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f6cb3c7f5b8e51bc3ebb73a2327ad4abdbd119dc13223f14f961d2f38486756" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49" +dependencies = [ + "autocfg", + "cfg-if 1.0.0", + "lazy_static", +] + +[[package]] +name = "digest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +dependencies = [ + "generic-array 0.12.4", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array 0.14.4", +] + +[[package]] +name = "dirs" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "discard" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" + +[[package]] +name = "either" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" + +[[package]] +name = "env_logger" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "fake-simd" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fallible-streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" + +[[package]] +name = "fetch_unroll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8d44807d562d137f063cbfe209da1c3f9f2fa8375e11166ef495daab7b847f9" +dependencies = [ + "libflate", + "tar", + "ureq", +] + +[[package]] +name = "ffmpeg-next" +version = "4.4.0-dev" +source = "git+https://github.com/Polochon-street/rust-ffmpeg?branch=stop-failing-unimplemented-arms#fe5ed5e0d3a86ca292e2e2b9bb00e6b8ac7f3185" +dependencies = [ + "bitflags", + "ffmpeg-sys-next", + "libc", +] + +[[package]] +name = "ffmpeg-sys-next" +version = "4.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fde8cbf91a1b044b86d9e9e944c33806a68f5e34e4281033594ceaab47a3746" +dependencies = [ + "bindgen", + "cc", + "libc", + "num_cpus", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "filetime" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "winapi", +] + +[[package]] +name = "flate2" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0" +dependencies = [ + "cfg-if 1.0.0", + "crc32fast", + "libc", + "miniz_oxide", +] + +[[package]] +name = "form_urlencoded" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + +[[package]] +name = "generic-array" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +dependencies = [ + "typenum", +] + +[[package]] +name = "generic-array" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi", +] + +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + +[[package]] +name = "hashbrown" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashlink" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d99cf782f0dc4372d26846bec3de7804ceb5df083c2d4462c0b8d2330e894fa8" +dependencies = [ + "hashbrown", +] + +[[package]] +name = "hermit-abi" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" +dependencies = [ + "libc", +] + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "itertools" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" + +[[package]] +name = "js-sys" +version = "0.3.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" + +[[package]] +name = "libflate" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d87eae36b3f680f7f01645121b782798b56ef33c53f83d1c66ba3a22b60bfe3" +dependencies = [ + "adler32", + "crc32fast", + "libflate_lz77", +] + +[[package]] +name = "libflate_lz77" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39a734c0493409afcd49deee13c006a04e3586b9761a03543c6272c9c51f2f5a" +dependencies = [ + "rle-decode-fast", +] + +[[package]] +name = "libloading" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" +dependencies = [ + "cc", + "winapi", +] + +[[package]] +name = "libsqlite3-sys" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19cb1effde5f834799ac5e5ef0e40d45027cd74f271b1de786ba8abb30e2164d" +dependencies = [ + "pkg-config", + "vcpkg", +] + +[[package]] +name = "log" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "matches" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" + +[[package]] +name = "matrixmultiply" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a8a15b776d9dfaecd44b03c5828c2199cddff5247215858aac14624f8d6b741" +dependencies = [ + "rawpointer", +] + +[[package]] +name = "memchr" +version = "2.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" + +[[package]] +name = "memoffset" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" +dependencies = [ + "adler", + "autocfg", +] + +[[package]] +name = "mpd" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57a20784da57fa01bf7910a5da686d9f39ff37feaa774856b71f050e4331bf82" +dependencies = [ + "bufstream", + "rustc-serialize", + "time 0.1.43", +] + +[[package]] +name = "ndarray" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc1372704f14bb132a49a6701c2238970a359ee0829fed481b522a63bf25456a" +dependencies = [ + "matrixmultiply", + "num-complex 0.4.0", + "num-integer", + "num-traits", + "rawpointer", + "rayon", +] + +[[package]] +name = "ndarray-npy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35a3dd44155949fd34abacc49ceca5d639a4f65ffd5d461b20b71a5a64981143" +dependencies = [ + "byteorder", + "ndarray", + "num-traits", + "py_literal", + "zip", +] + +[[package]] +name = "ndarray-stats" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22877ad014bafa2f7dcfa5d556b0c7a52b0546cc98061a1ebef6d1834957b069" +dependencies = [ + "indexmap", + "itertools", + "ndarray", + "noisy_float", + "num-integer", + "num-traits", + "rand 0.8.3", +] + +[[package]] +name = "noisy_float" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978fe6e6ebc0bf53de533cd456ca2d9de13de13856eda1518a285d7705a213af" +dependencies = [ + "num-traits", +] + +[[package]] +name = "nom" +version = "5.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" +dependencies = [ + "memchr", + "version_check", +] + +[[package]] +name = "num-bigint" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e0d047c1062aa51e256408c560894e5251f08925980e53cf1aa5bd00eec6512" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "once_cell" +version = "1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" + +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pest" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +dependencies = [ + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pest_meta" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" +dependencies = [ + "maplit", + "pest", + "sha-1", +] + +[[package]] +name = "pkg-config" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" + +[[package]] +name = "ppv-lite86" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" + +[[package]] +name = "primal-check" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01419cee72c1a1ca944554e23d83e483e1bccf378753344e881de28b5487511d" +dependencies = [ + "num-integer", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "proc-macro2" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "publicsuffix" +version = "1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b4ce31ff0a27d93c8de1849cf58162283752f065a90d508f1105fa6c9a213f" +dependencies = [ + "idna", + "url", +] + +[[package]] +name = "py_literal" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "102df7a3d46db9d3891f178dcc826dc270a6746277a9ae6436f8d29fd490a8e1" +dependencies = [ + "num-bigint", + "num-complex 0.4.0", + "num-traits", + "pest", + "pest_derive", +] + +[[package]] +name = "qstring" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "quote" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi", +] + +[[package]] +name = "rand" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" +dependencies = [ + "libc", + "rand_chacha", + "rand_core 0.6.2", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.2", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rand_core" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_hc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" +dependencies = [ + "rand_core 0.6.2", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rayon" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "lazy_static", + "num_cpus", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "redox_syscall" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8270314b5ccceb518e7e578952f0b72b88222d02e8f77f5ecf7abbb673539041" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" +dependencies = [ + "getrandom", + "redox_syscall", +] + +[[package]] +name = "regex" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "ripemd160" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eca4ecc81b7f313189bf73ce724400a07da2a6dac19588b03c8bd76a2dcc251" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac" + +[[package]] +name = "rusqlite" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc783b7ddae608338003bac1fa00b6786a75a9675fbd8e87243ecfdea3f6ed2" +dependencies = [ + "bitflags", + "fallible-iterator", + "fallible-streaming-iterator", + "hashlink", + "libsqlite3-sys", + "memchr", + "smallvec", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-serialize" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver", +] + +[[package]] +name = "rustfft" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87c289af25ed4b3e258126559b6603e5a8f734f48defbbe0fd62abdb49089c3" +dependencies = [ + "num-complex 0.3.1", + "num-integer", + "num-traits", + "primal-check", + "strength_reduce", + "transpose", +] + +[[package]] +name = "rustls" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +dependencies = [ + "base64", + "log", + "ring", + "sct", + "webpki", +] + +[[package]] +name = "ryu" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "sct" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.125" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.125" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha-1" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "fake-simd", + "opaque-debug 0.2.3", +] + +[[package]] +name = "sha1" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" + +[[package]] +name = "shlex" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" + +[[package]] +name = "smallvec" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "standback" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" +dependencies = [ + "version_check", +] + +[[package]] +name = "stdweb" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" +dependencies = [ + "discard", + "rustc_version", + "stdweb-derive", + "stdweb-internal-macros", + "stdweb-internal-runtime", + "wasm-bindgen", +] + +[[package]] +name = "stdweb-derive" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "serde_derive", + "syn", +] + +[[package]] +name = "stdweb-internal-macros" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" +dependencies = [ + "base-x", + "proc-macro2", + "quote", + "serde", + "serde_derive", + "serde_json", + "sha1", + "syn", +] + +[[package]] +name = "stdweb-internal-runtime" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" + +[[package]] +name = "strength_reduce" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3ff2f71c82567c565ba4b3009a9350a96a7269eaa4001ebedae926230bc2254" + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "syn" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9505f307c872bab8eb46f77ae357c8eba1fdacead58ee5a850116b1d7f82883" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "tar" +version = "0.4.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0bcfbd6a598361fda270d82469fff3d65089dc33e175c9a131f7b4cd395f228" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tempdir" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" +dependencies = [ + "rand 0.4.6", + "remove_dir_all", +] + +[[package]] +name = "termcolor" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "time" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "time" +version = "0.2.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a8cbfbf47955132d0202d1662f49b2423ae35862aee471f3ba4b133358f372" +dependencies = [ + "const_fn", + "libc", + "standback", + "stdweb", + "time-macros", + "version_check", + "winapi", +] + +[[package]] +name = "time-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" +dependencies = [ + "proc-macro-hack", + "time-macros-impl", +] + +[[package]] +name = "time-macros-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa" +dependencies = [ + "proc-macro-hack", + "proc-macro2", + "quote", + "standback", + "syn", +] + +[[package]] +name = "tinyvec" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "transpose" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95f9c900aa98b6ea43aee227fd680550cdec726526aab8ac801549eadb25e39f" +dependencies = [ + "num-integer", + "strength_reduce", +] + +[[package]] +name = "typenum" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" + +[[package]] +name = "ucd-trie" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" + +[[package]] +name = "unicode-bidi" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0" +dependencies = [ + "matches", +] + +[[package]] +name = "unicode-normalization" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-width" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" + +[[package]] +name = "unicode-xid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "ureq" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "294b85ef5dbc3670a72e82a89971608a1fcc4ed5c7c5a2895230d31a95f0569b" +dependencies = [ + "base64", + "chunked_transfer", + "cookie", + "cookie_store", + "log", + "once_cell", + "qstring", + "rustls", + "url", + "webpki", + "webpki-roots", +] + +[[package]] +name = "url" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b" +dependencies = [ + "form_urlencoded", + "idna", + "matches", + "percent-encoding", +] + +[[package]] +name = "vcpkg" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbdbff6266a24120518560b5dc983096efb98462e51d0d68169895b237be3e5d" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" + +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + +[[package]] +name = "wasm-bindgen" +version = "0.2.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae" +dependencies = [ + "bumpalo", + "lazy_static", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489" + +[[package]] +name = "web-sys" +version = "0.3.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +dependencies = [ + "webpki", +] + +[[package]] +name = "which" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55551e42cbdf2ce2bedd2203d0cc08dba002c27510f86dab6d0ce304cba3dfe" +dependencies = [ + "either", + "libc", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "xattr" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" +dependencies = [ + "libc", +] + +[[package]] +name = "zip" +version = "0.5.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c83dc9b784d252127720168abd71ea82bf8c3d96b17dc565b5e2a02854f2b27" +dependencies = [ + "byteorder", + "crc32fast", + "flate2", + "thiserror", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..202a8ce --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,44 @@ +[package] +name = "bliss-rs" +version = "0.1.0" +authors = ["Polochon-street "] +edition = "2018" + +[features] +build-ffmpeg = ["ffmpeg-next/build"] +bench = [] + +[dependencies] +ripemd160 = "0.9.0" +ndarray-npy = "0.8.0" +ndarray = { version = "0.15.0", features = ["rayon"] } +num_cpus = "1.13.0" +ndarray-stats = "0.5.0" +rustfft = "5.0.1" +lazy_static = "1.4.0" +rayon = "1.5.0" +crossbeam = "0.8.0" +noisy_float = "0.2.0" +# Until either https://github.com/zmwangx/rust-ffmpeg/pull/60 +# or https://github.com/zmwangx/rust-ffmpeg/pull/62 is in +ffmpeg-next = {git = "https://github.com/Polochon-street/rust-ffmpeg", branch = "stop-failing-unimplemented-arms"} +log = "0.4.14" +env_logger = "0.8.3" +thiserror = "1.0.24" + +[dev-dependencies] +mpd = "0.0.12" +rusqlite = "0.25.0" +dirs = "3.0.1" +tempdir = "0.3.7" +clap = "2.33.3" +anyhow = "1.0.40" + +[dependencies.aubio-rs] +git = "https://github.com/Polochon-street/aubio-rs" + +# Like this until https://github.com/aubio/aubio/issues/336 is solved one way +# or the other +[dependencies.aubio-lib] +git = "https://github.com/Polochon-street/aubio-rs" +branch = "aubio-tweaks" diff --git a/README.md b/README.md new file mode 100644 index 0000000..814fe48 --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +![build](https://github.com/Polochon-street/bliss-rs/workflows/Rust/badge.svg) + +# Bliss music analyser - Rust version +Bliss-rs is the Rust improvement of [Bliss](https://github.com/Polochon-street/bliss). The data it +outputs is not compatible with the ones used by Bliss, since it uses +different, more accurate features, based on actual literature this time. + +Like Bliss, it ease the creation of « intelligent » playlists and/or continuous +play, à la Spotify/Grooveshark Radio. + +## Usage +Currently not usable. + +It's missing a binary / example to actually use the computed features. + +## Acknowledgements + +* This library relies heavily on [aubio](https://aubio.org/)'s + [Rust bindings](https://crates.io/crates/aubio-rs) for the spectral / + timbral analysis, so a big thanks to both the creators and contributors + of librosa, and to @katyo for making aubio bindings for Rust. +* The first part of the chroma extraction is basically a rewrite of + [librosa](https://librosa.org/doc/latest/index.html)'s + [chroma feature extraction](https://librosa.org/doc/latest/generated/librosa.feature.chroma_stft.html?highlight=chroma#librosa.feature.chroma_stftfrom) + from python to Rust, with just as little features as needed. Thanks + to both creators and contributors as well. +* Finally, a big thanks to + [Christof Weiss](https://www.audiolabs-erlangen.de/fau/assistant/weiss) + for pointing me in the right direction for the chroma feature summarization, + which are basically also a rewrite from Python to Rust of some of the + awesome notebooks by AudioLabs Erlangen, that you can find + [here](https://www.audiolabs-erlangen.de/resources/MIR/FMP/C0/C0.html). diff --git a/data/capacity_fix.ogg b/data/capacity_fix.ogg new file mode 100644 index 0000000000000000000000000000000000000000..15528c2fe888e7a1ead5d522baadf0949a12e7c6 GIT binary patch literal 49059 zcmce-by!u+7ce@f=q~AyMp|0p5K@vyKuS_1q(edK5Yhqy0@5f*C?Se~)S*$3kPhLX z2q-8ZAV_|j_x=68xX*pQ=l*r~v(MhMXU(jcSv70c%rSI!z7F8vKNrJ0lfm<()?W26 zj2(8@%h$ox?>qx`(d_&M0DJzw?+TdVdCmWMo!5jxU&q%Kd?@nI{-_yZZUrdpbIuXZpMPyF2~wnZ!`0vy-QCW zeZLJ0uUKRyboZzSYv_P)278U($0dz32GW z&oL)SH;n&V?w`W{Jd)1Q|C92RSY`05KF0!mvi_ULDRqk;qykV>ERgU;fP#v-js)}r zK!x_9(|SaA?G@|5C=WRixdjShG9ZG=X~&dkCzP5e-*zqFyZ=-m=c&+(I@b?%!UJ{d z??nHpt_^^ZF^%`xW$P0FAIpcn3>e`F*MdB3~H>@>TGI5>J_C?c)Ez-f`gn-Aq8;e?HGH0PLaA>&<{yIAc!)knQK>cN1rIbqHU1$5 zG)5d}G?f}u26_mVWMH%fpJzKH2==l14NCNJMv+Ob6{Q;}ye~;JQ24;}EE#i0u%7O^ z-m7m6j#c%Od44sjf{sZNy^R0s!Tk>zpaD}6Fx^UpIv7p&4^m$UAM3xvf`I2r#(EXQ zqvgw^mB#ZvO;{&gap3j&tv{}zPj5P5>M`}l!}gEI;)K)UAE&tqr<<8hpX)ttPTssZ z74U!F{|p_A1lZ(di0aU-om`?#@(*)TVSox?pUEYB)rR#-55c8;k24uT>IeV!b`z82zqi7`hcy3`XuI6PJ z=<=18m{|^%L}%+JKJqir<>yVuSdvyarRm<`eGah{&Ix+NLD$?|1+el(JVkNqgr_#k_V1%%L#w0IQqFfVRR~b(lAMn{V)o|f&nxbA;BJVOoB*> ziKDB?)F;eCk={J3q}G@W2a$>iOUoBcJ?4Ii()<1Ly7?KC3W8OolWzJ|6SF$5A|;a! zt|GmY4j%=3^DYZkJ;-#pRM9i-Fd$u@?FXTva~u}zEx7ZtsV^@|ylNuPazMT(J9zNb zYPKI`nqLNlDga}7t!g62@`ZHzCrj6=-c-xP^Trb;oH3Td6+Pyb2@*Zoeu*MeBbL=r z8`l%%`z)iLWhf!|Qa z^n4Um)wevi4W*vx;9v5LbADS@lX$C-SNrp#Mw$+u2a9V?%tj5?6Fu>xQdqm_zx6&a z!%ej6o3-V-(j;@pM|q-A%U^=M3)d4{rwVdwTM4-=2Ov~Y2@(f6e&PzN4klF{&;V2G z8H$6&bXPeuD(eZK+%b}zf>8CW6(x!RV26VNPF%F4kxPF9;4}bO)qeR>#%NtZqT=Wb zH331>B%S{3s5A-w(hQ6x5pO-jwI_}k$-a_k8cQMGH#EAg6&ar_1xo8PEt3T68Po+U z9$+jlmA=WetdyuXbL`H}7?c-;YUm19J;qqRU`ND~=1yq|-Q|@MNcui-KEpsFQ%Z9k>J@~lv}DpUss8!6r3i05gz8lW%{eNDYx
T-WW@M5g1NS1aR~hl2GGps6?GdP@DD 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 za�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 literal 0 HcmV?d00001 diff --git a/data/chroma-filter.npy b/data/chroma-filter.npy new file mode 100644 index 0000000000000000000000000000000000000000..b70466b0d05bff8fe9adc38ef6c2fa66ea1ba331 GIT binary patch literal 98528 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

P>!tDAa#`17^D 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 VtbD~csgXh!A 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

c*~)s_S#yuDl?A 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 BR>J@Q literal 0 HcmV?d00001 diff --git a/data/chroma-interval.npy b/data/chroma-interval.npy new file mode 100644 index 0000000000000000000000000000000000000000..af02fbc11b24d400cf9a2c837883ab8389180aa4 GIT binary patch literal 10784 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 literal 0 HcmV?d00001 diff --git a/data/chroma-stft-normalized-expected.npy b/data/chroma-stft-normalized-expected.npy new file mode 100644 index 0000000000000000000000000000000000000000..abd038db118404235e562a0214c64f224dce5a12 GIT binary patch literal 16064 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 literal 0 HcmV?d00001 diff --git a/data/chroma.npy b/data/chroma.npy new file mode 100644 index 0000000000000000000000000000000000000000..2da5d561b5798347993565677064c130b4caefe4 GIT binary patch literal 10784 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 literal 0 HcmV?d00001 diff --git a/data/convolve.npy b/data/convolve.npy new file mode 100644 index 0000000000000000000000000000000000000000..86931d7af92774e806203a3ddb14605a695df2bb GIT binary patch literal 16128 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 r>dW9oz9$Kj#yx${h;Qx$|ExOYm{GXiH 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 RqZYy_8j#m#tiG!N{s&~j&SC%n literal 0 HcmV?d00001 diff --git a/data/f_analysis.npy b/data/f_analysis.npy new file mode 100644 index 0000000000000000000000000000000000000000..5d720204bdd85c8a759e7854da1d4ceb6ff3db6b GIT binary patch literal 21440 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%0AKHNUUBKXd$ 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
f|Jb% z_M@_1O{;>6vdD*%KAF%HebAd$LB-sTiP!UyMX1#r*U*d2hjqdM(+ssD7~i^SZ`nsh z#3~w3X+{y)LuP09%2r}TN$A=w?P3^(9DQzXO~r(wL~FZj5vV>Qx{|RJ{QYmoF1jrR zKbq2Cd^$h{*Y5}wmY@QJs@{DT{DzMEjUL{N?jr2{uu;L*kAhJW`*AWm1@S)I>fG0< z7&$5Lv`>qKnk%lMGlOJs-1%X^W1f#_`G4l-JjGbCJd{xWy#gGo_sVCvmq0|3^>d#f z6@$?yl%C5JA=&KmS?@>+PQM+dji^yj*J||K_8|pV*>X-~>Qk`$n6QA>&H~sUN;g>N zRe-+^*^8bnMKCasj-A{{gPr1rJ3j*{(72joR2H6zW0dmXg7QqH-j7^cb~^`YXG)$N z$j!#0ue0Uz0uty>7yMYg^HIO_RO%Tm4@{R+Idh98NHV)hSubCNP9A}#w@djr_eRV5 zM-&B8FZ^ro)fPS`iq;gimx zxGSF;alAva!oai}|McQ&mtObcc)ZnY6s-?WKe0*M81|xCZ&a_thY9W?>%;TZE_}Y1 zJy%Qb!Lyh*fjgR-;is;5*vX?7gUNv#8;Iv5FBWFQzY>qGXB4l>?Xg&Q=s+xkm?zy@ z-Lbp-$dKcU+%4OmkKTLtzUoevVQu8Lf;mziYKtT$bX(Kmr!brM!6+9tJ>4|HnhdDT zof6-mMZuRVy01EOYG9<3YPG4U5?22{N4a&BBkd0ES>GzeVYQ9IQFFw&kxDkNenCN` z$?pk9PZ6Y4<6Bn0&d00PRlhcAlwopj10N-?0?L(b+na8eBkvlELAgmKde7whKb9%|m|&!z*MTP7`^=i#Q&qnW;sbeu8!sdR4(4HEC3Jh9Em zg^d2&wI0NE$<{HpbJx?b!;9oMezy<>Unjj{l!^T+_}592LnDfuw^1{uYQebv`^89i z1@w(Tuuv2;`M^<0^lwi6tDyeAKV-^WwNqNt$h?(Mu2 zK!?c_myk+S;Za}4>cZcZn5S$j+csT}`SYrB2c~Fv8B=3K!YpJ$OEsquX?S&UKS&B+iswpZG{T*Zw`-?Bxyc+*di7 zf4Lckj$ALoGg>ibal1sG!azUye2r^-2P$4jlAh<)BJQh8nDnknto;}I!9~9ku_QTW zz)Ts&Pn(}QFja(?Zdm)!ycp+)1!Q*_(GXfAx%F2I4UgyboP`C-G4hYSnLbwr%cRkv zanA~j?tQgX{Js*-stcSK-RRh{cINM&W;$484QefBnh=?tN@}ca#^BaH6Qq?&hzF4) z)yS2gc$_?K5?hJk?u*paF&fmp#CL2Orb7D_@@Fql5FRePeeM+rBQhd82J;HBtF?Pv zERhV|!Sgm}%_`thwxi{-Kt1+1yQuoTNyOE;kyCv(|G`vAdGTemH!@$|j{o5L4wmWi znQKGe;F@%DDO2Jd3?ybwDSfEMm5(g*od+{;;kSa++VU8<%~Ez(CMTf3{!7%3Qh!u` zw2I4V2!>^Jqx@RQcnosq`Za$@#>3W8G3!%h*nTJA=i@aL2){29N)C#L<;mPX!Sp2X zblzEVw2p&8_Zj-vju&W=I(PPwNF4lB{T-aGlCXiXsXs=w1ms)I-x|--@yXO(c8vfD zCa>APWCSO}M=I(4Xj=mIZ}|T1b-WLjvy?e|%KT9&ROLCY7KOzFC(UBWF*tO(IO@-i zaHQP0Wwo=B3Nd!Er^o**hnXm4epsA_x-Y-uf69=tbW!4U=#OlKs0WV>_2odsa!oJo zZU%(9%={z`a#0@}chG8yh9R+TuEeTBh?^z+ep5t2@D=gb?+z5A*+MOfJO z&3oE`jAE`?qw5{{@b6J$63&1`p|-eOhZ6a7}&g7L?4u z$H+*rf|vt%UX#gI6(-c