Skip to content
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

changing pitch of string oscilator produces a small pitch ramp on note on #6985

Open
musicalman opened this issue Apr 23, 2023 · 2 comments · Fixed by #6990
Open

changing pitch of string oscilator produces a small pitch ramp on note on #6985

musicalman opened this issue Apr 23, 2023 · 2 comments · Fixed by #6990
Labels
Bug Report Item submitted using the Bug Report template
Milestone

Comments

@musicalman
Copy link

If you set an osc to string, and adjust its pitch using either scene or osc controls, the osc pitch seems to be initialized with the untransposed pitch and has to ramp to the correct one. Eg. Raising the osc pitch by 3 octaves sounds very different from transposing the incoming midi data. In my testing, no other osc types exhibited this behavior.

@musicalman musicalman added the Bug Report Item submitted using the Bug Report template label Apr 23, 2023
@baconpaul
Copy link
Collaborator

wow i think this is a more fundamental bug than just the string oscillator

If I take string and modify it so that ::init and ::process both print the pitch, take a string, set the octave to +3 and press middle C i get

INIT 60
PROCESS 96
PROCESS 96
PROCESS 96
PROCESS 96
PROCESS 96

so the init call doesn't get the octave shift, but the process call does.

I'll dig into this tomorrow. Looks like a real bug at the bottom of the voice code.

baconpaul added a commit to baconpaul/surge that referenced this issue Apr 24, 2023
SurgeVoice called osc->init with a pitch which ignored
the octave offset and so forth. This meant that the first block
of any oscillator with octave +3 would have a 3 octave immediate
shift.

This long lived bug (since inception) is audible in the String
and Modern oscillators which have a variety of memory and smoothing
in their handling of pitch.

This will subtly change the sound of oscillators with high octaves,
but will change it to be correct.

Closes surge-synthesizer#6985
baconpaul added a commit that referenced this issue Apr 24, 2023
SurgeVoice called osc->init with a pitch which ignored
the octave offset and so forth. This meant that the first block
of any oscillator with octave +3 would have a 3 octave immediate
shift.

This long lived bug (since inception) is audible in the String
and (far less so - just a few samples) Modern oscillators which have a variety of memory and smoothing
in their handling of pitch.

This will subtly change the sound of oscillators with high octaves,
but will change it to be correct.

Closes #6985
@baconpaul baconpaul reopened this Apr 25, 2023
@baconpaul
Copy link
Collaborator

However string osc pitch initialization still seems buggy. It works fine if changing the osc octave, but changing the osc pitch control or scene octave/pitch controls still breaks. Haven't checked what happens when modulation is involved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Report Item submitted using the Bug Report template
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants