-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Synthio: next round of features #7959
Conversation
bend can be static, sweep, or vibrato
A note can be placed in the center (panning=0) or moved to just the left (panning=1) or right (panning=-1) channels. Fractional panning values place it partially in both channels.
When there's no sustain, the release step needs to be calculated from the attack level, not the sustain level. Otherwise, contrary to intent, this leads to the actual release taking a loooonnngg time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One typo and some builds that are too big. Good otherwise!
as step 1/n of adding FIR filtering
A 37-tap filter worked fine on RP2040 (prop maker) at 48kHz, so you can probably pretty much go nuts on M7.
daeff07
to
bc7feb3
Compare
The accumulator saturate logic was wrong, and the sweep was never restarted either
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please don't force push after a review has started. If that is done, then the reviewer will see all of the changes again.
synthio.Synthesizer
may be constructed withchannel_count=2
. Thesynthio.Note.panning
property controls whether it appears in the left, right, or both channels.twoadditional modes: Sweep out, sweep in, and bend.vibrato_rate
andvibrato_depth
properties are removed, with newbend_rate
,bend_depth
andbend_mode
properties added. The defaultbend_mode
isVIBRATO
, so migrate existing code just by search&replace.SWEEP
does a sweep up or down starting from the note's base frequency. ``SWEEP_OUTdoes a sweep that ends at the note's base frequency. STATIC
just lets the value be set dynamically from python code.ring_waveform
, then this waveform is used (atring_frequency
) to modulate the main note waveform.give BendMode.STATIC a better namenaming things is hard[added, not tested]