-
Notifications
You must be signed in to change notification settings - Fork 0
a phase modulation synthesizer
License
GPL-3.0, GPL-2.0 licenses found
Licenses found
GPL-3.0
LICENSE
GPL-2.0
COPYING.gpl2
Windfisch/fm-synth
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is a phase modulating synthesizer using jack Dependencies: - Jack Audio Connection Kit - Probably stuff I forgot. Try starting the synth and type "help". And ignore the debugging output. Format for the .prog files: oscillators=<number of oscillators> <PARAM>=<value> <PARAM>=<value> ... controllers: <PARAM>=<affect value> ... defaults: cont[<CTRL NUMBER>]=<default value> ... velocity: <PARAM*>=<velocity expression> ... where <PARAM> is one of: mod[x][y]: controls how oscillator #x modulates oscillator #y. out[x]: output level of oscillator #x. waveform[x]: waveform number of oscillator #x, or "440:filename.wav", where 440 denotes the frequency of the sound in the file. sync[x]: 0 or 1, whether this oscillator #x should be reset on every sync point or not factor[x]: frequency factor of this osc trem[x]: tremolo depth trem_lfo[x]: which LFO oscillator to use for tremolo vib[x]: vib_lfo[x]: same for vibrato attack[x] decay[x] sustain[x] release[x]: time (in seconds) for the A/D/S/R phases of the envelope hold[x]: 0 or 1. if set, the release phase is only entered upon NOTE OFF. if unset, release is entered immediately after the sustain phsae. ksl[x]/ksr[x]: key scale level/rate: affect amplitude or ADSR-phase-length depending on pitch filter. this filter is applied to the final mix of all oscillators. enabled: enable the high frequency cutoff filter. env_amount: how much the filter gets affected by the filter envelope attack decay sustain release hold offset: cutoff frequency factor of the filter if unaffected by envelope resonance: filter resonance, 0 .. 1 trem trem_lfo sync_factor: frequency of the "oscillator reset" signa; freq. env_amount attack decay sustain release hold <PARAM*> may only be "mod", "out", "filter env res off", "freq env". <value> may be a simple expression containing numerical calculations: Examples: 1/2, 4, 5.4*9/2 <affect value> is: ctrl[<MIDI CTRL NUMBER>]*<value> + ctrl[<OTHER MIDI CTRL NUMBER>]*<value> + ... <velocity expression> is: vel*<value> + <value>, where "vel" is a reserved keyword the "controllers:", "defaults:" and "velocity:" sections are optional. lfo number can also be "snh", for sample and hold of random data. supported waveforms: _ _ 0 sine / \ / \ \ _ / \ _ / .-''-. .-''-. 1 abs-sine / \ / \ / \/ \ _ _ 2 half-sine / \_____/ \_____ .--- .--- 3 pulse-sine / | / | / |____/ |____ ---. ---. 4 inverted | \ | \ pulse-sine ____| \____| \ 5 noise 100 to 300: sawtooth with variable rising/falling phases . | . | 100: normal sawtooth . ' | . ' | . ' |. ' | . . in between . ' \ . ' \ . ' \. ' \ / \ / \ 200: triangle / \ / \ \ / \ / \ / \ / . . in between / ' . / ' . / ' ./ ' . | . | . 300: inverted sawtooth | ' . | ' . | ' .| ' . 400 to 600: pulse with variable high/low ratio 1 400 DC 0 _ _ _ _ _ _ -1 ____________________ 1 ___ ___ in between 0 _ _ _ _ _ _ -1 _______ _______ 1 _____ _____ 500 square 0 _ _ _ _ _ _ -1 _____ _____ 1 _______ _______ in between 0 _ _ _ _ _ _ -1 ___ ___ 1 ____________________ 600 DC 0 _ _ _ _ _ _ -1 about the note compiler: this generates sourcecode for a certain .prog file and generates a .so shared object which then can be loaded. It's supposed to improve the performance.
About
a phase modulation synthesizer
Resources
License
GPL-3.0, GPL-2.0 licenses found
Licenses found
GPL-3.0
LICENSE
GPL-2.0
COPYING.gpl2
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published