Csound Csound-dev Csound-tekno Search About

[Csnd] buzz, gbuzz, Synclavier

Date2019-08-12 21:48
FromRoger Kelly
Subject[Csnd] buzz, gbuzz, Synclavier
I recently bought Synclavier V from Arturia.  It is a software emulation of the Synclavier synthesizer from 80s/90s.  It appears to be some type of FM Synthesis where the carrier and modulator are each a type of additive harmonic spectra operator.  It seems to be far more capable than tradition FM synthesis along the lines of DX7.

Would it be possible to produce something similar in Csound with buzz operator modulating another buzz operator?  Would that approximate the same type of algorithm?


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

Date2019-08-12 21:59
FromVictor Lazzarini
SubjectRe: [Csnd] buzz, gbuzz, Synclavier
I'd say that would be no problem. 

Victor Lazzarini
Dean of Arts, Celtic Studies, and Philosophy
Maynooth University
Ireland

On 12 Aug 2019, at 21:49, Roger Kelly <loraxman@gmail.com> wrote:

I recently bought Synclavier V from Arturia.  It is a software emulation of the Synclavier synthesizer from 80s/90s.  It appears to be some type of FM Synthesis where the carrier and modulator are each a type of additive harmonic spectra operator.  It seems to be far more capable than tradition FM synthesis along the lines of DX7.

Would it be possible to produce something similar in Csound with buzz operator modulating another buzz operator?  Would that approximate the same type of algorithm?


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

Date2019-08-12 22:01
FromFrancois PINOT
SubjectRe: [Csnd] buzz, gbuzz, Synclavier
From what I remember, the Synclavier II had four harmonic wave tables, each one up to 24 harmonics. Each wave table could be frequency modulated by a sine wave. Each carrier and modulator had its own ADSR envelope and one could set the frequency of each carrier and the FM ratio for each modulation. There were additional parameters for vibrato, portamento, chorus and the like.

François

Le lun. 12 août 2019 à 22:49, Roger Kelly <loraxman@gmail.com> a écrit :
I recently bought Synclavier V from Arturia.  It is a software emulation of the Synclavier synthesizer from 80s/90s.  It appears to be some type of FM Synthesis where the carrier and modulator are each a type of additive harmonic spectra operator.  It seems to be far more capable than tradition FM synthesis along the lines of DX7.

Would it be possible to produce something similar in Csound with buzz operator modulating another buzz operator?  Would that approximate the same type of algorithm?


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
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

Date2019-08-12 22:07
FromRoger Kelly
SubjectRe: [Csnd] buzz, gbuzz, Synclavier
So following the above. I could attempt something similar with an operator composed of a buzz and oscil combination -- then use that operator as a modulator to a "carrier" operator perhaps? It sounds quite amazing given that it looks fairly simple in algorithm.

On Mon, Aug 12, 2019 at 4:01 PM Francois PINOT <fggpinot@gmail.com> wrote:
From what I remember, the Synclavier II had four harmonic wave tables, each one up to 24 harmonics. Each wave table could be frequency modulated by a sine wave. Each carrier and modulator had its own ADSR envelope and one could set the frequency of each carrier and the FM ratio for each modulation. There were additional parameters for vibrato, portamento, chorus and the like.

François

Le lun. 12 août 2019 à 22:49, Roger Kelly <loraxman@gmail.com> a écrit :
I recently bought Synclavier V from Arturia.  It is a software emulation of the Synclavier synthesizer from 80s/90s.  It appears to be some type of FM Synthesis where the carrier and modulator are each a type of additive harmonic spectra operator.  It seems to be far more capable than tradition FM synthesis along the lines of DX7.

Would it be possible to produce something similar in Csound with buzz operator modulating another buzz operator?  Would that approximate the same type of algorithm?


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
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
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

Date2019-08-12 22:20
FromVictor Lazzarini
SubjectRe: [Csnd] buzz, gbuzz, Synclavier
or vco, vco2.

But be careful with aliasing. If you use a carrier with many components, each will be modulated and create sidebands. 

Victor Lazzarini
Dean of Arts, Celtic Studies, and Philosophy
Maynooth University
Ireland

On 12 Aug 2019, at 22:08, Roger Kelly <loraxman+csound@gmail.com> wrote:

So following the above. I could attempt something similar with an operator composed of a buzz and oscil combination -- then use that operator as a modulator to a "carrier" operator perhaps? It sounds quite amazing given that it looks fairly simple in algorithm.

On Mon, Aug 12, 2019 at 4:01 PM Francois PINOT <fggpinot@gmail.com> wrote:
From what I remember, the Synclavier II had four harmonic wave tables, each one up to 24 harmonics. Each wave table could be frequency modulated by a sine wave. Each carrier and modulator had its own ADSR envelope and one could set the frequency of each carrier and the FM ratio for each modulation. There were additional parameters for vibrato, portamento, chorus and the like.

François

Le lun. 12 août 2019 à 22:49, Roger Kelly <loraxman@gmail.com> a écrit :
I recently bought Synclavier V from Arturia.  It is a software emulation of the Synclavier synthesizer from 80s/90s.  It appears to be some type of FM Synthesis where the carrier and modulator are each a type of additive harmonic spectra operator.  It seems to be far more capable than tradition FM synthesis along the lines of DX7.

Would it be possible to produce something similar in Csound with buzz operator modulating another buzz operator?  Would that approximate the same type of algorithm?


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
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
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

Date2019-08-12 22:24
FromBill Alves
Subject[Csnd] Synclavier
Since the topic has been brought up, I wanted to mention a feature on the Synclavier that I loved but have not seen replicated since. (I have not tried the Arturia software.) It had an analysis/resynthesis function where, for each breakpoint, it would record a frequency, amplitude, and a waveshape. The resynthesis would then be quite inexpensive, consisting simply of crossfades between pairs of wavetables. When I heard of this, I assumed that the resulting sounds would be limited to harmonic spectra, because that’s all that could be stored in the wavetable. However, if the tables are swapped quickly enough, non-harmonics and noise are quite possible. I recall that, as a demo, Sydney Alonzo resynthesized a recording of himself speaking his first name. The resynthesis of the sibilant that starts his name, while not perfect, was startlingly close. I should also note that one had to manually set up the spacing of the breakpoints for the analysis. Although time-consuming, this allowed you to shorten the time between breakpoints when the sound was complex and changing quickly and space them out widely when the changes were gradual.

On Aug 12, 2019, at 2:07 PM, Roger Kelly <loraxman+csound@GMAIL.COM> wrote:

So following the above. I could attempt something similar with an operator composed of a buzz and oscil combination -- then use that operator as a modulator to a "carrier" operator perhaps? It sounds quite amazing given that it looks fairly simple in algorithm.

On Mon, Aug 12, 2019 at 4:01 PM Francois PINOT <fggpinot@gmail.com> wrote:
From what I remember, the Synclavier II had four harmonic wave tables, each one up to 24 harmonics. Each wave table could be frequency modulated by a sine wave. Each carrier and modulator had its own ADSR envelope and one could set the frequency of each carrier and the FM ratio for each modulation. There were additional parameters for vibrato, portamento, chorus and the like.

François

Le lun. 12 août 2019 à 22:49, Roger Kelly <loraxman@gmail.com> a écrit :
I recently bought Synclavier V from Arturia.  It is a software emulation of the Synclavier synthesizer from 80s/90s.  It appears to be some type of FM Synthesis where the carrier and modulator are each a type of additive harmonic spectra operator.  It seems to be far more capable than tradition FM synthesis along the lines of DX7.

Would it be possible to produce something similar in Csound with buzz operator modulating another buzz operator?  Would that approximate the same type of algorithm?


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
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
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

Bill Alves
Professor of Music, The Claremont Colleges
Harvey Mudd College
301 Platt Blvd. Claremont CA 91711
http://pages.hmc.edu/alves/
http://www.billalves.com/




Date2019-08-12 23:28
FromSteven Yi
SubjectRe: [Csnd] buzz, gbuzz, Synclavier
Attachmentssynclavier-like.csd  synclavier-like.livecode  
I've attached an attempt and making something like a Synclavier II.
There foscili2 UDO here uses sine modulator and user-supplied carrier
table. (Warning: foscili2 has arguments of modulator then carrier as
that's what I tend to think in.)

There's four oscillators and the foscili2 largely works like foscili.
This patch is alright, but I experimented with various slow and fast
attacks for the index and amplitude envelopes and got some nice
sounds. Same with changing the gitab table with various partial
strengths for the additive synthesis part.

I haven't ever worked with a Synclavier II so I'm largely interpreting
what I found online for the signal paths.  (I'll try downloading and
trying out Synclavier V when I have a chance.)

The CSD was started in live.csound.com, but then modified and further
edited using Vim/Csound with live coding via --port.  If you don't
have a livecoding setup, I've attached a synclavier-like.livecode file
that you can copy/paste into https://live.csound.com to try out there.
(And if you haven't used live.csound.com, try selecting all text,
delete; then paste in contents from file; then select all and press
ctrl-e. You can then edit code and press ctrl-e to update the code.)


On Mon, Aug 12, 2019 at 5:20 PM Victor Lazzarini  wrote:
>
> or vco, vco2.
>
> But be careful with aliasing. If you use a carrier with many components, each will be modulated and create sidebands.
>
> Victor Lazzarini
> Dean of Arts, Celtic Studies, and Philosophy
> Maynooth University
> Ireland
>
> On 12 Aug 2019, at 22:08, Roger Kelly  wrote:
>
> So following the above. I could attempt something similar with an operator composed of a buzz and oscil combination -- then use that operator as a modulator to a "carrier" operator perhaps? It sounds quite amazing given that it looks fairly simple in algorithm.
>
> On Mon, Aug 12, 2019 at 4:01 PM Francois PINOT  wrote:
>>
>> From what I remember, the Synclavier II had four harmonic wave tables, each one up to 24 harmonics. Each wave table could be frequency modulated by a sine wave. Each carrier and modulator had its own ADSR envelope and one could set the frequency of each carrier and the FM ratio for each modulation. There were additional parameters for vibrato, portamento, chorus and the like.
>>
>> François
>>
>> Le lun. 12 août 2019 à 22:49, Roger Kelly  a écrit :
>>>
>>> I recently bought Synclavier V from Arturia.  It is a software emulation of the Synclavier synthesizer from 80s/90s.  It appears to be some type of FM Synthesis where the carrier and modulator are each a type of additive harmonic spectra operator.  It seems to be far more capable than tradition FM synthesis along the lines of DX7.
>>>
>>> Would it be possible to produce something similar in Csound with buzz operator modulating another buzz operator?  Would that approximate the same type of algorithm?
>>>
>>>
>>> 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
>>
>> 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
>
> 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
>
> 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

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

Date2019-08-13 01:02
FromSteven Yi
SubjectRe: [Csnd] buzz, gbuzz, Synclavier
Attachmentssynclavier-like2.livecode  
And I realized the initial version had a bug with gamix mixing. This
version includes a fix, uses a more crystal-like patch and different
tables for the foscili2 oscillators, as well as little more harmonic
set of pitches in the note generator.

On Mon, Aug 12, 2019 at 6:28 PM Steven Yi  wrote:
>
> I've attached an attempt and making something like a Synclavier II.
> There foscili2 UDO here uses sine modulator and user-supplied carrier
> table. (Warning: foscili2 has arguments of modulator then carrier as
> that's what I tend to think in.)
>
> There's four oscillators and the foscili2 largely works like foscili.
> This patch is alright, but I experimented with various slow and fast
> attacks for the index and amplitude envelopes and got some nice
> sounds. Same with changing the gitab table with various partial
> strengths for the additive synthesis part.
>
> I haven't ever worked with a Synclavier II so I'm largely interpreting
> what I found online for the signal paths.  (I'll try downloading and
> trying out Synclavier V when I have a chance.)
>
> The CSD was started in live.csound.com, but then modified and further
> edited using Vim/Csound with live coding via --port.  If you don't
> have a livecoding setup, I've attached a synclavier-like.livecode file
> that you can copy/paste into https://live.csound.com to try out there.
> (And if you haven't used live.csound.com, try selecting all text,
> delete; then paste in contents from file; then select all and press
> ctrl-e. You can then edit code and press ctrl-e to update the code.)
>
>
> On Mon, Aug 12, 2019 at 5:20 PM Victor Lazzarini  wrote:
> >
> > or vco, vco2.
> >
> > But be careful with aliasing. If you use a carrier with many components, each will be modulated and create sidebands.
> >
> > Victor Lazzarini
> > Dean of Arts, Celtic Studies, and Philosophy
> > Maynooth University
> > Ireland
> >
> > On 12 Aug 2019, at 22:08, Roger Kelly  wrote:
> >
> > So following the above. I could attempt something similar with an operator composed of a buzz and oscil combination -- then use that operator as a modulator to a "carrier" operator perhaps? It sounds quite amazing given that it looks fairly simple in algorithm.
> >
> > On Mon, Aug 12, 2019 at 4:01 PM Francois PINOT  wrote:
> >>
> >> From what I remember, the Synclavier II had four harmonic wave tables, each one up to 24 harmonics. Each wave table could be frequency modulated by a sine wave. Each carrier and modulator had its own ADSR envelope and one could set the frequency of each carrier and the FM ratio for each modulation. There were additional parameters for vibrato, portamento, chorus and the like.
> >>
> >> François
> >>
> >> Le lun. 12 août 2019 à 22:49, Roger Kelly  a écrit :
> >>>
> >>> I recently bought Synclavier V from Arturia.  It is a software emulation of the Synclavier synthesizer from 80s/90s.  It appears to be some type of FM Synthesis where the carrier and modulator are each a type of additive harmonic spectra operator.  It seems to be far more capable than tradition FM synthesis along the lines of DX7.
> >>>
> >>> Would it be possible to produce something similar in Csound with buzz operator modulating another buzz operator?  Would that approximate the same type of algorithm?
> >>>
> >>>
> >>> 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
> >>
> >> 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
> >
> > 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
> >
> > 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

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

Date2019-08-13 03:19
FromPete Goodeve
SubjectRe: [Csnd] buzz, gbuzz, Synclavier
AttachmentsNone  

Date2019-08-13 04:07
FromSteven Yi
SubjectRe: [Csnd] buzz, gbuzz, Synclavier
Just some quick coding. Did other modifications locally to adjust
levels of the Syn instrument, fix that the second expseg's should
probably be expsegr's, etc. and was having a good time exploring it. I
imagine it's in alright enough shape for anyone to use it as a
starting point.  ;)

Thinking out loud: To Victor's point, I found it interesting working
with a non-sine carrier but it was definitely easy to alias.  Thinking
backwards, starting with a sine and working with it as an FM
oscillator, introducing partials was like stacking the FM oscil on top
of itself at the each partial frequency and strength.  The four
oscillators with wavetables made me also think about banded wavetable
synthesis ala Beauchamp/Horner/Ayers, which gave some options on how
to approach sound design. I sort of enjoyed moving between thinking in
FM and Additive and mixing in whether to use FM or use a 0 index and
get just the wavetable. I suppose if the oscillators were re-written
for PM and had feedback options it'd get really interesting.

Thanks Roger for posting about this! (And glad this code proved
interesting to you Pete!)


On Mon, Aug 12, 2019 at 10:19 PM Pete Goodeve  wrote:
>
> On Mon, Aug 12, 2019 at 08:02:04PM -0400, Steven Yi wrote:
> > And I realized the initial version had a bug with gamix mixing. This
> > version includes a fix, uses a more crystal-like patch and different
> > tables for the foscili2 oscillators, as well as little more harmonic
> > set of pitches in the note generator.
>
> Talking of mixer bugs... (:-))  Maybe there was a reason you did
> it that way, but why do you apply the tanh limiting *before* the
> reverb?  I've been playing with the original csd -- converting it to
> MIDI input (not familiar with live coding) -- and I was getting
> out-of-ranges with what seemed reasonable levels.  I moved
> the tanhs to the output itself, and it sounds fine to me (and no
> overranges...)  (I had already fixed the gamix addition.)
>
> Sounds nice with MIDI.  Will be playing more!
>
>         -- Pete --
>
> 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

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

Date2019-08-13 12:23
Fromrasmus ekman
SubjectRe: [Csnd] buzz, gbuzz, Synclavier
This type of FM is exactly what squinewave is intended for.

It produces variable waveforms, not as summation of sinewave partials
(where eg a squarewave has lots of "wiggling" around the corners),
but more like a line drawing with rounded corners.

Also, with higher frequencies, the squinewave waveform "degrades" to sinewave,
because there's a minimum number of samples to bend each saw/pulse/square corner.
This creates much less aliasing.

I use it both as carrier, modulator and LFO for its own parameters (clip/skew).

The waveshape params may seem a little obtuse, but they are easy to use with visualisation
- try out by zooming in to cycle level in a soundfile editor.

Cheers,
     /rasmus


((Sorry for harping on with self-promotion, I just very humbly think that
approximately every softsynth ever made *should* have used something like this for basic waveforms,
instead of table oscils. But it wasn't practical in the 1970-80's... ))


Den 2019-08-13 kl. 05:07, skrev Steven Yi:
 > (...)
> 
> Thinking out loud: To Victor's point, I found it interesting working
> with a non-sine carrier but it was definitely easy to alias. 
 >
Thinking
> backwards, starting with a sine and working with it as an FM
> oscillator, introducing partials was like stacking the FM oscil on top
> of itself at the each partial frequency and strength.  The four
> oscillators with wavetables made me also think about banded wavetable
> synthesis ala Beauchamp/Horner/Ayers, which gave some options on how
> to approach sound design. I sort of enjoyed moving between thinking in
> FM and Additive and mixing in whether to use FM or use a 0 index and
> get just the wavetable. I suppose if the oscillators were re-written
> for PM and had feedback options it'd get really interesting.
> 
> Thanks Roger for posting about this! (And glad this code proved
> interesting to you Pete!)
> 
> 
> On Mon, Aug 12, 2019 at 10:19 PM Pete Goodeve  wrote:
>>
>> On Mon, Aug 12, 2019 at 08:02:04PM -0400, Steven Yi wrote:
>>> And I realized the initial version had a bug with gamix mixing. This
>>> version includes a fix, uses a more crystal-like patch and different
>>> tables for the foscili2 oscillators, as well as little more harmonic
>>> set of pitches in the note generator.
>>
>> Talking of mixer bugs... (:-))  Maybe there was a reason you did
>> it that way, but why do you apply the tanh limiting *before* the
>> reverb?  I've been playing with the original csd -- converting it to
>> MIDI input (not familiar with live coding) -- and I was getting
>> out-of-ranges with what seemed reasonable levels.  I moved
>> the tanhs to the output itself, and it sounds fine to me (and no
>> overranges...)  (I had already fixed the gamix addition.)
>>
>> Sounds nice with MIDI.  Will be playing more!
>>
>>          -- Pete --
>>
>> 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
> 
> 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
> 

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

Date2019-08-13 13:12
FromVictor Lazzarini
SubjectRe: [Csnd] buzz, gbuzz, Synclavier
Looks very good indeed. We should promote the use of these.

Victor Lazzarini
Dean of Arts, Celtic Studies, and Philosophy
Maynooth University
Ireland

> On 13 Aug 2019, at 12:24, rasmus ekman  wrote:
> 
> This type of FM is exactly what squinewave is intended for.
> 
> It produces variable waveforms, not as summation of sinewave partials
> (where eg a squarewave has lots of "wiggling" around the corners),
> but more like a line drawing with rounded corners.
> 
> Also, with higher frequencies, the squinewave waveform "degrades" to sinewave,
> because there's a minimum number of samples to bend each saw/pulse/square corner.
> This creates much less aliasing.
> 
> I use it both as carrier, modulator and LFO for its own parameters (clip/skew).
> 
> The waveshape params may seem a little obtuse, but they are easy to use with visualisation
> - try out by zooming in to cycle level in a soundfile editor.
> 
> Cheers,
>    /rasmus
> 
> 
> ((Sorry for harping on with self-promotion, I just very humbly think that
> approximately every softsynth ever made *should* have used something like this for basic waveforms,
> instead of table oscils. But it wasn't practical in the 1970-80's... ))
> 
> 
>> Den 2019-08-13 kl. 05:07, skrev Steven Yi:
>> > (...)
>> Thinking out loud: To Victor's point, I found it interesting working
>> with a non-sine carrier but it was definitely easy to alias. 
> >
> Thinking
>> backwards, starting with a sine and working with it as an FM
>> oscillator, introducing partials was like stacking the FM oscil on top
>> of itself at the each partial frequency and strength.  The four
>> oscillators with wavetables made me also think about banded wavetable
>> synthesis ala Beauchamp/Horner/Ayers, which gave some options on how
>> to approach sound design. I sort of enjoyed moving between thinking in
>> FM and Additive and mixing in whether to use FM or use a 0 index and
>> get just the wavetable. I suppose if the oscillators were re-written
>> for PM and had feedback options it'd get really interesting.
>> Thanks Roger for posting about this! (And glad this code proved
>> interesting to you Pete!)
>>> On Mon, Aug 12, 2019 at 10:19 PM Pete Goodeve  wrote:
>>> 
>>>> On Mon, Aug 12, 2019 at 08:02:04PM -0400, Steven Yi wrote:
>>>> And I realized the initial version had a bug with gamix mixing. This
>>>> version includes a fix, uses a more crystal-like patch and different
>>>> tables for the foscili2 oscillators, as well as little more harmonic
>>>> set of pitches in the note generator.
>>> 
>>> Talking of mixer bugs... (:-))  Maybe there was a reason you did
>>> it that way, but why do you apply the tanh limiting *before* the
>>> reverb?  I've been playing with the original csd -- converting it to
>>> MIDI input (not familiar with live coding) -- and I was getting
>>> out-of-ranges with what seemed reasonable levels.  I moved
>>> the tanhs to the output itself, and it sounds fine to me (and no
>>> overranges...)  (I had already fixed the gamix addition.)
>>> 
>>> Sounds nice with MIDI.  Will be playing more!
>>> 
>>>         -- Pete --
>>> 
>>> 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
>> 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
> 
> 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

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

Date2019-08-13 15:08
FromRoger Kelly
SubjectRe: [Csnd] buzz, gbuzz, Synclavier
Thanks all for the great advice! Especially Steven! Can't wait to see the implementation to understand the method.  I have a lofty goal of building out a Synclavier emulation on a Raspberry Pi and embedded in a small cheap Yamaha keyboard from the 80s converted to a Midi controller.

Rasmus,
How would I produce a squinewave in Csound?


On Tue, Aug 13, 2019 at 7:12 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
Looks very good indeed. We should promote the use of these.

Victor Lazzarini
Dean of Arts, Celtic Studies, and Philosophy
Maynooth University
Ireland

> On 13 Aug 2019, at 12:24, rasmus ekman <re@abc.se> wrote:
>
> This type of FM is exactly what squinewave is intended for.
>
> It produces variable waveforms, not as summation of sinewave partials
> (where eg a squarewave has lots of "wiggling" around the corners),
> but more like a line drawing with rounded corners.
>
> Also, with higher frequencies, the squinewave waveform "degrades" to sinewave,
> because there's a minimum number of samples to bend each saw/pulse/square corner.
> This creates much less aliasing.
>
> I use it both as carrier, modulator and LFO for its own parameters (clip/skew).
>
> The waveshape params may seem a little obtuse, but they are easy to use with visualisation
> - try out by zooming in to cycle level in a soundfile editor.
>
> Cheers,
>    /rasmus
>
>
> ((Sorry for harping on with self-promotion, I just very humbly think that
> approximately every softsynth ever made *should* have used something like this for basic waveforms,
> instead of table oscils. But it wasn't practical in the 1970-80's... ))
>
>
>> Den 2019-08-13 kl. 05:07, skrev Steven Yi:
>> > (...)
>> Thinking out loud: To Victor's point, I found it interesting working
>> with a non-sine carrier but it was definitely easy to alias.
> >
> Thinking
>> backwards, starting with a sine and working with it as an FM
>> oscillator, introducing partials was like stacking the FM oscil on top
>> of itself at the each partial frequency and strength.  The four
>> oscillators with wavetables made me also think about banded wavetable
>> synthesis ala Beauchamp/Horner/Ayers, which gave some options on how
>> to approach sound design. I sort of enjoyed moving between thinking in
>> FM and Additive and mixing in whether to use FM or use a 0 index and
>> get just the wavetable. I suppose if the oscillators were re-written
>> for PM and had feedback options it'd get really interesting.
>> Thanks Roger for posting about this! (And glad this code proved
>> interesting to you Pete!)
>>> On Mon, Aug 12, 2019 at 10:19 PM Pete Goodeve <pete.goodeve@computer.org> wrote:
>>>
>>>> On Mon, Aug 12, 2019 at 08:02:04PM -0400, Steven Yi wrote:
>>>> And I realized the initial version had a bug with gamix mixing. This
>>>> version includes a fix, uses a more crystal-like patch and different
>>>> tables for the foscili2 oscillators, as well as little more harmonic
>>>> set of pitches in the note generator.
>>>
>>> Talking of mixer bugs... (:-))  Maybe there was a reason you did
>>> it that way, but why do you apply the tanh limiting *before* the
>>> reverb?  I've been playing with the original csd -- converting it to
>>> MIDI input (not familiar with live coding) -- and I was getting
>>> out-of-ranges with what seemed reasonable levels.  I moved
>>> the tanhs to the output itself, and it sounds fine to me (and no
>>> overranges...)  (I had already fixed the gamix addition.)
>>>
>>> Sounds nice with MIDI.  Will be playing more!
>>>
>>>         -- Pete --
>>>
>>> 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
>> 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
>
> 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

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
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

Date2019-08-13 17:25
FromSteven Yi
Subject[Csnd] Squinewave
Hi Rasmus,

(starting a new thread)

I've experimented just a bit with squinewave but I always found it a
bit dark in tone, like the bandlimiting cutoff was quite low?  Any
hints/examples for a brighter sound?

As an aside: I haven't done any looking at the implementation, but the
cosine processing seems similar to BLEP and BLAMP to smooth out wave
forms at discontinuities. If so, I'd be curious to see if there'd be
any interesting audio possibilities of using the same oscillator code
but with BLEP or BLAMP.

I did try some FM just now with two squinewaves and got some unexpected results:

instr S1
  ipch = 440
  amod squinewave a(ipch), a(0), a(0), 0
  acar squinewave a(ipch) + amod * expon:a(ipch * 4, p3, ipch), a(0), a(0), 0

  ;amod oscili 1, ipch
  ;acar oscili 1, ipch + amod * expon:a(ipch * 4, p3, ipch)

  out(acar, acar)

endin

schedule("S1", 0, 4)

Using 0,0 for clip,skew, I get a fairly different sound than the
oscili pair.  Not sure, but am I missing something?

I can't say I have much of a handle on squinewave yet, but the manual
example is certainly inspiring.

Thanks!
steven





On Tue, Aug 13, 2019 at 7:23 AM rasmus ekman  wrote:
>
> This type of FM is exactly what squinewave is intended for.
>
> It produces variable waveforms, not as summation of sinewave partials
> (where eg a squarewave has lots of "wiggling" around the corners),
> but more like a line drawing with rounded corners.
>
> Also, with higher frequencies, the squinewave waveform "degrades" to sinewave,
> because there's a minimum number of samples to bend each saw/pulse/square corner.
> This creates much less aliasing.
>
> I use it both as carrier, modulator and LFO for its own parameters (clip/skew).
>
> The waveshape params may seem a little obtuse, but they are easy to use with visualisation
> - try out by zooming in to cycle level in a soundfile editor.
>
> Cheers,
>      /rasmus
>
>
> ((Sorry for harping on with self-promotion, I just very humbly think that
> approximately every softsynth ever made *should* have used something like this for basic waveforms,
> instead of table oscils. But it wasn't practical in the 1970-80's... ))
>
>
> Den 2019-08-13 kl. 05:07, skrev Steven Yi:
>  > (...)
> >
> > Thinking out loud: To Victor's point, I found it interesting working
> > with a non-sine carrier but it was definitely easy to alias.
>  >
> Thinking
> > backwards, starting with a sine and working with it as an FM
> > oscillator, introducing partials was like stacking the FM oscil on top
> > of itself at the each partial frequency and strength.  The four
> > oscillators with wavetables made me also think about banded wavetable
> > synthesis ala Beauchamp/Horner/Ayers, which gave some options on how
> > to approach sound design. I sort of enjoyed moving between thinking in
> > FM and Additive and mixing in whether to use FM or use a 0 index and
> > get just the wavetable. I suppose if the oscillators were re-written
> > for PM and had feedback options it'd get really interesting.
> >
> > Thanks Roger for posting about this! (And glad this code proved
> > interesting to you Pete!)
> >
> >
> > On Mon, Aug 12, 2019 at 10:19 PM Pete Goodeve  wrote:
> >>
> >> On Mon, Aug 12, 2019 at 08:02:04PM -0400, Steven Yi wrote:
> >>> And I realized the initial version had a bug with gamix mixing. This
> >>> version includes a fix, uses a more crystal-like patch and different
> >>> tables for the foscili2 oscillators, as well as little more harmonic
> >>> set of pitches in the note generator.
> >>
> >> Talking of mixer bugs... (:-))  Maybe there was a reason you did
> >> it that way, but why do you apply the tanh limiting *before* the
> >> reverb?  I've been playing with the original csd -- converting it to
> >> MIDI input (not familiar with live coding) -- and I was getting
> >> out-of-ranges with what seemed reasonable levels.  I moved
> >> the tanhs to the output itself, and it sounds fine to me (and no
> >> overranges...)  (I had already fixed the gamix addition.)
> >>
> >> Sounds nice with MIDI.  Will be playing more!
> >>
> >>          -- Pete --
> >>
> >> 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
> >
> > 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
> >
>
> 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

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

Date2019-08-13 18:20
Fromrasmus ekman
SubjectRe: [Csnd] Squinewave
Hi,

Yes, probably because default iMinSweep is sr/3000, this is quite low.
(14 samples rounding at 44.1kHz => degrades to sinewave at 28 samples/cycle = 1575 Hz)
Set any value from 4 and up. I use 7-15 a lot.

Also recommend using different iMinSweep value for each squinewave.
If all are the same, the spectrum will have weak signal in some frequency bands
(also a result of the fixed rounding, this is the weakness of algorithm - nothing is perfect...)

So the default is a little muffled as you say,
I wanted it to be quite hard to alias, but may have rode that pony too far.

Perhaps we're also unused to FM that *doesn't* blow most of its energy near Nyquist frequency ;)

Regards,

     /rasmus


Den 2019-08-13 kl. 18:25, skrev Steven Yi:
> Hi Rasmus,
> 
> (starting a new thread)
> 
> I've experimented just a bit with squinewave but I always found it a
> bit dark in tone, like the bandlimiting cutoff was quite low?  Any
> hints/examples for a brighter sound?
> 
> As an aside: I haven't done any looking at the implementation, but the
> cosine processing seems similar to BLEP and BLAMP to smooth out wave
> forms at discontinuities. If so, I'd be curious to see if there'd be
> any interesting audio possibilities of using the same oscillator code
> but with BLEP or BLAMP.
> 
> I did try some FM just now with two squinewaves and got some unexpected results:
> 
> instr S1
>    ipch = 440
>    amod squinewave a(ipch), a(0), a(0), 0
>    acar squinewave a(ipch) + amod * expon:a(ipch * 4, p3, ipch), a(0), a(0), 0
> 
>    ;amod oscili 1, ipch
>    ;acar oscili 1, ipch + amod * expon:a(ipch * 4, p3, ipch)
> 
>    out(acar, acar)
> 
> endin
> 
> schedule("S1", 0, 4)
> 
> Using 0,0 for clip,skew, I get a fairly different sound than the
> oscili pair.  Not sure, but am I missing something?
> 
> I can't say I have much of a handle on squinewave yet, but the manual
> example is certainly inspiring.
> 
> Thanks!
> steven
> 
> 
> 
> 
> 
> On Tue, Aug 13, 2019 at 7:23 AM rasmus ekman  wrote:
>>
>> This type of FM is exactly what squinewave is intended for.
>>
>> It produces variable waveforms, not as summation of sinewave partials
>> (where eg a squarewave has lots of "wiggling" around the corners),
>> but more like a line drawing with rounded corners.
>>
>> Also, with higher frequencies, the squinewave waveform "degrades" to sinewave,
>> because there's a minimum number of samples to bend each saw/pulse/square corner.
>> This creates much less aliasing.
>>
>> I use it both as carrier, modulator and LFO for its own parameters (clip/skew).
>>
>> The waveshape params may seem a little obtuse, but they are easy to use with visualisation
>> - try out by zooming in to cycle level in a soundfile editor.
>>
>> Cheers,
>>       /rasmus
>>
>>
>> ((Sorry for harping on with self-promotion, I just very humbly think that
>> approximately every softsynth ever made *should* have used something like this for basic waveforms,
>> instead of table oscils. But it wasn't practical in the 1970-80's... ))
>>
>>
>> Den 2019-08-13 kl. 05:07, skrev Steven Yi:
>>   > (...)
>>>
>>> Thinking out loud: To Victor's point, I found it interesting working
>>> with a non-sine carrier but it was definitely easy to alias.
>>   >
>> Thinking
>>> backwards, starting with a sine and working with it as an FM
>>> oscillator, introducing partials was like stacking the FM oscil on top
>>> of itself at the each partial frequency and strength.  The four
>>> oscillators with wavetables made me also think about banded wavetable
>>> synthesis ala Beauchamp/Horner/Ayers, which gave some options on how
>>> to approach sound design. I sort of enjoyed moving between thinking in
>>> FM and Additive and mixing in whether to use FM or use a 0 index and
>>> get just the wavetable. I suppose if the oscillators were re-written
>>> for PM and had feedback options it'd get really interesting.
>>>
>>> Thanks Roger for posting about this! (And glad this code proved
>>> interesting to you Pete!)
>>>
>>>
>>> On Mon, Aug 12, 2019 at 10:19 PM Pete Goodeve  wrote:
>>>>
>>>> On Mon, Aug 12, 2019 at 08:02:04PM -0400, Steven Yi wrote:
>>>>> And I realized the initial version had a bug with gamix mixing. This
>>>>> version includes a fix, uses a more crystal-like patch and different
>>>>> tables for the foscili2 oscillators, as well as little more harmonic
>>>>> set of pitches in the note generator.
>>>>
>>>> Talking of mixer bugs... (:-))  Maybe there was a reason you did
>>>> it that way, but why do you apply the tanh limiting *before* the
>>>> reverb?  I've been playing with the original csd -- converting it to
>>>> MIDI input (not familiar with live coding) -- and I was getting
>>>> out-of-ranges with what seemed reasonable levels.  I moved
>>>> the tanhs to the output itself, and it sounds fine to me (and no
>>>> overranges...)  (I had already fixed the gamix addition.)
>>>>
>>>> Sounds nice with MIDI.  Will be playing more!
>>>>
>>>>           -- Pete --
>>>>
>>>> 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
>>>
>>> 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
>>>
>>
>> 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
> 
> 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
> 

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

Date2019-08-13 19:07
FromSteven Yi
SubjectRe: [Csnd] Squinewave
Hm, I'm still not sure why the FM setup got such different results at
0,0 than the oscili pair, but modifying the iMinSweep to 4 _finally_
opened up the sound for me. That lead to some *really* nice timbres,
at least with a single squinewave here.  I worked the clip and skew
params (expon's in the S1 instrument below) in a live code session and
pasted the example below.  (Can cut/paste into live.csound.com to
test.)  Going to have to put together a few instruments based on this
now to include with livecode.orc. :)   (And a Blue instrument shortly
too!)

I'll probably have a few more questions when I practice with this a
bit more.  Thanks for the tips!

Steven


;; [start code]

start("ReverbMixer")

instr S1
  ipch = p4
  asig squinewave a(ipch), expon:a(0.9, p3, 0.5), expon:a(1, p3, 0.1), 0, 4
  asig = declick(asig) * p5

  pan_verb_mix(asig, 0.5, 0.3)
endin

instr P1
 hexplay("f",
      "S1", p3,
      in_scale(0, (p4 << (p4 &0x7)) % 19 % 5),
      fade_in(5, 128) * ampdbfs(-12))

  hexplay("f",
      "S1", p3,
      in_scale(0, 2 + (p4 << (p4 &0x7)) % 19 % 5),
      fade_in(6, 128) * ampdbfs(-12))

  hexplay("f",
      "S1", p3,
      in_scale(1, ((p4 & 0xffff) << (p4 &0x17)) % 31 % 11),
      fade_in(7, 128) * ampdbfs(-12))

  hexplay("f",
      "S1", p3,
      in_scale(1, 2 + ((p4 & 0xffff) << (p4 &0x17)) % 31 % 11),
      fade_in(7, 128) * ampdbfs(-12))

endin

;; [end code]

On Tue, Aug 13, 2019 at 1:20 PM rasmus ekman  wrote:
>
> Hi,
>
> Yes, probably because default iMinSweep is sr/3000, this is quite low.
> (14 samples rounding at 44.1kHz => degrades to sinewave at 28 samples/cycle = 1575 Hz)
> Set any value from 4 and up. I use 7-15 a lot.
>
> Also recommend using different iMinSweep value for each squinewave.
> If all are the same, the spectrum will have weak signal in some frequency bands
> (also a result of the fixed rounding, this is the weakness of algorithm - nothing is perfect...)
>
> So the default is a little muffled as you say,
> I wanted it to be quite hard to alias, but may have rode that pony too far.
>
> Perhaps we're also unused to FM that *doesn't* blow most of its energy near Nyquist frequency ;)
>
> Regards,
>
>      /rasmus
>
>
> Den 2019-08-13 kl. 18:25, skrev Steven Yi:
> > Hi Rasmus,
> >
> > (starting a new thread)
> >
> > I've experimented just a bit with squinewave but I always found it a
> > bit dark in tone, like the bandlimiting cutoff was quite low?  Any
> > hints/examples for a brighter sound?
> >
> > As an aside: I haven't done any looking at the implementation, but the
> > cosine processing seems similar to BLEP and BLAMP to smooth out wave
> > forms at discontinuities. If so, I'd be curious to see if there'd be
> > any interesting audio possibilities of using the same oscillator code
> > but with BLEP or BLAMP.
> >
> > I did try some FM just now with two squinewaves and got some unexpected results:
> >
> > instr S1
> >    ipch = 440
> >    amod squinewave a(ipch), a(0), a(0), 0
> >    acar squinewave a(ipch) + amod * expon:a(ipch * 4, p3, ipch), a(0), a(0), 0
> >
> >    ;amod oscili 1, ipch
> >    ;acar oscili 1, ipch + amod * expon:a(ipch * 4, p3, ipch)
> >
> >    out(acar, acar)
> >
> > endin
> >
> > schedule("S1", 0, 4)
> >
> > Using 0,0 for clip,skew, I get a fairly different sound than the
> > oscili pair.  Not sure, but am I missing something?
> >
> > I can't say I have much of a handle on squinewave yet, but the manual
> > example is certainly inspiring.
> >
> > Thanks!
> > steven
> >
> >
> >
> >
> >
> > On Tue, Aug 13, 2019 at 7:23 AM rasmus ekman  wrote:
> >>
> >> This type of FM is exactly what squinewave is intended for.
> >>
> >> It produces variable waveforms, not as summation of sinewave partials
> >> (where eg a squarewave has lots of "wiggling" around the corners),
> >> but more like a line drawing with rounded corners.
> >>
> >> Also, with higher frequencies, the squinewave waveform "degrades" to sinewave,
> >> because there's a minimum number of samples to bend each saw/pulse/square corner.
> >> This creates much less aliasing.
> >>
> >> I use it both as carrier, modulator and LFO for its own parameters (clip/skew).
> >>
> >> The waveshape params may seem a little obtuse, but they are easy to use with visualisation
> >> - try out by zooming in to cycle level in a soundfile editor.
> >>
> >> Cheers,
> >>       /rasmus
> >>
> >>
> >> ((Sorry for harping on with self-promotion, I just very humbly think that
> >> approximately every softsynth ever made *should* have used something like this for basic waveforms,
> >> instead of table oscils. But it wasn't practical in the 1970-80's... ))
> >>
> >>
> >> Den 2019-08-13 kl. 05:07, skrev Steven Yi:
> >>   > (...)
> >>>
> >>> Thinking out loud: To Victor's point, I found it interesting working
> >>> with a non-sine carrier but it was definitely easy to alias.
> >>   >
> >> Thinking
> >>> backwards, starting with a sine and working with it as an FM
> >>> oscillator, introducing partials was like stacking the FM oscil on top
> >>> of itself at the each partial frequency and strength.  The four
> >>> oscillators with wavetables made me also think about banded wavetable
> >>> synthesis ala Beauchamp/Horner/Ayers, which gave some options on how
> >>> to approach sound design. I sort of enjoyed moving between thinking in
> >>> FM and Additive and mixing in whether to use FM or use a 0 index and
> >>> get just the wavetable. I suppose if the oscillators were re-written
> >>> for PM and had feedback options it'd get really interesting.
> >>>
> >>> Thanks Roger for posting about this! (And glad this code proved
> >>> interesting to you Pete!)
> >>>
> >>>
> >>> On Mon, Aug 12, 2019 at 10:19 PM Pete Goodeve  wrote:
> >>>>
> >>>> On Mon, Aug 12, 2019 at 08:02:04PM -0400, Steven Yi wrote:
> >>>>> And I realized the initial version had a bug with gamix mixing. This
> >>>>> version includes a fix, uses a more crystal-like patch and different
> >>>>> tables for the foscili2 oscillators, as well as little more harmonic
> >>>>> set of pitches in the note generator.
> >>>>
> >>>> Talking of mixer bugs... (:-))  Maybe there was a reason you did
> >>>> it that way, but why do you apply the tanh limiting *before* the
> >>>> reverb?  I've been playing with the original csd -- converting it to
> >>>> MIDI input (not familiar with live coding) -- and I was getting
> >>>> out-of-ranges with what seemed reasonable levels.  I moved
> >>>> the tanhs to the output itself, and it sounds fine to me (and no
> >>>> overranges...)  (I had already fixed the gamix addition.)
> >>>>
> >>>> Sounds nice with MIDI.  Will be playing more!
> >>>>
> >>>>           -- Pete --
> >>>>
> >>>> 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
> >>>
> >>> 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
> >>>
> >>
> >> 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
> >
> > 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
> >
>
> 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

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

Date2019-09-03 18:21
FromDavid Bowen
SubjectRe: [Csnd] Squinewave
Rasmus,

   The man page for squinewave indicates that negative frequencies are not implemented. Has that changed? FM with any modulation index greater than 1 should produce negative frequencies. I've tried Steven's example and it worked fine. I'm looking to squine-ify the DX7 orchestras, but wanted to be sure there wasn't a potential problem awaiting.

David Bowen

On Tue, Aug 13, 2019 at 1:07 PM Steven Yi <stevenyi@gmail.com> wrote:
Hm, I'm still not sure why the FM setup got such different results at
0,0 than the oscili pair, but modifying the iMinSweep to 4 _finally_
opened up the sound for me. That lead to some *really* nice timbres,
at least with a single squinewave here.  I worked the clip and skew
params (expon's in the S1 instrument below) in a live code session and
pasted the example below.  (Can cut/paste into live.csound.com to
test.)  Going to have to put together a few instruments based on this
now to include with livecode.orc. :)   (And a Blue instrument shortly
too!)

I'll probably have a few more questions when I practice with this a
bit more.  Thanks for the tips!

Steven


;; [start code]

start("ReverbMixer")

instr S1
  ipch = p4
  asig squinewave a(ipch), expon:a(0.9, p3, 0.5), expon:a(1, p3, 0.1), 0, 4
  asig = declick(asig) * p5

  pan_verb_mix(asig, 0.5, 0.3)
endin

instr P1
 hexplay("f",
      "S1", p3,
      in_scale(0, (p4 << (p4 &0x7)) % 19 % 5),
      fade_in(5, 128) * ampdbfs(-12))

  hexplay("f",
      "S1", p3,
      in_scale(0, 2 + (p4 << (p4 &0x7)) % 19 % 5),
      fade_in(6, 128) * ampdbfs(-12))

  hexplay("f",
      "S1", p3,
      in_scale(1, ((p4 & 0xffff) << (p4 &0x17)) % 31 % 11),
      fade_in(7, 128) * ampdbfs(-12))

  hexplay("f",
      "S1", p3,
      in_scale(1, 2 + ((p4 & 0xffff) << (p4 &0x17)) % 31 % 11),
      fade_in(7, 128) * ampdbfs(-12))

endin

;; [end code]

On Tue, Aug 13, 2019 at 1:20 PM rasmus ekman <re@abc.se> wrote:
>
> Hi,
>
> Yes, probably because default iMinSweep is sr/3000, this is quite low.
> (14 samples rounding at 44.1kHz => degrades to sinewave at 28 samples/cycle = 1575 Hz)
> Set any value from 4 and up. I use 7-15 a lot.
>
> Also recommend using different iMinSweep value for each squinewave.
> If all are the same, the spectrum will have weak signal in some frequency bands
> (also a result of the fixed rounding, this is the weakness of algorithm - nothing is perfect...)
>
> So the default is a little muffled as you say,
> I wanted it to be quite hard to alias, but may have rode that pony too far.
>
> Perhaps we're also unused to FM that *doesn't* blow most of its energy near Nyquist frequency ;)
>
> Regards,
>
>      /rasmus
>
>
> Den 2019-08-13 kl. 18:25, skrev Steven Yi:
> > Hi Rasmus,
> >
> > (starting a new thread)
> >
> > I've experimented just a bit with squinewave but I always found it a
> > bit dark in tone, like the bandlimiting cutoff was quite low?  Any
> > hints/examples for a brighter sound?
> >
> > As an aside: I haven't done any looking at the implementation, but the
> > cosine processing seems similar to BLEP and BLAMP to smooth out wave
> > forms at discontinuities. If so, I'd be curious to see if there'd be
> > any interesting audio possibilities of using the same oscillator code
> > but with BLEP or BLAMP.
> >
> > I did try some FM just now with two squinewaves and got some unexpected results:
> >
> > instr S1
> >    ipch = 440
> >    amod squinewave a(ipch), a(0), a(0), 0
> >    acar squinewave a(ipch) + amod * expon:a(ipch * 4, p3, ipch), a(0), a(0), 0
> >
> >    ;amod oscili 1, ipch
> >    ;acar oscili 1, ipch + amod * expon:a(ipch * 4, p3, ipch)
> >
> >    out(acar, acar)
> >
> > endin
> >
> > schedule("S1", 0, 4)
> >
> > Using 0,0 for clip,skew, I get a fairly different sound than the
> > oscili pair.  Not sure, but am I missing something?
> >
> > I can't say I have much of a handle on squinewave yet, but the manual
> > example is certainly inspiring.
> >
> > Thanks!
> > steven
> >
> >
> >
> >
> >
> > On Tue, Aug 13, 2019 at 7:23 AM rasmus ekman <re@abc.se> wrote:
> >>
> >> This type of FM is exactly what squinewave is intended for.
> >>
> >> It produces variable waveforms, not as summation of sinewave partials
> >> (where eg a squarewave has lots of "wiggling" around the corners),
> >> but more like a line drawing with rounded corners.
> >>
> >> Also, with higher frequencies, the squinewave waveform "degrades" to sinewave,
> >> because there's a minimum number of samples to bend each saw/pulse/square corner.
> >> This creates much less aliasing.
> >>
> >> I use it both as carrier, modulator and LFO for its own parameters (clip/skew).
> >>
> >> The waveshape params may seem a little obtuse, but they are easy to use with visualisation
> >> - try out by zooming in to cycle level in a soundfile editor.
> >>
> >> Cheers,
> >>       /rasmus
> >>
> >>
> >> ((Sorry for harping on with self-promotion, I just very humbly think that
> >> approximately every softsynth ever made *should* have used something like this for basic waveforms,
> >> instead of table oscils. But it wasn't practical in the 1970-80's... ))
> >>
> >>
> >> Den 2019-08-13 kl. 05:07, skrev Steven Yi:
> >>   > (...)
> >>>
> >>> Thinking out loud: To Victor's point, I found it interesting working
> >>> with a non-sine carrier but it was definitely easy to alias.
> >>   >
> >> Thinking
> >>> backwards, starting with a sine and working with it as an FM
> >>> oscillator, introducing partials was like stacking the FM oscil on top
> >>> of itself at the each partial frequency and strength.  The four
> >>> oscillators with wavetables made me also think about banded wavetable
> >>> synthesis ala Beauchamp/Horner/Ayers, which gave some options on how
> >>> to approach sound design. I sort of enjoyed moving between thinking in
> >>> FM and Additive and mixing in whether to use FM or use a 0 index and
> >>> get just the wavetable. I suppose if the oscillators were re-written
> >>> for PM and had feedback options it'd get really interesting.
> >>>
> >>> Thanks Roger for posting about this! (And glad this code proved
> >>> interesting to you Pete!)
> >>>
> >>>
> >>> On Mon, Aug 12, 2019 at 10:19 PM Pete Goodeve <pete.goodeve@computer.org> wrote:
> >>>>
> >>>> On Mon, Aug 12, 2019 at 08:02:04PM -0400, Steven Yi wrote:
> >>>>> And I realized the initial version had a bug with gamix mixing. This
> >>>>> version includes a fix, uses a more crystal-like patch and different
> >>>>> tables for the foscili2 oscillators, as well as little more harmonic
> >>>>> set of pitches in the note generator.
> >>>>
> >>>> Talking of mixer bugs... (:-))  Maybe there was a reason you did
> >>>> it that way, but why do you apply the tanh limiting *before* the
> >>>> reverb?  I've been playing with the original csd -- converting it to
> >>>> MIDI input (not familiar with live coding) -- and I was getting
> >>>> out-of-ranges with what seemed reasonable levels.  I moved
> >>>> the tanhs to the output itself, and it sounds fine to me (and no
> >>>> overranges...)  (I had already fixed the gamix addition.)
> >>>>
> >>>> Sounds nice with MIDI.  Will be playing more!
> >>>>
> >>>>           -- Pete --
> >>>>
> >>>> 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
> >>>
> >>> 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
> >>>
> >>
> >> 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
> >
> > 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
> >
>
> 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

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
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

Date2019-09-03 21:55
Fromrasmus ekman
SubjectRe: [Csnd] Squinewave
No, nothing has changed. Frequency uses positive value.

I tested both ways but landed in preferring that low is low. It's really a toss-up, depending how you use it.
Either way you can control the inputs to get what you want.

Internally, the control logic is too complicated to handle negative phase increments.

But if internal frequency instead had used abs(freq) value we could simulate the output:
Flip the sign on aSkew AND output (1 - aOut), that should do it.
It's a possible update, for sure.

I thought about it but didn't think it was rewarding enough to get into even more hassle.

There's way more regret that it doesn't handle line segments, so a proper triangle (or exactly-saw) waveform
is not supported.

So this could be a nice project for someone who likes to fiddle the wiggles a lot.

(like, a lot. I rewrote the damn thing so many times to make it smooth in all situations.
If you detect an element of desperate fatigue it may not be entirely figmental...)

Cheers,
     /rasmus


Den 2019-09-03 kl. 19:21, skrev David Bowen:
> Rasmus,
> 
>     The man page for squinewave indicates that negative frequencies are not implemented. Has that changed? FM with any modulation index greater than 1 should produce negative frequencies. I've tried Steven's example and it worked fine. I'm looking to squine-ify the DX7 orchestras, but wanted to be sure there wasn't a potential problem awaiting.
> 
> David Bowen
> 
> On Tue, Aug 13, 2019 at 1:07 PM Steven Yi > wrote:
> 
>     Hm, I'm still not sure why the FM setup got such different results at
>     0,0 than the oscili pair, but modifying the iMinSweep to 4 _finally_
>     opened up the sound for me. That lead to some *really* nice timbres,
>     at least with a single squinewave here.  I worked the clip and skew
>     params (expon's in the S1 instrument below) in a live code session and
>     pasted the example below.  (Can cut/paste into live.csound.com  to
>     test.)  Going to have to put together a few instruments based on this
>     now to include with livecode.orc. :)   (And a Blue instrument shortly
>     too!)
> 
>     I'll probably have a few more questions when I practice with this a
>     bit more.  Thanks for the tips!
> 
>     Steven
> 
> 
>     ;; [start code]
> 
>     start("ReverbMixer")
> 
>     instr S1
>        ipch = p4
>        asig squinewave a(ipch), expon:a(0.9, p3, 0.5), expon:a(1, p3, 0.1), 0, 4
>        asig = declick(asig) * p5
> 
>        pan_verb_mix(asig, 0.5, 0.3)
>     endin
> 
>     instr P1
>       hexplay("f",
>            "S1", p3,
>            in_scale(0, (p4 << (p4 &0x7)) % 19 % 5),
>            fade_in(5, 128) * ampdbfs(-12))
> 
>        hexplay("f",
>            "S1", p3,
>            in_scale(0, 2 + (p4 << (p4 &0x7)) % 19 % 5),
>            fade_in(6, 128) * ampdbfs(-12))
> 
>        hexplay("f",
>            "S1", p3,
>            in_scale(1, ((p4 & 0xffff) << (p4 &0x17)) % 31 % 11),
>            fade_in(7, 128) * ampdbfs(-12))
> 
>        hexplay("f",
>            "S1", p3,
>            in_scale(1, 2 + ((p4 & 0xffff) << (p4 &0x17)) % 31 % 11),
>            fade_in(7, 128) * ampdbfs(-12))
> 
>     endin
> 
>     ;; [end code]
> 
>     On Tue, Aug 13, 2019 at 1:20 PM rasmus ekman > wrote:
>      >
>      > Hi,
>      >
>      > Yes, probably because default iMinSweep is sr/3000, this is quite low.
>      > (14 samples rounding at 44.1kHz => degrades to sinewave at 28 samples/cycle = 1575 Hz)
>      > Set any value from 4 and up. I use 7-15 a lot.
>      >
>      > Also recommend using different iMinSweep value for each squinewave.
>      > If all are the same, the spectrum will have weak signal in some frequency bands
>      > (also a result of the fixed rounding, this is the weakness of algorithm - nothing is perfect...)
>      >
>      > So the default is a little muffled as you say,
>      > I wanted it to be quite hard to alias, but may have rode that pony too far.
>      >
>      > Perhaps we're also unused to FM that *doesn't* blow most of its energy near Nyquist frequency ;)
>      >
>      > Regards,
>      >
>      >      /rasmus
>      >
>      >
>      > Den 2019-08-13 kl. 18:25, skrev Steven Yi:
>      > > Hi Rasmus,
>      > >
>      > > (starting a new thread)
>      > >
>      > > I've experimented just a bit with squinewave but I always found it a
>      > > bit dark in tone, like the bandlimiting cutoff was quite low?  Any
>      > > hints/examples for a brighter sound?
>      > >
>      > > As an aside: I haven't done any looking at the implementation, but the
>      > > cosine processing seems similar to BLEP and BLAMP to smooth out wave
>      > > forms at discontinuities. If so, I'd be curious to see if there'd be
>      > > any interesting audio possibilities of using the same oscillator code
>      > > but with BLEP or BLAMP.
>      > >
>      > > I did try some FM just now with two squinewaves and got some unexpected results:
>      > >
>      > > instr S1
>      > >    ipch = 440
>      > >    amod squinewave a(ipch), a(0), a(0), 0
>      > >    acar squinewave a(ipch) + amod * expon:a(ipch * 4, p3, ipch), a(0), a(0), 0
>      > >
>      > >    ;amod oscili 1, ipch
>      > >    ;acar oscili 1, ipch + amod * expon:a(ipch * 4, p3, ipch)
>      > >
>      > >    out(acar, acar)
>      > >
>      > > endin
>      > >
>      > > schedule("S1", 0, 4)
>      > >
>      > > Using 0,0 for clip,skew, I get a fairly different sound than the
>      > > oscili pair.  Not sure, but am I missing something?
>      > >
>      > > I can't say I have much of a handle on squinewave yet, but the manual
>      > > example is certainly inspiring.
>      > >
>      > > Thanks!
>      > > steven
>      > >
>      > >
>      > >
>      > >
>      > >
>      > > On Tue, Aug 13, 2019 at 7:23 AM rasmus ekman > wrote:
>      > >>
>      > >> This type of FM is exactly what squinewave is intended for.
>      > >>
>      > >> It produces variable waveforms, not as summation of sinewave partials
>      > >> (where eg a squarewave has lots of "wiggling" around the corners),
>      > >> but more like a line drawing with rounded corners.
>      > >>
>      > >> Also, with higher frequencies, the squinewave waveform "degrades" to sinewave,
>      > >> because there's a minimum number of samples to bend each saw/pulse/square corner.
>      > >> This creates much less aliasing.
>      > >>
>      > >> I use it both as carrier, modulator and LFO for its own parameters (clip/skew).
>      > >>
>      > >> The waveshape params may seem a little obtuse, but they are easy to use with visualisation
>      > >> - try out by zooming in to cycle level in a soundfile editor.
>      > >>
>      > >> Cheers,
>      > >>       /rasmus
>      > >>
>      > >>
>      > >> ((Sorry for harping on with self-promotion, I just very humbly think that
>      > >> approximately every softsynth ever made *should* have used something like this for basic waveforms,
>      > >> instead of table oscils. But it wasn't practical in the 1970-80's... ))
>      > >>
>      > >>
>      > >> Den 2019-08-13 kl. 05:07, skrev Steven Yi:
>      > >>   > (...)
>      > >>>
>      > >>> Thinking out loud: To Victor's point, I found it interesting working
>      > >>> with a non-sine carrier but it was definitely easy to alias.
>      > >>   >
>      > >> Thinking
>      > >>> backwards, starting with a sine and working with it as an FM
>      > >>> oscillator, introducing partials was like stacking the FM oscil on top
>      > >>> of itself at the each partial frequency and strength.  The four
>      > >>> oscillators with wavetables made me also think about banded wavetable
>      > >>> synthesis ala Beauchamp/Horner/Ayers, which gave some options on how
>      > >>> to approach sound design. I sort of enjoyed moving between thinking in
>      > >>> FM and Additive and mixing in whether to use FM or use a 0 index and
>      > >>> get just the wavetable. I suppose if the oscillators were re-written
>      > >>> for PM and had feedback options it'd get really interesting.
>      > >>>
>      > >>> Thanks Roger for posting about this! (And glad this code proved
>      > >>> interesting to you Pete!)
>      > >>>
>      > >>>
>      > >>> On Mon, Aug 12, 2019 at 10:19 PM Pete Goodeve > wrote:
>      > >>>>
>      > >>>> On Mon, Aug 12, 2019 at 08:02:04PM -0400, Steven Yi wrote:
>      > >>>>> And I realized the initial version had a bug with gamix mixing. This
>      > >>>>> version includes a fix, uses a more crystal-like patch and different
>      > >>>>> tables for the foscili2 oscillators, as well as little more harmonic
>      > >>>>> set of pitches in the note generator.
>      > >>>>
>      > >>>> Talking of mixer bugs... (:-))  Maybe there was a reason you did
>      > >>>> it that way, but why do you apply the tanh limiting *before* the
>      > >>>> reverb?  I've been playing with the original csd -- converting it to
>      > >>>> MIDI input (not familiar with live coding) -- and I was getting
>      > >>>> out-of-ranges with what seemed reasonable levels.  I moved
>      > >>>> the tanhs to the output itself, and it sounds fine to me (and no
>      > >>>> overranges...)  (I had already fixed the gamix addition.)
>      > >>>>
>      > >>>> Sounds nice with MIDI.  Will be playing more!
>      > >>>>
>      > >>>>           -- Pete --
>      > >>>>
>      > >>>> 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
>      > >>>
>      > >>> 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
>      > >>>
>      > >>
>      > >> 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
>      > >
>      > > 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
>      > >
>      >
>      > 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
> 
>     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
> 
> 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

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