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

Clicks n Pops Master Issue #699

Closed
baconpaul opened this issue Mar 2, 2019 · 3 comments
Closed

Clicks n Pops Master Issue #699

baconpaul opened this issue Mar 2, 2019 · 3 comments
Milestone

Comments

@baconpaul
Copy link
Collaborator

Just having a master issue for all the clicks n pops reporting we have. I have an update in a second on some thoughts.

@baconpaul
Copy link
Collaborator Author

OK so my first thought on clicks-n-pops is that something must be uninitialized, reads random memory, and then outputs garbage to the sound channel.

So I bit the bullet and set up surge so I could actually play notes on an on screen keyboard while it was running in valgrind. For other intrepid folks, here's how

sudo apt-get install jack
sudo apt-get install jack-keyboard
sudo apt-get install ajmidid

(in one terminal)

jack -d alsa -X alsa_midi

(in another terminal)

ajmidid -e

(in a third terminal)

sudo apt-get install jack

(in a fourth terminal)

jack-keyboard

once surge has started jack keyboard should have a 'connected to' option for surge in. Pick it and press a note and surge will play. Useful.

When you do that, on linux you see lots and lots of jmps on uninitialized reads, some in the filters.

out.valgrnd.gz

@baconpaul
Copy link
Collaborator Author

Oh and that's just from playing a single note in the init patch. I'm sure other reports in the clicks n pop family have similar problems in other spots.

@baconpaul baconpaul added this to the 1.6.0 milestone Mar 2, 2019
@baconpaul
Copy link
Collaborator Author

Linking #710 here also

baconpaul added a commit to baconpaul/surge that referenced this issue Apr 1, 2019
In two places, filters were using uninitialized memory at
creation. In some cases, for some values, in some instances,
this would create a large "pop" as the filter went unstable
with crazy coefficients or history values.

In my headless simulator, without these initialization changes
we get a click and pop within the first 100 instances. With them
there is no unstable run within 20,000 instances.

In theory this
Closes surge-synthesizer#790
Closes surge-synthesizer#753
Closes surge-synthesizer#699
Closes surge-synthesizer#698
Closes surge-synthesizer#662
Closes surge-synthesizer#660
baconpaul added a commit to baconpaul/surge that referenced this issue Jul 10, 2019
In two places, filters were using uninitialized memory at
creation. In some cases, for some values, in some instances,
this would create a large "pop" as the filter went unstable
with crazy coefficients or history values.

In my headless simulator, without these initialization changes
we get a click and pop within the first 100 instances. With them
there is no unstable run within 20,000 instances.

In theory this
Closes surge-synthesizer#790
Closes surge-synthesizer#753
Closes surge-synthesizer#699
Closes surge-synthesizer#698
Closes surge-synthesizer#662
Closes surge-synthesizer#660


Former-commit-id: 8e8307f5065169c6651215a1832bdd3cd315b403 [formerly 506ec57]
Former-commit-id: f6fd0b5ce82ee51975a9e12079ff44d6d788405f
Former-commit-id: 025d2371d9ed79ddc4da4540211633bbc416ccbd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant