-
Notifications
You must be signed in to change notification settings - Fork 407
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
Phase Distortion oscillator #3273
Comments
I agree |
That would be great! |
oh yeah very interesting @magnetophon - which code has the model of the oscillator? my faust navigation is a little so-so but i would gladly use your model as a starting point! |
Great, I was hoping you'd say that! If you want, I can cook up a little oscillator-only dsp. |
That would be profoundly useful yeah You are AGPL3 and we are GPL3. I would consult your code and rewrite as GPL3 in C++. Presume that's not a problem for you but if the A matters, lemme know. I don't think we can AGPL3 and still support all our use cases for surge. |
I'd be more than happy to make the oscillator GPL3. |
I'm glad this has some interest! |
Fantastic! And @Altarberg yeah we are about to release 1.8 (which is "all about MSEG, Filters, and Airwindows") but our 1.9 plan has a bunch of oscillator work imagined. We will definitely need testers and feedback as we go. |
On closer inspection, looks like I already did :) This issue reminded me to do a long overdue PR to add anti-aliasing. Those are only the bare oscillators though; In DigiDrie, I also added some features to make them more versatile:
I made a repo that has these features, taken from DigiDrie, under GPL3. In the example, you can choose between a few filter types. The parameters should all fit in the current Surge GUI, when you remove the OSC switch and replace it by a fader. There's two oscillator-specific features of DigiDrie that I omitted because there isn't enough room in the GUI for them (yet):
It would be great to have those features in Surge as well, I'll open separate issues for them. Finally: by default, faust runs all code all the time. |
Thank you very much. We are wrapping up 18 now but I will look at this when we start 19 (if not earlier). On your extra features: The first I would do through the surge FM module, which we want to expand greatly in S19 (basically we want to go to 6 oscillators and a matrix). Then code PD to respond to external FM. On the second - that's really hard but we are thinking some about expanded stereo panning, just not necessarily distinct stereo modulation. |
We don't necessarily need to implement all the parameters from the Faust implementation one to one, but just having a PD oscillator with its base parameter set would already be quite alright and great to have in Surge. |
yeah the faust code is super duper useful though. And @magnetophon has been thoughtful about the params. It is a very helpful document for when we turn to this. |
So FM with 6 of any Surge osc? Perfect! :) When you get around to it, I'd love to hear your thoughts on the sound of these things. |
That is the plan. Quite a lot of work to get there. But i think it could be very powerful. |
I was wondering if it would be possible to add a Phase Distortion Osc, like the Casio CZ line. I think that PD combined with the filters and modulation capabilities of Surge would be great.
The text was updated successfully, but these errors were encountered: