Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.

kimhappy/snowflake-old

Repository files navigation

Snowflake Logo


SNOWFLAKE is a project using neural networks to simulate guitar amps/pedals. It draws inspiration from GuitarML's NeuralPi and NeuralSeed projects, and is compatible with their training code.

This project outperforms Jatin Chowdhury's RTNeural in terms of inference speed for GRU and LSTM models. This performance boost allows the use of larger models in performance-constrained environments like Raspberry Pi and Daisy Seed. Also, with no external library dependencies, it is ideally suited for memory-constrained environments such as Daisy Seed.

This repository contains only the inference code and the CLI code for development. Once I establish a Raspberry Pi and Daisy Seed development environment, a new repository will be created for the complete project which can run on these devices.

Special thanks to GuitarML and Jatin Chowdhury for inspiring me to embark on this project.

Build CLI

cd playground
./build.sh
  • Use chmod to give build.sh the appropriate permissions, if necessary.
  • For a clean build, use ./build.sh -f

Run CLI

./playground -i <input file name> -o <output file name> -b <samples per block>

Create your own model

  • Begin by using Automated-GuitarAmpModelling to create your own .json model file.
  • Then, use convert.py to transform this .json file into a .hpp file.
convert.py <json file name> <hpp file name> <amp name without whitespaces>
  • At present, this project primarily targets running larger models on Daisy Seed, therefore, only a Python script is available to generate the .hpp file. Future plans include creating an audio plugin to run on a Raspberry Pi or desktop, which will necessitate the ability to convert to other formats.

Benchmark Results

Please note: Benchmark results may vary depending on your environment. I only measured the performance of the inference code.

  • CPU: Apple M1 Pro
  • Compiler: clang++ 16.0.1
Model Library RTF
NAM Eigen 0.1
WaveNet Eigen 0.09
LSTM 40 RTNeural 0.12
RTNeural with Eigen 0.022
snowflake 0.021
LSTM 16 snowflake 0.0037
GRU 10 RTNeural 0.0051
RTNeural with Eigen 0.0047
snowflake 0.0018
GRU 20 snowflake 0.0046

TODO

  • snowflake

    • Implement fade I/O for parameter change
    • Use open-source audio read/write library
    • Benchmark on the actual device and optimize the code
  • snowflake-seed

    • Purchase a Daisy Seed
    • Purchase a PCB
      • PedalPCB Terrarium
        • Currently out of stock
      • DaisySeedProjects
        • KiCad -> JLCPCB (with SMD) ???
      • I'm not familiar with this as my background is in CS XD
    • Build a pedal case
      • I aim to use a 3D printer for this, but lack the necessary expertise XD
    • Make a full project
      • Include more effects like Noise gate, Compressor, EQ, IR loader, Delay, Reverb, Chorus...
      • Develop an inverse filter for a cabinet solely for use with snowflake-seed
  • snowflake-pi

    • Purchase a Raspberry Pi
    • Purchase a Pisound
    • Build a pedal case
    • Make a full project
      • Construct a signal chain (like Fractal Axe-FX) on the webpage
      • Include more effects like Noise gate, Compressor, EQ, IR loader, Delay, Reverb, Chorus...
      • Develop an inverse filter for a cabinet solely for use with snowflake-pi

This README.md was written by ChatGPT 🤖

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages