[Csnd] oscillators with dynamic waveforms/tables
Date | 2020-06-15 15:28 |
From | Dave Seidel |
Subject | [Csnd] oscillators with dynamic waveforms/tables |
Hi all,
Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
It was very nice to see some of you this weekend on Zoom. I have a question about oscillator opcodes: are there opcodes other than oscilikt* and pvsosc that allow changing tables or predefined waveforms at k-rate? Preferably bandwidth-limited (but not a hard requirement)? I'd also be interested in other types of oscillators as long as they aren't too processor-intensive. So I am open to your suggestions. For context, I am writing my first instrument for the Qu-Bit Nebulae module (which is built on a Raspberry Pi 3 and executes Csound code), an oscillator with stereo output that uses the Risset harmonic arpeggio effect (a perennial favorite of mine). The instrument's frequency is set from the module's v/oct input, and uses nine oscillator instances (for the original pitch and the offset pitches). I have the even-numbered oscillators on one output channel and the even-numbered oscillators on the other output channel. I have this working well, and am using both oscilikt (for my own tables) and pvsosc (for its sawtooth and square waves). The user can rotate through the available waveforms (and their underlying opcodes) using one of the push buttons on the front panel of the module. Currently it offers 5 different waveforms, and I'm looking for ways to add more options for timbral variety. Thanks, Dave |
Date | 2020-06-15 15:38 |
From | Dave Seidel |
Subject | Re: [Csnd] oscillators with dynamic waveforms/tables |
Hmm, maybe it's time I learned about the squinewave opcode, which could be useful for my purpose. On Mon, Jun 15, 2020 at 10:28 AM Dave Seidel <dave.seidel@gmail.com> wrote:
|
Date | 2020-06-15 15:48 |
From | Richard van Bemmelen |
Subject | Re: [Csnd] oscillators with dynamic waveforms/tables |
The superformula (https://en.wikipedia.org/wiki/Superformula) is another very interesting way of creating the most strange wave forms... Richard On 6/15/20 4:38 PM, Dave Seidel wrote:
|
Date | 2020-06-15 16:01 |
From | Dave Seidel |
Subject | Re: [Csnd] oscillators with dynamic waveforms/tables |
Thanks, Richard, that looks fascinating, but with my dismal level of maths, I'm not sure how to apply it in the context of Csound. On Mon, Jun 15, 2020 at 10:48 AM Richard van Bemmelen <zappfinger@gmail.com> wrote:
|
Date | 2020-06-15 16:24 |
From | "Jeanette C." |
Subject | Re: [Csnd] oscillators with dynamic waveforms/tables |
Jun 15 2020, Dave Seidel has written: ... > I have a question about oscillator opcodes: are there opcodes other than > oscilikt* and pvsosc that allow changing tables or predefined waveforms at > k-rate? Preferably bandwidth-limited (but not a hard requirement)? How about tablekt or for smoother interpolations: tabmorph or ftmorf with a normal table or even oscil opcode. I have used tabmorph my a wavetable oscillator I did and it worked fine. Another way is hvs. With something like hvs1 you could load an array of ftables and morph between them, walk the line. Again I had some fun with hvs3 in the m_cubicon oscillator. I used adsynt, where the ftables morphed contained partial frequencies and amplitudes. I think there was the question - a few times - whether adsynt automatically limits partials to not rise above the Nyquist frequency, but I can't remember the answer. :) > I'd also > be interested in other types of oscillators as long as they aren't too > processor-intensive. So I am open to your suggestions. How about some FM/PM using foscil or again table opcodes and modulating the phasor that reads through the tables? I believe Victor has released a few interesting orchestras using distortion synthesis to create different waveforms. I believe this technique is or was used sometimes in virtual analogue synths (to a degree) to emulate the classic waveforms. I'm sorry, I don't have links to these orchestras, but I think they were discussed in the Csound journal and there was at least one paper on the topic of distortion synthesis with examples in Csound. HTH. It was good meeting you on Saturday. Best wishes, Jeanette -- * Website: http://juliencoder.de - for summer is a state of sound * Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g * SoundCloud: https://soundcloud.com/jeanette_c * Twitter: https://twitter.com/jeanette_c_s * Audiobombs: https://www.audiobombs.com/users/jeanette_c * GitHub: https://github.com/jeanette-c Don't, don't let me be the last to know Don't hold back, just let it go <3 (Britney Spears) Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here |
Date | 2020-06-15 16:31 |
From | Richard van Bemmelen |
Subject | Re: [Csnd] oscillators with dynamic waveforms/tables |
Ok, but the code examples are already there. There are also sites
that show Python or C code for this, I believe. But to make this
interesting, the table that contains the signal should change over
time (should be updated with the function with one or more
parameters changed).
Richard On 6/15/20 5:01 PM, Dave Seidel wrote:
|
Date | 2020-06-15 16:39 |
From | Dave Seidel |
Subject | Re: [Csnd] oscillators with dynamic waveforms/tables |
Thanks Jeanette, these are excellent suggestions for me to ponder. On Mon, Jun 15, 2020 at 11:24 AM Jeanette C. <julien@mail.upb.de> wrote: Jun 15 2020, Dave Seidel has written: |
Date | 2020-06-15 16:41 |
From | Dave Seidel |
Subject | Re: [Csnd] oscillators with dynamic waveforms/tables |
I do see the code, I just don't understand how to apply it to waveform creation. As I say, I am fairly naive and primitive when it comes to maths. Often, what is obvious to others is not at all clear to me. On Mon, Jun 15, 2020 at 11:31 AM Richard van Bemmelen <zappfinger@gmail.com> wrote:
|
Date | 2020-06-16 11:03 |
From | docB <000005d2745f1ec0-dmarc-request@LISTSERV.HEANET.IE> |
Subject | Re: [Csnd] oscillators with dynamic waveforms/tables |
very good hint: i have lastly enhanced the wave terrain opcode to
provide different curves with very good and interesting results
(added limacon, lemniskate (G), rhodonea, lissajous, trisec,
cornoid) it seems that the superformula is a great addition to it - i will definitely try. On 6/15/20 4:48 PM, Richard van
Bemmelen wrote:
|
Date | 2020-06-16 11:36 |
From | Tarmo Johannes |
Subject | Re: [Csnd] oscillators with dynamic waveforms/tables |
Hi! I am very interested about your wave terrain solution. Would you care to share some examples in another thread? Tarmo T, 16. juuni 2020 13:04 docB <000005d2745f1ec0-dmarc-request@listserv.heanet.ie> kirjutas:
|
Date | 2020-06-16 23:11 |
From | Dave Seidel |
Subject | Re: [Csnd] oscillators with dynamic waveforms/tables |
Hi Jeanette, I've decided, based on your recommendations, to look into table morphing. It really makes sense for the Nebulae, with all the panel controls that are available. So far, I've been using a push-button to ratchet through the tables. It would be much cooler to use a knob to smoothly morph between tables. And since all of the knobs on that module have associated CV inputs, the table could be changed under CV control (e.g., a slow LFO, or a stepped signal). But I also realized something that wasn't obvious until I read up on ftmorf. If I use that opcode, I don't have to be limited to oscillators that take k-vars for the table number! So I may even be able to use my favorite opcode poscil3 (assuming it's not too CPU-intensive, because I'm running nine instances at once). But in any case, it opens up many possibilities. Thanks again, very much, for these ideas and suggestions. - Dave On Mon, Jun 15, 2020 at 11:24 AM Jeanette C. <julien@mail.upb.de> wrote: Jun 15 2020, Dave Seidel has written: |