gitextract_vrmra0ai/ ├── .claude/ │ └── launch.json ├── .github/ │ └── workflows/ │ ├── arduino.yml │ ├── c-cpp.yml │ └── godot-addon.yml ├── .gitignore ├── CLAUDE.md ├── CODE_OF_CONDUCT.md ├── LICENSE ├── Makefile ├── README.md ├── amy/ │ ├── __init__.py │ ├── constants.py │ ├── examples.py │ ├── fm.py │ ├── headers.py │ ├── juno.py │ ├── piano.py │ ├── piano_params.py │ ├── sineclock.py │ ├── test.py │ ├── timing.py │ ├── wave.py │ └── xanadu.py ├── daisy/ │ ├── Makefile │ └── amy_daisy.cpp ├── docs/ │ ├── amy.aw.js │ ├── amy.graffle │ ├── amy.js │ ├── amy.wasm │ ├── amy.ww.js │ ├── amyrepl.css │ ├── amyrepl.js │ ├── api.md │ ├── arduino.md │ ├── billie_jean.md │ ├── chunk.py │ ├── enable-threads.js │ ├── godot.md │ ├── index.html │ ├── juno_patches.md │ ├── micropython.mjs │ ├── micropython.wasm │ ├── midi.md │ ├── minimal.html │ ├── piano.html │ ├── repl.html │ ├── server.py │ ├── style.css │ ├── synth.md │ ├── tutorial.html │ └── upgrading.md ├── examples/ │ ├── AMY_ESP32_manual_I2S/ │ │ └── AMY_ESP32_manual_I2S.ino │ ├── AMY_MIDI_Synth/ │ │ └── AMY_MIDI_Synth.ino │ ├── AMY_USB_Host_MIDI/ │ │ └── AMY_USB_Host_MIDI.ino │ ├── AMY_custom_osc/ │ │ └── AMY_custom_osc.ino │ ├── AMY_pico_PWM/ │ │ └── AMY_pico_PWM.ino │ ├── BillieJeanDrums/ │ │ └── BillieJeanDrums.ino │ ├── BillieJeanDrumsBass/ │ │ └── BillieJeanDrumsBass.ino │ └── BillieJeanScheduled/ │ └── BillieJeanScheduled.ino ├── experiments/ │ ├── Piano.ff.D5.json │ ├── compare_test_wavs.ipynb │ ├── dx7_simulator.py │ ├── make_piano_examples.ipynb │ ├── piano-params.json │ ├── piano-partials.ipynb │ ├── piano_examples.py │ ├── piano_heterodyne.ipynb │ ├── piano_params.py │ ├── track02-C4-bps.json │ └── tulip_piano.py ├── godot/ │ ├── SConstruct │ ├── amy.gd │ ├── amy.gdextension │ ├── install.gd │ ├── src/ │ │ ├── amy_gdextension.cpp │ │ ├── amy_gdextension.h │ │ ├── amy_platform_stubs.c │ │ ├── register_types.cpp │ │ └── register_types.h │ └── web/ │ ├── custom_shell.html │ └── godot_amy_bridge.js ├── library.properties ├── pyproject.toml ├── requirements.txt ├── scripts/ │ ├── gen_amy_js_api.py │ └── gen_patches_js.py ├── setup.py ├── setup_godot.sh ├── sounds/ │ └── HS-TR-808-Drums.sf2 ├── src/ │ ├── AMY-Arduino.h │ ├── algorithms.c │ ├── amy-example.c │ ├── amy-message.c │ ├── amy-piano.c │ ├── amy.c │ ├── amy.h │ ├── amy_connector.js │ ├── amy_fixedpoint.h │ ├── amy_midi.c │ ├── amy_midi.h │ ├── api.c │ ├── clipping_lookup_table.h │ ├── custom.c │ ├── delay.c │ ├── delay.h │ ├── envelope.c │ ├── examples.c │ ├── examples.h │ ├── filters.c │ ├── i2s.c │ ├── instrument.c │ ├── interp_partials.c │ ├── interp_partials.h │ ├── libminiaudio-audio.c │ ├── libminiaudio-audio.h │ ├── log2_exp2.c │ ├── log2_exp2_fxpt_lutable.h │ ├── macos_midi.m │ ├── midi_mappings.c │ ├── miniaudio.h │ ├── oscillators.c │ ├── parse.c │ ├── patches.c │ ├── patches.h │ ├── pcm.c │ ├── pcm_samples_tiny.h │ ├── pcm_tiny.h │ ├── pico-audio/ │ │ ├── audio.cpp │ │ ├── audio.h │ │ ├── audio_i2s.c │ │ ├── audio_i2s.h │ │ ├── audio_i2s.pio │ │ ├── audio_i2s.pio.h │ │ ├── buffer.c │ │ ├── buffer.h │ │ └── sample_conversion.h │ ├── pico_extras_import.cmake │ ├── pico_sdk_import.cmake │ ├── pico_support.cpp │ ├── pyamy.c │ ├── saw_lutset_fxpt.h │ ├── sequencer.c │ ├── sequencer.h │ ├── sine_lutset_fxpt.h │ ├── teensy_support.cpp │ ├── teensy_support.h │ ├── transfer.c │ ├── transfer.h │ ├── triangle_lutset_fxpt.h │ ├── usb.c │ └── usb.h ├── valgrind.suppressions └── windows/ ├── CMakeLists.txt ├── README.md ├── amy_sine.c └── build.bat