Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chris-zen/kiro-synth
Modular sound synthesizer written in Rust
https://github.com/chris-zen/kiro-synth
audio hacktoberfest midi modular synth synthesizer
Last synced: 5 days ago
JSON representation
Modular sound synthesizer written in Rust
- Host: GitHub
- URL: https://github.com/chris-zen/kiro-synth
- Owner: chris-zen
- Created: 2020-01-18T18:45:02.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-31T03:25:47.000Z (almost 4 years ago)
- Last Synced: 2024-08-02T19:31:53.064Z (3 months ago)
- Topics: audio, hacktoberfest, midi, modular, synth, synthesizer
- Language: Rust
- Homepage:
- Size: 5.24 MB
- Stars: 95
- Watchers: 2
- Forks: 6
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-open-synth - kiro-synth - zen) | None Listed | Rust | (Rust)
README
# Kiro Synth
This is my 4rd iteration on building a synthesiser ;-)
This time, these are my goals:
- The synth logic can be used in embedded systems (I plan to build actual hardware from this).
- Internally it is like a modular synth, where all the blocks (Osc, Lfo, Filter, Env, Dca, ...) can be patched together using a simple Rust DSLThis is the very beginning of this project and I plan to take quite some time developing it, but it already makes some noise ;-)
```bash
cd kiro-synth-host
cargo run --release
```NOTE: You have to connect your MIDI keyboard before starting the synth. Also it only supports MacOS right now.
# Screenshots
## Roadmap
- [x] Basic synth pieces: Oscillator, EG, LFO, Filter, DCA
- [x] Rust DSL to build the synth graph as a program
- [x] Basic voice management
- [x] Parameters can be changed from MIDI events or a UI
- [x] Controlling parameters from a Druid UI
- [x] Modulation of parameters through a modulation matrix
- [x] The modulation matrix can be tuned from the UI
- [x] UI feedback for the modulations
- [x] UI feedback for the number of voices
- [x] UI feedback for the output levels
- [ ] Fix modulation parameters value ranges
- [ ] Fix LFO phase parameter
- [ ] Add note expression as modulation sources (velocity, pitch, modwheel, after touch)
- [ ] Patch management from configuration
- [ ] Patch management from the UI
- [ ] Internal signals explorer (oscilloscope, spectrum analyzer, Peak/RMS level meter)
- [ ] Improve the program with more blocks (add one more EG and LFO)
- [ ] Improve the program graph to include global oscillators parameters (octave, semitones, cents, drift, filter output)
- [ ] Improve the program graph to allow FM synthesis using the oscillators
- [ ] Improve the program graph to add more parameters for the oscillators (filter output)
- [ ] Add a square waveshape (including new parameter for width)
- [ ] Add noise waveshapes
- [ ] Add more filters
- [ ] Filter mode parameter shows the filter name in the UI
- [ ] Improve the Knob widget to support logarithmic parameters
- [ ] Unison ?
- [ ] UI feedback for the CPU usage
- [ ] ...