https://github.com/kchapelier/algorithmicsynthjs
[on hold] Algorithmic Synth
https://github.com/kchapelier/algorithmicsynthjs
Last synced: 3 months ago
JSON representation
[on hold] Algorithmic Synth
- Host: GitHub
- URL: https://github.com/kchapelier/algorithmicsynthjs
- Owner: kchapelier
- License: mit
- Created: 2014-09-16T11:40:09.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2015-01-06T06:32:20.000Z (almost 11 years ago)
- Last Synced: 2025-03-03T13:34:14.926Z (7 months ago)
- Language: JavaScript
- Homepage:
- Size: 477 KB
- Stars: 1
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
algorithmicsynthjs
==================ON HOLD, waiting for an [AudioWorker](https://github.com/WebAudio/web-audio-api/issues/113) implementation to move forward. It turns out that creating multiple
ScriptProcessorNode's doesn't work too well.Three algorithmic oscillators in parallel with three individual filters and a global filter.
## Roadmap
- [x] Algorithmic oscillator (with octave, tuning, phasing, gain and stereo panning parameters).
- [x] 4 arbitrary parameters with configurable name.
- [x] ACE editor integration.
- [x] General structure (3 oscillator > 1 filter per oscillator > 1 gain per voices > 1 global filter > gain).
- [x] Making it a polyphonic.
- [x] Making it work with Midi input.
- [ ] Implementing Midi learning.
- [ ] Hardcoded enveloppe.
- [ ] Hardcode a few preset.
- [x] Output saving as WAV.
- [ ] Minimal UI : premature UI considerations are considered harmful (I just [made this up](http://modelviewculture.com/pieces/the-making-of-myths)).## Extras & Future
- [ ] Configurable enveloppe, global or per oscillators
- [x] Flexible number of oscillators
- [ ] Other types of oscillators (basic waveform, handdrawn, ... may be too off topic)
- [ ] Allow drag&dropping a sound file on a oscillator to be able to use its data in the algorithm.
- [ ] Saving custom presets.
- [ ] Making it visually appealing.
- [ ] Support modulation events
- [ ] Support pitch wheel events
- [ ] Support sustain events
- [ ] Support polyphonic after touch events
- [ ] Selection of the MIDI channel controlling the synth (currently omni)
- [ ] Scala support
- [ ] Follow the development of [Audio Workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API#Audio_Workers)## Motivations
* The flexibility of algorithmic synthesis.
* Making a case for web-(and javascript)-based audio application for my employers and coworkers.
* Making a test case for the unstable [Aural.js](https://github.com/kchapelier/Aural.js) and for the MIDI learning ability of [SMI](https://github.com/kchapelier/SimpleMidiInput.js).