Skip to content

madebycm/gyro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Gyro

Preset generator for the 10K Gyro synth plugin. Queries a Sononym analysis database to intelligently select samples and assemble complete, playable instrument presets.

Features

  • Multi-library support — auto-detects all Sononym libraries from settings and lets you pick which one to use via arrow-key selector
  • Cascading sample search — tries preferred categories first, then broadens to the full Tone/Perc/FX family, then drops length/brightness constraints, then accepts anything in the library. Slots are never left empty.
  • 9 slot types — Pad, Keys, Lead, Bass, Pluck, Synth, Vocal, Percussion, FX — each with tailored search filters and envelope/FX templates
  • 10 instrument recipes — predefined multi-slot combinations (e.g. Pad+Pad+Keys+Vocal) that produce cohesive presets
  • Deterministic naming — generates unique two-word preset names (seldom_music, hollow_tide, etc.) using seeded hashing, collision-free across runs
  • Used-sample tracking — persistent state ensures no sample is reused across sessions; run --reset to clear
  • Full preset scaffolding — writes complete Gyro instrument JSON including ADSR envelopes, filters, chorus, compressor, EQ, wavetable modulation, chord sets, pattern sequencer, FX chain, and modulation routing
  • 5 chord progressions — rotating bank of 7-chord minor progressions (Am, Cm, Em, Fm, Dm) auto-assigned to presets
  • Sample import pipeline — copies WAVs into Gyro's sample directory and generates matching metadata JSON with root key, zone mapping, and playback settings
  • Directory deduplication — avoids picking multiple samples from the same source folder for variety
  • Dry-run mode — preview sample selections without writing any files

Requirements

  • Python 3.8+
  • DuckDB CLI (brew install duckdb)
  • One or more Sononym libraries (the script reads ~/Library/Application Support/Sononym/1.6.4/settings.json)
  • 10K Gyro installed with its user directory at ~/Documents/10K/Gyro

Usage

python3 generate.py              # Generate 10 instrument presets
python3 generate.py --count 5    # Generate 5 instrument presets
python3 generate.py --dry-run    # Preview selections without writing files
python3 generate.py --reset      # Clear used-sample tracking and regenerate
python3 generate.py --list-used  # Show all previously used samples
python3 generate.py --clear      # Delete all generated presets and imported samples

All generated presets are saved to ~/Documents/10K/Gyro/presets/instrument/CM/.

Cleaning up

--clear removes everything the script has created:

  • All preset JSON files in the CM folder
  • All imported WAV + metadata files in Gyro's samples directory
  • Resets state.json (used-sample tracking)

Factory presets and other user-created presets outside CM are never touched.

How it works

  1. Presents a library selector if multiple Sononym libraries are configured (arrow keys + Enter)
  2. Copies the selected sononym.db to a temp file so it works even while Sononym is open
  3. For each recipe slot, runs a cascading query: preferred categories → broad family → relaxed constraints → anything available
  4. Scores candidates by pitch confidence, category strength, and harmonicity
  5. Deduplicates by parent directory to ensure variety
  6. Copies selected WAVs into Gyro's sample directory with metadata
  7. Assembles a complete instrument preset JSON with 4 sound slots, envelope settings, FX chain, chord set, and modulation routing
  8. Tracks all used samples in state.json to avoid repeats on subsequent runs

About

Preset generator for the 10K Gyro synth plugin, powered by Sononym sample analysis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages