back to list

quasi-bandlimited sawtooth and pulse waveforms

🔗Kalle Aho <kalleaho@...>

3/26/2011 5:25:58 PM

Hi,

slightly off-topic perhaps but this might interest the microtonal Csound users and synthesists here:

http://www.csounds.com/node/1475

Kalle

🔗Aaron Krister Johnson <aaron@...>

3/27/2011 9:43:30 AM

Interesting stuff, Kalle, thanks. Not off topicat all to anyone who is
interested in warm and fat sounding waveforms in digital synthesis
paradigms... :)

I'm not sure I fully understand every bit of your text, but I understand the
general ideas behind not having foldover frequencies/aliasing (a.k.a
band-limiting the waveforms from a digital oscillator). I will try to grok
this more carfeully later--are you proposing a variation, or a brand-new
technique for avoiding aliasing?

AKJ

On Sat, Mar 26, 2011 at 7:25 PM, Kalle Aho <kalleaho@...>wrote:

> Hi,
>
> slightly off-topic perhaps but this might interest the microtonal Csound
> users and synthesists here:
>
> http://www.csounds.com/node/1475
>
> Kalle
>
>
>
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗Kalle Aho <kalleaho@...>

3/27/2011 10:47:05 AM

Hi Aaron,

I think it is a fresh idea but involves the same transforms as other
techniques e.g. integration of bandlimited impulse trains to get
sawtooth waveforms and subtraction of phase shifted sawtooths to get
pulse waves. As far as I know something called BLEP is the only other
existing technique that allows analytical integration, i.e. no
numerical integrators and no DC blocking filters needed. I'm not sure
if other techniques have the free lunch low pass filter feature
though.

The basic idea is just this: one period of the impulse train is
composed of one sin^n window and some silent "dead time" after that.
This whole thing is offset so that the integration gives a repeating
sawtooth wave. The result can also be DC corrected without filters.

The window acts like a low pass filter but all filtering is done
analytically in continuous-time. You can think of it as an analog
filter, only an imaginary one because the result can be directly
computed.

:)

Some other windows could be used, I chose the sin^n window for
mathematical reasons:it is finite (you don't have to truncate it),
has predictable spectral properties (the main lobe goes to zero at
n/2+1) and because it can be analytically integrated.

see

http://en.wikipedia.org/wiki/Window_function

The technique is quasi-bandlimited in the same sense that FM
synthesis is: the aliased components are theoretically there but
attenuated to inaudibility.

Kalle

--- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...> wrote:
>
> Interesting stuff, Kalle, thanks. Not off topicat all to anyone who is
> interested in warm and fat sounding waveforms in digital synthesis
> paradigms... :)
>
> I'm not sure I fully understand every bit of your text, but I understand the
> general ideas behind not having foldover frequencies/aliasing (a.k.a
> band-limiting the waveforms from a digital oscillator). I will try to grok
> this more carfeully later--are you proposing a variation, or a brand-new
> technique for avoiding aliasing?
>
> AKJ

🔗Kalle Aho <kalleaho@...>

3/27/2011 3:19:17 PM

--- In MakeMicroMusic@yahoogroups.com, "Kalle Aho" <kalleaho@...> wrote:
> As far as I know something called BLEP is the only other
> existing technique that allows analytical integration, i.e. no
> numerical integrators and no DC blocking filters needed.

PolyBLEP to be exact. I guess my method could be seen as a form of
BLEP.

Kalle

🔗Kalle Aho <kalleaho@...>

3/28/2011 2:57:12 PM

Aaron (and Cam),

the CSound programs can be simplified further, I got rid of the DC correction part. Look at my comment at

http://www.csounds.com/node/1475

Kalle

--- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...> wrote:
>
> Interesting stuff, Kalle, thanks. Not off topicat all to anyone who is
> interested in warm and fat sounding waveforms in digital synthesis
> paradigms... :)
>
> I'm not sure I fully understand every bit of your text, but I understand the
> general ideas behind not having foldover frequencies/aliasing (a.k.a
> band-limiting the waveforms from a digital oscillator). I will try to grok
> this more carfeully later--are you proposing a variation, or a brand-new
> technique for avoiding aliasing?
>
> AKJ
>
> On Sat, Mar 26, 2011 at 7:25 PM, Kalle Aho <kalleaho@...>wrote:
>
> > Hi,
> >
> > slightly off-topic perhaps but this might interest the microtonal Csound
> > users and synthesists here:
> >
> > http://www.csounds.com/node/1475
> >
> > Kalle
> >
> >
> >
> >
> >
> >
> >
> > ------------------------------------
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
>
>
> --
> Aaron Krister Johnson
> http://www.akjmusic.com
> http://www.untwelve.org
>
>
> [Non-text portions of this message have been removed]
>

🔗genewardsmith <genewardsmith@...>

3/28/2011 5:15:04 PM

--- In MakeMicroMusic@yahoogroups.com, "Kalle Aho" <kalleaho@...> wrote:
>
> Aaron (and Cam),
>
> the CSound programs can be simplified further, I got rid of the DC correction part. Look at my comment at
>
> http://www.csounds.com/node/1475

There seem to be a lot of CSound experts around at the moment. I wonder if some easily usable CSound for Dummies instruments could be stuck somewhere in the files section, which suddenly has room in it. Instruments with precise tunings and orchestras with standardized formats would be best.

🔗Jake Freivald <jdfreivald@...>

3/28/2011 5:22:06 PM

Hear, hear! Csound instruments would be very welcome!

On 3/28/11, genewardsmith <genewardsmith@...> wrote:
>
> --- In MakeMicroMusic@yahoogroups.com, "Kalle Aho" <kalleaho@...> wrote:
>>
>> Aaron (and Cam),
>>
>> the CSound programs can be simplified further, I got rid of the DC
>> correction part. Look at my comment at
>>
>> http://www.csounds.com/node/1475
>
> There seem to be a lot of CSound experts around at the moment. I wonder if
> some easily usable CSound for Dummies instruments could be stuck somewhere
> in the files section, which suddenly has room in it. Instruments with
> precise tunings and orchestras with standardized formats would be best.
>
>

🔗Mike Battaglia <battaglia01@...>

3/28/2011 8:46:10 PM

On Sat, Mar 26, 2011 at 8:25 PM, Kalle Aho <kalleaho@...> wrote:
>
> Hi,
>
> slightly off-topic perhaps but this might interest the microtonal Csound users and synthesists here:
>
> http://www.csounds.com/node/1475
>
> Kalle

Hi Kalle,

How do you anti-alias the impulse train?

-Mike

🔗Aaron Krister Johnson <aaron@...>

3/28/2011 10:08:18 PM

Gene, I'm happy to put some stuff in there. Are you looking for MIDI
instruments, or score editors? I have both....

I can also plug my own microcsound script; if you have Python on your
machine, you're good to go...maybe you can test it for me on a non-linux
platform? I'd love to hear how someone else uses it and how well it works on
Windows, say.

AKJ

On Mon, Mar 28, 2011 at 7:15 PM, genewardsmith
<genewardsmith@...>wrote:

>
> --- In MakeMicroMusic@yahoogroups.com, "Kalle Aho" <kalleaho@...> wrote:
> >
> > Aaron (and Cam),
> >
> > the CSound programs can be simplified further, I got rid of the DC
> correction part. Look at my comment at
> >
> > http://www.csounds.com/node/1475
>
> There seem to be a lot of CSound experts around at the moment. I wonder if
> some easily usable CSound for Dummies instruments could be stuck somewhere
> in the files section, which suddenly has room in it. Instruments with
> precise tunings and orchestras with standardized formats would be best.
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗Aaron Krister Johnson <aaron@...>

3/28/2011 10:13:00 PM

The other thing: if you have FLTK installed, I have some Csound GUI
instruments. You really don't even need to knwo the Csound language to use
them, but by studying the source, you really do learn and pick it up. Let me
know if you have it; I can resend you the link to a nice little matrix-FM
instrument I designed and posted about.

The advantage of having FLTK as well is that Iain McCurdy has a really
fabulous ready-to plunder collection of GUIs to play with, some of which
formed a starting basis for my own designs:
http://iainmccurdy.org/csound.html

If you know a little Csound, many of these are hackable to serve evil
microtonal ends......

:D

AKJ

On Tue, Mar 29, 2011 at 12:08 AM, Aaron Krister Johnson
<aaron@...>wrote:

> Gene, I'm happy to put some stuff in there. Are you looking for MIDI
> instruments, or score editors? I have both....
>
> I can also plug my own microcsound script; if you have Python on your
> machine, you're good to go...maybe you can test it for me on a non-linux
> platform? I'd love to hear how someone else uses it and how well it works on
> Windows, say.
>
> AKJ
>
>
> On Mon, Mar 28, 2011 at 7:15 PM, genewardsmith <
> genewardsmith@...> wrote:
>
>>
>> --- In MakeMicroMusic@yahoogroups.com, "Kalle Aho" <kalleaho@...> wrote:
>> >
>> > Aaron (and Cam),
>> >
>> > the CSound programs can be simplified further, I got rid of the DC
>> correction part. Look at my comment at
>> >
>> > http://www.csounds.com/node/1475
>>
>> There seem to be a lot of CSound experts around at the moment. I wonder if
>> some easily usable CSound for Dummies instruments could be stuck somewhere
>> in the files section, which suddenly has room in it. Instruments with
>> precise tunings and orchestras with standardized formats would be best.
>>
>>
>>
>> ------------------------------------
>>
>> Yahoo! Groups Links
>>
>>
>>
>>
>
>
> --
> Aaron Krister Johnson
> http://www.akjmusic.com
> http://www.untwelve.org
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗genewardsmith <genewardsmith@...>

3/28/2011 11:50:05 PM

--- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...> wrote:
>
> The other thing: if you have FLTK installed, I have some Csound GUI
> instruments.

I am not familiar with FLTK, and have not programmed in C in a long time, but I presume I could install it. I don't want to be a GUI program developer and wonder what the heck I need it for.

You really don't even need to knwo the Csound language to use
> them, but by studying the source, you really do learn and pick it up.

I like to learn programs starting out using stuff which is easy to use and then adding on to it. This might help de-geekify things. CSound is waaaaay to Geek City, and really, really needs a For-Dummies starter kit.

🔗genewardsmith <genewardsmith@...>

3/28/2011 11:25:13 PM

--- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...> wrote:
>
> Gene, I'm happy to put some stuff in there. Are you looking for MIDI
> instruments, or score editors? I have both....

I'm not sure what the point of a score editor is, and I doubt I would use it. Instruments is what I had in mind.

> I can also plug my own microcsound script; if you have Python on your
> machine, you're good to go...maybe you can test it for me on a non-linux
> platform? I'd love to hear how someone else uses it and how well it works on
> Windows, say.

Sounds interesting. Any limitations on what version of Python would be needed?

🔗Kalle Aho <kalleaho@...>

3/29/2011 1:56:05 AM

--- In MakeMicroMusic@yahoogroups.com, Mike Battaglia <battaglia01@...> wrote:
>
> On Sat, Mar 26, 2011 at 8:25 PM, Kalle Aho <kalleaho@...> wrote:
> >
> > Hi,
> >
> > slightly off-topic perhaps but this might interest the microtonal Csound users and synthesists here:
> >
> > http://www.csounds.com/node/1475
> >
> > Kalle
>
> Hi Kalle,
>
> How do you anti-alias the impulse train?
>
> -Mike

Damn Mike, can't you read? :D

"The idea is to convolve an impulse train with a sin^n window (=sin(x)^n from 0 to pi) and then integrate the result. That is, the impulses are replaced with sin^n windows. The integration can be done analytically so this allows us to directly calculate the sawtooth waveform. No leaky integrators or DC blocking filters needed!"

Kalle

🔗Mike Battaglia <battaglia01@...>

3/29/2011 2:00:46 AM

On Tue, Mar 29, 2011 at 4:56 AM, Kalle Aho <kalleaho@...> wrote:
>
> --- In MakeMicroMusic@yahoogroups.com, Mike Battaglia <battaglia01@...> wrote:
>
> Damn Mike, can't you read? :D
>
> "The idea is to convolve an impulse train with a sin^n window (=sin(x)^n from 0 to pi) and then integrate the result. That is, the impulses are replaced with sin^n windows. The integration can be done analytically so this allows us to directly calculate the sawtooth waveform. No leaky integrators or DC blocking filters needed!"

No, I'm saying, if you're generating an impulse train, and then you
convolve with sin^n(x), the initial impulse train is still going to
have jitter on it. Are you doing some kind of oversampling to get
around this? Perhaps by oversampling or interpolating the sin^n(x) or
something?

Also, are you using one period of sin^n(2*pi*f*x) as a kernel, where f
is the frequency you're generating?

-Mike

🔗lobawad <lobawad@...>

3/29/2011 2:22:36 AM

tablei uses interpolated reading of a table, table being the linear opcode and table3 cubic sinc interpolation.

Csound is full of these built-in hi-fi options, and you can make the tables immense. Itching to try Kalle's code, may even get a chance today!

--- In MakeMicroMusic@yahoogroups.com, Mike Battaglia <battaglia01@...> wrote:
>
> On Tue, Mar 29, 2011 at 4:56 AM, Kalle Aho <kalleaho@...> wrote:
> >
> > --- In MakeMicroMusic@yahoogroups.com, Mike Battaglia <battaglia01@> wrote:
> >
> > Damn Mike, can't you read? :D
> >
> > "The idea is to convolve an impulse train with a sin^n window (=sin(x)^n from 0 to pi) and then integrate the result. That is, the impulses are replaced with sin^n windows. The integration can be done analytically so this allows us to directly calculate the sawtooth waveform. No leaky integrators or DC blocking filters needed!"
>
> No, I'm saying, if you're generating an impulse train, and then you
> convolve with sin^n(x), the initial impulse train is still going to
> have jitter on it. Are you doing some kind of oversampling to get
> around this? Perhaps by oversampling or interpolating the sin^n(x) or
> something?
>
> Also, are you using one period of sin^n(2*pi*f*x) as a kernel, where f
> is the frequency you're generating?
>
> -Mike
>

🔗Kalle Aho <kalleaho@...>

3/29/2011 2:23:30 AM

--- In MakeMicroMusic@yahoogroups.com, Mike Battaglia <battaglia01@...> wrote:
>
> On Tue, Mar 29, 2011 at 4:56 AM, Kalle Aho <kalleaho@...> wrote:
> >
> > --- In MakeMicroMusic@yahoogroups.com, Mike Battaglia <battaglia01@> wrote:
> >
> > Damn Mike, can't you read? :D
> >
> > "The idea is to convolve an impulse train with a sin^n window (=sin(x)^n from 0 to pi) and then integrate the result. That is, the impulses are replaced with sin^n windows. The integration can be done analytically so this allows us to directly calculate the sawtooth waveform. No leaky integrators or DC blocking filters needed!"
>
> No, I'm saying, if you're generating an impulse train, and then you
> convolve with sin^n(x), the initial impulse train is still going to
> have jitter on it. Are you doing some kind of oversampling to get
> around this? Perhaps by oversampling or interpolating the sin^n(x) or
> something?
>
> Also, are you using one period of sin^n(2*pi*f*x) as a kernel, where f
> is the frequency you're generating?
>
> -Mike

"(=sin(x)^n from 0 to pi)"

So it is a bell shaped thingy, like the windows they use in signal
processing. Put these in place of the impulses. Otherwise there is
just "dead time" between the impulses. Varying the width of the
windows allows you to control the resulting spectrum. My
implementation doesn't allow you to overlap the pulses.

Kalle

🔗Mike Battaglia <battaglia01@...>

3/29/2011 2:23:50 AM

On Tue, Mar 29, 2011 at 5:22 AM, lobawad <lobawad@...> wrote:
>
> tablei uses interpolated reading of a table, table being the linear opcode and table3 cubic sinc interpolation.
>
> Csound is full of these built-in hi-fi options, and you can make the tables immense. Itching to try Kalle's code, may even get a chance today!

Ah, okay, thanks for explaining. I'm not too familiar with the nuances
of Csound, but mention "novel bandlimited synthesis algorithm" and you
have my attention.

-Mike

🔗Mike Battaglia <battaglia01@...>

3/29/2011 2:27:11 AM

On Tue, Mar 29, 2011 at 5:23 AM, Kalle Aho <kalleaho@...> wrote:
>
> "(=sin(x)^n from 0 to pi)"
>
> So it is a bell shaped thingy, like the windows they use in signal
> processing. Put these in place of the impulses. Otherwise there is
> just "dead time" between the impulses. Varying the width of the
> windows allows you to control the resulting spectrum. My
> implementation doesn't allow you to overlap the pulses.
>
> Kalle

OK, so to be clear, you aren't actually changing the frequency of the
sin^n window, only the impulse train? Meaning that you're effectively
doing sin^n(1 * x) and convolving one period of that with the impulse
train, right? And, furthermore, you aren't actually generating an
impulse train and convolving, you're just placing repetitions of the
sin^n one after the other, and cubically interpolating them when an
impulse would fall between two samples, yes?

-Mike

🔗Kalle Aho <kalleaho@...>

3/29/2011 2:30:10 AM

--- In MakeMicroMusic@yahoogroups.com, "lobawad" <lobawad@...> wrote:
>
> tablei uses interpolated reading of a table, table being the linear opcode and table3 cubic sinc interpolation.
>
> Csound is full of these built-in hi-fi options, and you can make the tables immense. Itching to try Kalle's code, may even get a chance today!

I will be trying this:

http://www.variophon.de/index_e.htm

We should come up with microtonal woodwind models!

Kalle

🔗Kalle Aho <kalleaho@...>

3/29/2011 2:38:36 AM

--- In MakeMicroMusic@yahoogroups.com, Mike Battaglia <battaglia01@...> wrote:
>
> On Tue, Mar 29, 2011 at 5:23 AM, Kalle Aho <kalleaho@...> wrote:
> >
> > "(=sin(x)^n from 0 to pi)"
> >
> > So it is a bell shaped thingy, like the windows they use in signal
> > processing. Put these in place of the impulses. Otherwise there is
> > just "dead time" between the impulses. Varying the width of the
> > windows allows you to control the resulting spectrum. My
> > implementation doesn't allow you to overlap the pulses.
> >
> > Kalle
>
> OK, so to be clear, you aren't actually changing the frequency of the
> sin^n window, only the impulse train? Meaning that you're effectively
> doing sin^n(1 * x) and convolving one period of that with the impulse
> train, right? And, furthermore, you aren't actually generating an
> impulse train and convolving, you're just placing repetitions of the
> sin^n one after the other, and cubically interpolating them when an
> impulse would fall between two samples, yes?
>
> -Mike

Well, I am changing the width of the window in the rez example which results in low pass filtering. Adding negative feedback at the main lobe null adds resonance. This implementation loads the integrated and normalized sin^n into a lookup table. In the improved version I present in the comments the lookup table is a sigmoid that goes from -1 at 0 to 1 at 1. You could use some other sigmoid too, like a truncated and normalized tanh() (as Victor Lazzarini pointed out to me). The sigmoid integrated from sin^n just has more predictable properties.

The table can be read at different speeds and when the reading index goes beyond 1 it stays at 1 (and beyond -1 it stays at -1). A naive sawtooth that goes from -1 to 1 at the note frequency is added to this. It's pretty simple really.

Kalle

🔗Kalle Aho <kalleaho@...>

3/29/2011 2:49:02 AM

--- In MakeMicroMusic@yahoogroups.com, "Kalle Aho" <kalleaho@...> wrote:
>
> The table can be read at different speeds and when the reading index goes beyond 1 it stays at 1 (and beyond -1 it stays at -1).

That's not quite what happens in the program but if you think it that way I think it is clearer. There is a sigmoid that goes from -1 at -1 to 1 at 1. The reading index can be sped up by multiplying it and then the values that are beyond -1 and 1 stay at -1 and 1.

Kalle

🔗Mike Battaglia <battaglia01@...>

3/29/2011 2:58:53 AM

On Tue, Mar 29, 2011 at 5:38 AM, Kalle Aho <kalleaho@...> wrote:
>
> Well, I am changing the width of the window in the rez example which results in low pass filtering. Adding negative feedback at the main lobe null adds resonance. This implementation loads the integrated and normalized sin^n into a lookup table. In the improved version I present in the comments the lookup table is a sigmoid that goes from -1 at 0 to 1 at 1. You could use some other sigmoid too, like a truncated and normalized tanh() (as Victor Lazzarini pointed out to me). The sigmoid integrated from sin^n just has more predictable properties.
>
> The table can be read at different speeds and when the reading index goes beyond 1 it stays at 1 (and beyond -1 it stays at -1). A naive sawtooth that goes from -1 to 1 at the note frequency is added to this. It's pretty simple really.
>
> Kalle

OK, I see now. This is a fantastic idea. If you want to cut down even
further on aliasing, instead of storing the integral of the sin^n, you
can store the second integral of it. Integration divides the spectrum
through by jw, so when the out of band frequencies alias around
Nyquist, they're already attenuated right from the start. Then, when
you re-differentiate to get your sawtooth, you now multiply by jw, so
the ones that are closest to the normal range hearing get less of a
"boost" than the ones around Nyquist. More at this paper:

http://www.dafx.ca/proceedings/papers/p_169.pdf

Another idea that you might find helpful: right now you're doing
sin^n(x) to generate, effectively, a bandlimited impulse train, since
as n -> Inf the signal turns more and more into an impulse train. If
instead you want to do something similar to generate a bandlimited
sawtooth right from the start, you can do log(n+sin(x)), and as n->1
the signal approaches a Hilbert transformed sawtooth wave. So
something like log(1000000000+sin(x)) will pretty much just be sin(x)
with some DC, and then log(10+sin(x)) will get closer to a sawtooth,
log(1.01+sin(x)) closer still, log(1.001+sin(x)) closer still, etc.

You could probably just replace the sigmoid integration with the
above, which I think will be equivalent because of the Taylor series
expansion for log(1+x).

-Mike

🔗Kalle Aho <kalleaho@...>

3/29/2011 3:37:09 AM

--- In MakeMicroMusic@yahoogroups.com, Mike Battaglia <battaglia01@...> wrote:
>
> On Tue, Mar 29, 2011 at 5:38 AM, Kalle Aho <kalleaho@...> wrote:
> >
> > Well, I am changing the width of the window in the rez example which results in low pass filtering. Adding negative feedback at the main lobe null adds resonance. This implementation loads the integrated and normalized sin^n into a lookup table. In the improved version I present in the comments the lookup table is a sigmoid that goes from -1 at 0 to 1 at 1. You could use some other sigmoid too, like a truncated and normalized tanh() (as Victor Lazzarini pointed out to me). The sigmoid integrated from sin^n just has more predictable properties.
> >
> > The table can be read at different speeds and when the reading index goes beyond 1 it stays at 1 (and beyond -1 it stays at -1). A naive sawtooth that goes from -1 to 1 at the note frequency is added to this. It's pretty simple really.
> >
> > Kalle
>
> OK, I see now. This is a fantastic idea.

Thanks for the positive response! The born again BLEPpers at KVR just told me to use BLEP.

> If you want to cut down even
> further on aliasing, instead of storing the integral of the sin^n, you
> can store the second integral of it. Integration divides the spectrum
> through by jw, so when the out of band frequencies alias around
> Nyquist, they're already attenuated right from the start. Then, when
> you re-differentiate to get your sawtooth, you now multiply by jw, so
> the ones that are closest to the normal range hearing get less of a
> "boost" than the ones around Nyquist. More at this paper:
>
> http://www.dafx.ca/proceedings/papers/p_169.pdf
>
> Another idea that you might find helpful: right now you're doing
> sin^n(x) to generate, effectively, a bandlimited impulse train, since
> as n -> Inf the signal turns more and more into an impulse train. If
> instead you want to do something similar to generate a bandlimited
> sawtooth right from the start, you can do log(n+sin(x)), and as n->1
> the signal approaches a Hilbert transformed sawtooth wave. So
> something like log(1000000000+sin(x)) will pretty much just be sin(x)
> with some DC, and then log(10+sin(x)) will get closer to a sawtooth,
> log(1.01+sin(x)) closer still, log(1.001+sin(x)) closer still, etc.
>
> You could probably just replace the sigmoid integration with the
> above, which I think will be equivalent because of the Taylor series
> expansion for log(1+x).

What do you think of this?

if x goes from -1 to 1

f(x)=x-tanh(a*x)/tanh(a)

gives a sawtooth wave with roughly 2*a harmonics when a is about
>=3.5.

Integrating this gives

1/2*x^2-ln(cosh(a*x))/(a*tanh(a))

for parabolic wave that can be used to get variable duty cycle triangle waves.

Kalle

🔗lobawad <lobawad@...>

3/29/2011 3:38:49 AM

I think Csound is mystified far out of proportion. Maybe that's the nature of online instruction though- with a chalkboard I could sketch out how it works and you'd be flying in half an hour. You can just copy-paste opcodes as AKJ said, and you don't even need to go much beyond that to do all kinds of things.

Perhaps a very small but heavily commented ready-to-go specifically microtonal instrument (without a GUI! that's just confusing code at first) would be a good idea?

--- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...> wrote:
>
>
> --- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@> wrote:
> >
> > The other thing: if you have FLTK installed, I have some Csound GUI
> > instruments.
>
> I am not familiar with FLTK, and have not programmed in C in a long time, but I presume I could install it. I don't want to be a GUI program developer and wonder what the heck I need it for.
>
> You really don't even need to knwo the Csound language to use
> > them, but by studying the source, you really do learn and pick it up.
>
> I like to learn programs starting out using stuff which is easy to use and then adding on to it. This might help de-geekify things. CSound is waaaaay to Geek City, and really, really needs a For-Dummies starter kit.
>

🔗lobawad <lobawad@...>

3/29/2011 3:52:45 AM

This is awesome Kalle! The sound is excellent, and the approach has built-in variations of basic waveform, as you're now proposing. Variable duty cycle triangle waves without aliasing, yeah!

--- In MakeMicroMusic@yahoogroups.com, "Kalle Aho" <kalleaho@...> wrote:
>
> --- In MakeMicroMusic@yahoogroups.com, Mike Battaglia <battaglia01@> wrote:
> >
> > On Tue, Mar 29, 2011 at 5:38 AM, Kalle Aho <kalleaho@> wrote:
> > >
> > > Well, I am changing the width of the window in the rez example which results in low pass filtering. Adding negative feedback at the main lobe null adds resonance. This implementation loads the integrated and normalized sin^n into a lookup table. In the improved version I present in the comments the lookup table is a sigmoid that goes from -1 at 0 to 1 at 1. You could use some other sigmoid too, like a truncated and normalized tanh() (as Victor Lazzarini pointed out to me). The sigmoid integrated from sin^n just has more predictable properties.
> > >
> > > The table can be read at different speeds and when the reading index goes beyond 1 it stays at 1 (and beyond -1 it stays at -1). A naive sawtooth that goes from -1 to 1 at the note frequency is added to this. It's pretty simple really.
> > >
> > > Kalle
> >
> > OK, I see now. This is a fantastic idea.
>
> Thanks for the positive response! The born again BLEPpers at KVR just told me to use BLEP.
>
> > If you want to cut down even
> > further on aliasing, instead of storing the integral of the sin^n, you
> > can store the second integral of it. Integration divides the spectrum
> > through by jw, so when the out of band frequencies alias around
> > Nyquist, they're already attenuated right from the start. Then, when
> > you re-differentiate to get your sawtooth, you now multiply by jw, so
> > the ones that are closest to the normal range hearing get less of a
> > "boost" than the ones around Nyquist. More at this paper:
> >
> > http://www.dafx.ca/proceedings/papers/p_169.pdf
> >
> > Another idea that you might find helpful: right now you're doing
> > sin^n(x) to generate, effectively, a bandlimited impulse train, since
> > as n -> Inf the signal turns more and more into an impulse train. If
> > instead you want to do something similar to generate a bandlimited
> > sawtooth right from the start, you can do log(n+sin(x)), and as n->1
> > the signal approaches a Hilbert transformed sawtooth wave. So
> > something like log(1000000000+sin(x)) will pretty much just be sin(x)
> > with some DC, and then log(10+sin(x)) will get closer to a sawtooth,
> > log(1.01+sin(x)) closer still, log(1.001+sin(x)) closer still, etc.
> >
> > You could probably just replace the sigmoid integration with the
> > above, which I think will be equivalent because of the Taylor series
> > expansion for log(1+x).
>
> What do you think of this?
>
> if x goes from -1 to 1
>
> f(x)=x-tanh(a*x)/tanh(a)
>
> gives a sawtooth wave with roughly 2*a harmonics when a is about
> >=3.5.
>
> Integrating this gives
>
> 1/2*x^2-ln(cosh(a*x))/(a*tanh(a))
>
> for parabolic wave that can be used to get variable duty cycle triangle waves.
>
> Kalle
>

🔗Daniel Forró <dan.for@...>

3/29/2011 4:09:57 AM

Soundwise it can't be compared with my 18 years old Yammi VL1/VL1m combined with WX5, or just as it is :-) Those trumpet, bassoon and sax sounds are rough, without bending, vibrato... Only small change in dynamics and timbre. But those gentlemen playing the instrument are not good performers at all...

VL1 can play microtonal scales.

I think there are some interesting new wind controllers recently. What about this one:

http://www.eigenlabs.com/

Daniel Forro

On Mar 29, 2011, at 6:30 PM, Kalle Aho wrote:

> --- In MakeMicroMusic@yahoogroups.com, "lobawad" <lobawad@...> wrote:
>>
>> tablei uses interpolated reading of a table, table being the >> linear opcode and table3 cubic sinc interpolation.
>>
>> Csound is full of these built-in hi-fi options, and you can make >> the tables immense. Itching to try Kalle's code, may even get a >> chance today!
>
> I will be trying this:
>
> http://www.variophon.de/index_e.htm
>
> We should come up with microtonal woodwind models!
>
> Kalle

🔗Mike Battaglia <battaglia01@...>

3/29/2011 4:14:58 AM

On Tue, Mar 29, 2011 at 6:37 AM, Kalle Aho <kalleaho@...> wrote:
>
> Thanks for the positive response! The born again BLEPpers at KVR just told me to use BLEP.

Tell them to shut the BLEP up. What is KVR?

> What do you think of this?
>
> if x goes from -1 to 1
>
> f(x)=x-tanh(a*x)/tanh(a)
>
> gives a sawtooth wave with roughly 2*a harmonics when a is about
> >=3.5.
>
> Integrating this gives
>
> 1/2*x^2-ln(cosh(a*x))/(a*tanh(a))
>
> for parabolic wave that can be used to get variable duty cycle triangle waves.
>
> Kalle

I'm going to respond offlist.

-Mike

🔗Kalle Aho <kalleaho@...>

3/29/2011 5:55:04 AM

Daniel,

I mean I'm going to try the pulse formation synthesis technique, not
the Variophon. :) Of course I can add vibrato which will be
interesting because the formants stay put even when the pitch undulates.

Kalle

--- In MakeMicroMusic@yahoogroups.com, Daniel Forró <dan.for@...> wrote:
>
> Soundwise it can't be compared with my 18 years old Yammi VL1/VL1m
> combined with WX5, or just as it is :-) Those trumpet, bassoon and
> sax sounds are rough, without bending, vibrato... Only small change
> in dynamics and timbre. But those gentlemen playing the instrument
> are not good performers at all...
>
> VL1 can play microtonal scales.
>
> I think there are some interesting new wind controllers recently.
> What about this one:
>
> http://www.eigenlabs.com/
>
> Daniel Forro
>
>
> On Mar 29, 2011, at 6:30 PM, Kalle Aho wrote:
>
> > --- In MakeMicroMusic@yahoogroups.com, "lobawad" <lobawad@> wrote:
> >>
> >> tablei uses interpolated reading of a table, table being the
> >> linear opcode and table3 cubic sinc interpolation.
> >>
> >> Csound is full of these built-in hi-fi options, and you can make
> >> the tables immense. Itching to try Kalle's code, may even get a
> >> chance today!
> >
> > I will be trying this:
> >
> > http://www.variophon.de/index_e.htm
> >
> > We should come up with microtonal woodwind models!
> >
> > Kalle
>

🔗Kalle Aho <kalleaho@...>

3/29/2011 6:05:20 AM

Thanks!

The general form of the idea is x-sigmoid(a*x)/sigmoid(a) for
sigmoids that center at zero. This works both with the integrated
sin^n and tanh sigmoids, others can be used as well:

http://en.wikipedia.org/wiki/Sigmoid_function

Kalle

--- In MakeMicroMusic@yahoogroups.com, "lobawad" <lobawad@...> wrote:
>
> This is awesome Kalle! The sound is excellent, and the approach has built-in variations of basic waveform, as you're now proposing. Variable duty cycle triangle waves without aliasing, yeah!
>
> --- In MakeMicroMusic@yahoogroups.com, "Kalle Aho" <kalleaho@> wrote:
> >
> > --- In MakeMicroMusic@yahoogroups.com, Mike Battaglia <battaglia01@> wrote:
> > >
> > > On Tue, Mar 29, 2011 at 5:38 AM, Kalle Aho <kalleaho@> wrote:
> > > >
> > > > Well, I am changing the width of the window in the rez example which results in low pass filtering. Adding negative feedback at the main lobe null adds resonance. This implementation loads the integrated and normalized sin^n into a lookup table. In the improved version I present in the comments the lookup table is a sigmoid that goes from -1 at 0 to 1 at 1. You could use some other sigmoid too, like a truncated and normalized tanh() (as Victor Lazzarini pointed out to me). The sigmoid integrated from sin^n just has more predictable properties.
> > > >
> > > > The table can be read at different speeds and when the reading index goes beyond 1 it stays at 1 (and beyond -1 it stays at -1). A naive sawtooth that goes from -1 to 1 at the note frequency is added to this. It's pretty simple really.
> > > >
> > > > Kalle
> > >
> > > OK, I see now. This is a fantastic idea.
> >
> > Thanks for the positive response! The born again BLEPpers at KVR just told me to use BLEP.
> >
> > > If you want to cut down even
> > > further on aliasing, instead of storing the integral of the sin^n, you
> > > can store the second integral of it. Integration divides the spectrum
> > > through by jw, so when the out of band frequencies alias around
> > > Nyquist, they're already attenuated right from the start. Then, when
> > > you re-differentiate to get your sawtooth, you now multiply by jw, so
> > > the ones that are closest to the normal range hearing get less of a
> > > "boost" than the ones around Nyquist. More at this paper:
> > >
> > > http://www.dafx.ca/proceedings/papers/p_169.pdf
> > >
> > > Another idea that you might find helpful: right now you're doing
> > > sin^n(x) to generate, effectively, a bandlimited impulse train, since
> > > as n -> Inf the signal turns more and more into an impulse train. If
> > > instead you want to do something similar to generate a bandlimited
> > > sawtooth right from the start, you can do log(n+sin(x)), and as n->1
> > > the signal approaches a Hilbert transformed sawtooth wave. So
> > > something like log(1000000000+sin(x)) will pretty much just be sin(x)
> > > with some DC, and then log(10+sin(x)) will get closer to a sawtooth,
> > > log(1.01+sin(x)) closer still, log(1.001+sin(x)) closer still, etc.
> > >
> > > You could probably just replace the sigmoid integration with the
> > > above, which I think will be equivalent because of the Taylor series
> > > expansion for log(1+x).
> >
> > What do you think of this?
> >
> > if x goes from -1 to 1
> >
> > f(x)=x-tanh(a*x)/tanh(a)
> >
> > gives a sawtooth wave with roughly 2*a harmonics when a is about
> > >=3.5.
> >
> > Integrating this gives
> >
> > 1/2*x^2-ln(cosh(a*x))/(a*tanh(a))
> >
> > for parabolic wave that can be used to get variable duty cycle triangle waves.
> >
> > Kalle
> >
>

🔗Kalle Aho <kalleaho@...>

3/29/2011 6:18:49 AM

--- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...> wrote:

> There seem to be a lot of CSound experts around at the moment. I
> wonder if some easily usable CSound for Dummies instruments could be
> stuck somewhere in the files section, which suddenly has room in it.
> Instruments with precise tunings and orchestras with standardized
> formats would be best.

What sort of standardized formats?

Kalle

🔗Aaron Krister Johnson <aaron@...>

3/29/2011 7:39:24 AM

I think Gene wants some ready to go MIDI instruments. Shouldn't be a problem
to come up with some examples to get him started.

I like Cameron's idea of commented code, plus it doesn't have to be GUI
code; I mention only because most folks are already comfy with GUI synths,
and McCurdy's collection is excellent.

In addition, since he is already comfy with scala, we can show him how to
use scala to bypass MIDI altogether and just go to .sco for his instruments.

On Tue, Mar 29, 2011 at 8:18 AM, Kalle Aho <kalleaho@...>wrote:

>
>
> --- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...>
> wrote:
>
> > There seem to be a lot of CSound experts around at the moment. I
> > wonder if some easily usable CSound for Dummies instruments could be
> > stuck somewhere in the files section, which suddenly has room in it.
> > Instruments with precise tunings and orchestras with standardized
> > formats would be best.
>
> What sort of standardized formats?
>
> Kalle
>
>
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗Aaron Krister Johnson <aaron@...>

3/29/2011 7:53:09 AM

Gene, anyone else:

I should add that I've put up a newer version of 'microcsound' on my site:

for Linux/Mac:
http://www.akjmusic.com/packages/microcsound20110329.tgz

for Windows:
http://www.akjmusic.com/packages/microcsound20110329.zip

caveat: I haven't tested it on Windows or Mac, since I use Linux...any beta
testers? :)
The install.py script will have to be edited by hand to reflect Windows
backslash paths, etc., which I know defeats the purpose of a handy install
script, but oh well...It should work fine on a Mac, since Os-X has a Unixy
feel now.

There is a tutorial at http://www.akjmusic.com/microcsound_tutorial.html

Gene, is you look at the 'microcsound.orc' file, there are plenty of
instruments to plunder there. If there's time later, I can make some unified
.csd format instruments for you, in the meantime, if you are feeling
impatient and interpid enough, you can read about how to easily make a
unified .csd from a separate .orc and .sco yourself at

http://www.csounds.com/manual/html/CommandUnifile.html

Unlike a lot of open source sound software out there, Csound's docs are
excellent if not absolutely perfect (there are still some issues here and
there in the manual), but considering what a large beast Csound is, I think
the devs and the documenters deserve enormous credit. So with that in mind,
one could just dive into the manual:

http://www.csounds.com/manual/html/

But, perhaps even better and gentler--Dr. Boulanger's excellent beginner
TOOTorial should be able to get you over an remaining irrational fears of
just diving into the full-fledged glory of Csound geekery:

http://www.csounds.com/toots/index.html

'microcsound' makes a lot of quick and dirty daily microtonal experimenting
easier, since I've done a lot of the heavy lifting for you. Just pop open an
interactive terminal with
'microcsound -i' and go.

Even without writing full-fledged compositions, it's useful for other things
like tuning acoustic instruments, or testing the sound of whatever scales,
intervals and chords you want to hear....

AKJ

On Tue, Mar 29, 2011 at 9:39 AM, Aaron Krister Johnson
<aaron@...>wrote:

> I think Gene wants some ready to go MIDI instruments. Shouldn't be a
> problem to come up with some examples to get him started.
>
> I like Cameron's idea of commented code, plus it doesn't have to be GUI
> code; I mention only because most folks are already comfy with GUI synths,
> and McCurdy's collection is excellent.
>
>
> In addition, since he is already comfy with scala, we can show him how to
> use scala to bypass MIDI altogether and just go to .sco for his instruments.
>
> On Tue, Mar 29, 2011 at 8:18 AM, Kalle Aho <kalleaho@...>wrote:
>
>>
>>
>> --- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...>
>> wrote:
>>
>> > There seem to be a lot of CSound experts around at the moment. I
>> > wonder if some easily usable CSound for Dummies instruments could be
>> > stuck somewhere in the files section, which suddenly has room in it.
>> > Instruments with precise tunings and orchestras with standardized
>> > formats would be best.
>>
>> What sort of standardized formats?
>>
>> Kalle
>>
>>
>>
>>
>>
>>
>> ------------------------------------
>>
>> Yahoo! Groups Links
>>
>>
>>
>>
>
>
> --
> Aaron Krister Johnson
> http://www.akjmusic.com
> http://www.untwelve.org
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗genewardsmith <genewardsmith@...>

3/29/2011 9:11:46 AM

--- In MakeMicroMusic@yahoogroups.com, "lobawad" <lobawad@...> wrote:
>
> I think Csound is mystified far out of proportion. Maybe that's the nature of online instruction though- with a chalkboard I could sketch out how it works and you'd be flying in half an hour. You can just copy-paste opcodes as AKJ said, and you don't even need to go much beyond that to do all kinds of things.
>
> Perhaps a very small but heavily commented ready-to-go specifically microtonal instrument (without a GUI! that's just confusing code at first) would be a good idea?

What would be good is a small suite of instruments which can be treated like black boxes. You don't need to be a soundfont editor to use sf2, you don't need to be an auto mechanic and drive around with the hood up so you can peer at the engine to drive. Why require anyone, ever, to actually look at the CSound code so as to figure out how to make it work?

We could start a little project right on this group for CSound Done Right. What that would mean is that some format be agreed on so that all you need to know is this format, and the instrument can be treated as a black box. I would suggest something like midi with some of the stupidities removed, particularly the one about tuning. CSound uses frequencies, which is OK, but if I had my druthers the standard would be "dollars", that is, 69+12log2(f/440), where f is the frequency. The point of that is that it corresponds to what midi does, and is easier to understand by eye. Of course an absolute requirement around here would be that all instruments produce a tone which corresponds to the expected frequency, and not something else.

🔗genewardsmith <genewardsmith@...>

3/29/2011 9:20:58 AM

--- In MakeMicroMusic@yahoogroups.com, "Kalle Aho" <kalleaho@...> wrote:
>
>
>
> --- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@> wrote:
>
> > There seem to be a lot of CSound experts around at the moment. I
> > wonder if some easily usable CSound for Dummies instruments could be
> > stuck somewhere in the files section, which suddenly has room in it.
> > Instruments with precise tunings and orchestras with standardized
> > formats would be best.
>
> What sort of standardized formats?

I'd suggest apeing midi. The main point is that the numbers in a certain column of numbers, or given at the start, always mean the same thing. Pitch in dollars or frequencies. A set of expression controllers such as volume, pan, intensity, legatoness or whatever.

🔗genewardsmith <genewardsmith@...>

3/29/2011 9:25:53 AM

--- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...> wrote:
>
> I think Gene wants some ready to go MIDI instruments. Shouldn't be a problem
> to come up with some examples to get him started.

Precisely, but my latest visionary plan is CSound Done Right, the Black Box way, if anyone wants to climb on board.

> In addition, since he is already comfy with scala, we can show him how to
> use scala to bypass MIDI altogether and just go to .sco for his instruments.

I presumed that's what we would be doing. What I'm proposing is a .sco standard, so that the instruments can be treated as black boxes. You should never need to look at the code for any reason.

🔗genewardsmith <genewardsmith@...>

3/29/2011 9:34:12 AM

--- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...> wrote:

> Gene, is you look at the 'microcsound.orc' file, there are plenty of
> instruments to plunder there. If there's time later, I can make some unified
> .csd format instruments for you, in the meantime, if you are feeling
> impatient and interpid enough, you can read about how to easily make a
> unified .csd from a separate .orc and .sco yourself at

The .csd idea is backwards from where I want to go. My idea is that you should never need to look at the .orc file anyway, since it will work on a .sco file which has a standardized format. Messing about with .csd cleans things up in some ways, but it's extremely geeky, and I want to see CSound de-geekified. I would be happy to be a tester for this plan, though my rate of music production is on the slow side and someone like Chris might be better; I think this group would be a great place to try it out on. It could start very small, with just a few instruments.

🔗Kalle Aho <kalleaho@...>

3/29/2011 9:52:39 AM

--- In MakeMicroMusic@yahoogroups.com, "genewardsmith"
<genewardsmith@...> wrote:

> The .csd idea is backwards from where I want to go. My idea is that
> you should never need to look at the .orc file anyway, since it will
> work on a .sco file which has a standardized format.

Wouldn't you at least have to know how to put a selection of
instruments into a single .orc file?

Kalle

🔗Jake Freivald <jdfreivald@...>

3/29/2011 10:08:55 AM

I think getting away from the .csd file is a great idea.

I've used Csound mostly for testing scales and getting the feel of
specific chords. I use a single .orc file with a set of instruments in
it, mostly soundfonts, because I might test three or four scales, but
I know where my pan flute is vs. my normal flute vs. guitar -- in the
.sco file I just use the number of the instrument I want, a la MIDI.

For code geeks, it seems like a simple case of refactoring to do
things this way.

One of the reasons I'm not exploring Csound more at the moment is that
I have a limited number of sounds to play with. Not that more aren't
available, but I have to figure them out, first. Simplifying what
would be very useful.

Regards,
Jake

On 3/29/11, genewardsmith <genewardsmith@...> wrote:
>
>
> --- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...>
> wrote:
>
>> Gene, is you look at the 'microcsound.orc' file, there are plenty of
>> instruments to plunder there. If there's time later, I can make some
>> unified
>> .csd format instruments for you, in the meantime, if you are feeling
>> impatient and interpid enough, you can read about how to easily make a
>> unified .csd from a separate .orc and .sco yourself at
>
> The .csd idea is backwards from where I want to go. My idea is that you
> should never need to look at the .orc file anyway, since it will work on a
> .sco file which has a standardized format. Messing about with .csd cleans
> things up in some ways, but it's extremely geeky, and I want to see CSound
> de-geekified. I would be happy to be a tester for this plan, though my rate
> of music production is on the slow side and someone like Chris might be
> better; I think this group would be a great place to try it out on. It could
> start very small, with just a few instruments.
>
>
>

🔗Carl Lumma <carl@...>

3/29/2011 11:32:14 AM

>Precisely, but my latest visionary plan is CSound Done Right, the
>Black Box way, if anyone wants to climb on board.

Gene: Has it occurred to you that maybe CSound tutorials are hard
because CSound itself is hard? Nobody has ever explained CSound to
nonexperts, and nobody ever will. ;)

-Carl

🔗Aaron Krister Johnson <aaron@...>

3/29/2011 12:31:58 PM

Hey Carl--

You've been oddly quiet lately!

Three points come to mind re:Gene and his Csound inquirys:

1) Gene is pretty smart. No, scratch that--a genius. I have a 12 -year old
comp student who is, granted, bright, but no Einstein, doing Csound work.

2) Dr. Boulanger's TOOTorial is pretty simple and well written. The basics
of the language are well layed out, everything else is what your imagination
puts together, and you always have the manual as reference

3) There are frontends that make working with Csound tons easier, most
requiring little or no knowledge of the actual language. Blue (by Stephen
Yi) and my own 'microcsound' are examples, and there are others...

AKJ

On Tue, Mar 29, 2011 at 1:32 PM, Carl Lumma <carl@...> wrote:

> >Precisely, but my latest visionary plan is CSound Done Right, the
> >Black Box way, if anyone wants to climb on board.
>
> Gene: Has it occurred to you that maybe CSound tutorials are hard
> because CSound itself is hard? Nobody has ever explained CSound to
> nonexperts, and nobody ever will. ;)
>
> -Carl
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗Aaron Krister Johnson <aaron@...>

3/29/2011 12:36:00 PM

http://www.csounds.com/tootsother/vercoetut/Vercoe.html

I mean, c'mon, there's nothing anywhere near the difficulty of, for example,
a single sentence of Gene's explanation of a temperament concept using
abstract algebra, in this entire document!

AKJ

On Tue, Mar 29, 2011 at 2:31 PM, Aaron Krister Johnson
<aaron@...>wrote:

> Hey Carl--
>
> You've been oddly quiet lately!
>
> Three points come to mind re:Gene and his Csound inquirys:
>
> 1) Gene is pretty smart. No, scratch that--a genius. I have a 12 -year old
> comp student who is, granted, bright, but no Einstein, doing Csound work.
>
> 2) Dr. Boulanger's TOOTorial is pretty simple and well written. The basics
> of the language are well layed out, everything else is what your imagination
> puts together, and you always have the manual as reference
>
> 3) There are frontends that make working with Csound tons easier, most
> requiring little or no knowledge of the actual language. Blue (by Stephen
> Yi) and my own 'microcsound' are examples, and there are others...
>
> AKJ
>
>
> On Tue, Mar 29, 2011 at 1:32 PM, Carl Lumma <carl@...> wrote:
>
>> >Precisely, but my latest visionary plan is CSound Done Right, the
>> >Black Box way, if anyone wants to climb on board.
>>
>> Gene: Has it occurred to you that maybe CSound tutorials are hard
>> because CSound itself is hard? Nobody has ever explained CSound to
>> nonexperts, and nobody ever will. ;)
>>
>> -Carl
>>
>>
>>
>> ------------------------------------
>>
>> Yahoo! Groups Links
>>
>>
>>
>>
>
>
> --
> Aaron Krister Johnson
> http://www.akjmusic.com
> http://www.untwelve.org
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗genewardsmith <genewardsmith@...>

3/29/2011 12:43:16 PM

--- In MakeMicroMusic@yahoogroups.com, "Kalle Aho" <kalleaho@...> wrote:
>
> --- In MakeMicroMusic@yahoogroups.com, "genewardsmith"
> <genewardsmith@> wrote:
>
> > The .csd idea is backwards from where I want to go. My idea is that
> > you should never need to look at the .orc file anyway, since it will
> > work on a .sco file which has a standardized format.
>
> Wouldn't you at least have to know how to put a selection of
> instruments into a single .orc file?

If the instruments had a standard format, and had distinct names, they could all be placed into a single orc file. You'd merely need to call the orc file, you wouldn't need to look at it.

🔗genewardsmith <genewardsmith@...>

3/29/2011 12:52:18 PM

--- In MakeMicroMusic@yahoogroups.com, Carl Lumma <carl@...> wrote:
>
> >Precisely, but my latest visionary plan is CSound Done Right, the
> >Black Box way, if anyone wants to climb on board.
>
> Gene: Has it occurred to you that maybe CSound tutorials are hard
> because CSound itself is hard? Nobody has ever explained CSound to
> nonexperts, and nobody ever will. ;)

I've studied CSound and I've studied quantum field theory, and quantum field theory is way harder, trust me. If I wanted to be a CSound geek I could have done it, I imagine, but why should I need to invest so much time and effort into something so tangential to actual music? I am far more interested in the idea of making it actually easy to use.

🔗genewardsmith <genewardsmith@...>

3/29/2011 1:01:04 PM

--- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...> wrote:
>
> http://www.csounds.com/tootsother/vercoetut/Vercoe.html

It's at about the level of difficult of the C reference manual, which is no big surprise, as CSound is basically a specialized programming language. To be any good at CSound, you need to learn this programming language AND a bunch of other stuff. None of that should be necessary if all you want to do is make music. I object to the whole approach. If I want to use TiMidity, I can drag and drop a midi file onto a .bat file, I don't need to learn how to loop samples and make an sf2 soundfont.

🔗Carl Lumma <carl@...>

3/29/2011 1:00:07 PM

Aaron- my message, and its winking smilie, are clearly a
reference to this:

/tuning/topicId_96718.html#96811

-C.

At 12:31 PM 3/29/2011, you wrote:
>Hey Carl--
>
>You've been oddly quiet lately!
>
>Three points come to mind re:Gene and his Csound inquirys:
>
>1) Gene is pretty smart. No, scratch that--a genius. I have a 12 -year old
>comp student who is, granted, bright, but no Einstein, doing Csound work.
[snip]
>> Gene: Has it occurred to you that maybe CSound tutorials are hard
>> because CSound itself is hard? Nobody has ever explained CSound to
>> nonexperts, and nobody ever will. ;)
>>
>> -Carl
>>

🔗Carl Lumma <carl@...>

3/29/2011 1:01:43 PM

Gene wrote:
>why should I need to invest so
>much time and effort into something so tangential to actual music?

You keep giving me ammo! -C.

🔗genewardsmith <genewardsmith@...>

3/29/2011 1:06:02 PM

--- In MakeMicroMusic@yahoogroups.com, Carl Lumma <carl@...> wrote:
>
> Gene wrote:
> >why should I need to invest so
> >much time and effort into something so tangential to actual music?
>
> You keep giving me ammo! -C.

Carl, the difference is I don't WANT to design instruments. I only exception to that might be instruments with partial tones tweaked to a particular regular temperament.

🔗Aaron Krister Johnson <aaron@...>

3/29/2011 1:47:10 PM

Ah, got it...slow to catch wit today....

AKJ

On Tue, Mar 29, 2011 at 3:00 PM, Carl Lumma <carl@...> wrote:

> Aaron- my message, and its winking smilie, are clearly a
> reference to this:
>
> /tuning/topicId_96718.html#96811
>
> -C.
>
> At 12:31 PM 3/29/2011, you wrote:
> >Hey Carl--
> >
> >You've been oddly quiet lately!
> >
> >Three points come to mind re:Gene and his Csound inquirys:
> >
> >1) Gene is pretty smart. No, scratch that--a genius. I have a 12 -year old
> >comp student who is, granted, bright, but no Einstein, doing Csound work.
> [snip]
> >> Gene: Has it occurred to you that maybe CSound tutorials are hard
> >> because CSound itself is hard? Nobody has ever explained CSound to
> >> nonexperts, and nobody ever will. ;)
> >>
> >> -Carl
> >>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗Chris Vaisvil <chrisvaisvil@...>

3/29/2011 6:30:15 PM

Yes, I would like to be involved.

I purchased the csound book some time ago but was disappointed when I found
it was made for version 3 and at the time 5 was out. When I went to the
csound list *no one* would answer my questions which was disappointing. Of
historical interest (maybe?) I took a course in the spring of 1978 on MUSIC
IVb - an ancestor of csound.

In any case I found sticking with version 3 made sense to me. Things in the
current version didn't make as much sense and I learned by reading and
compiling the source of the copious examples - I even discovered that you
could write microtonal music using pitch class notation by using fractions.
i.e. 4.01 and 4.015 were a quarter tone apart.

Here is the one semi-original piece I did based on the instruments found in
the Xanadu example with added samples - all processing done in csound - as I
remember I edited some silence.

[you should be able to listen online]

attention whores http://www.traxinspace.com/song/40953

I also compiled a slew of examples - the ones with * I consider the best - I
included the score notes where possible.

cSound test http://www.traxinspace.com/song/40863 (only 4 secs)

* Nuclear Energy - Our Misunderstood Friend example
http://www.traxinspace.com/song/40864
Message From Another Planet (Spring 1999) example
http://www.traxinspace.com/song/40865
Prelude for Drums and Different Canons example
http://www.traxinspace.com/song/40866
* Unwanted Flight example http://www.traxinspace.com/song/40867
Rain example http://www.traxinspace.com/song/40868
Face on Mars example http://www.traxinspace.com/song/40869
***** Beauty of Laughter example http://www.traxinspace.com/song/40870
Henon (microtonal) (this might be mine - I'll quote the score below)
http://www.traxinspace.com/song/40871
Gruneburg example http://www.traxinspace.com/song/40872
distant harmonies example http://www.traxinspace.com/song/40873
*Blue Cube example http://www.traxinspace.com/song/40876
Anzola (midi) example http://www.traxinspace.com/song/40877
*Vestige of Time example http://www.traxinspace.com/song/40878
**collage example http://www.traxinspace.com/song/40879
*Trapped in Convert example http://www.traxinspace.com/song/42453
************* Coded Guitar example (very impressive)
http://www.traxinspace.com/song/42462

score for Henon pasted below Gene's quote

On Tue, Mar 29, 2011 at 12:34 PM, genewardsmith <genewardsmith@...
> wrote:

>
>
>
>
> The .csd idea is backwards from where I want to go. My idea is that you
> should never need to look at the .orc file anyway, since it will work on a
> .sco file which has a standardized format. Messing about with .csd cleans
> things up in some ways, but it's extremely geeky, and I want to see CSound
> de-geekified. I would be happy to be a tester for this plan, though my rate
> of music production is on the slow side and someone like Chris might be
> better; I think this group would be a great place to try it out on. It could
> start very small, with just a few instruments.
>
>
>
f1 0 513 10 1 ; sine
f3 0 513 10 3 1 0 .25 .3 .76
f4 0 513 9 1 1 90 ; cosine
f5 0 513 10 1 .2 0 .06 0 .4 ;altered sine
f8 0 256 7 0 0 1 128 1 0 -1 128 -1 ;square
f31 0 513 13 1 1 .9 .8 .7 .6 .5 .4 .3 .2 .1 ;gen 13 table lookup
f32 0 513 13 1 1 .9 .8 .7 .6 .7 .8 .9 1 ;gen 13 table lookup

t 0 220 400 240 800 256 1200 300
i7 1.000 10.652 9.67 7000 0.37
i7 1.652 10.895 9.74 7000 0.37
i7 2.547 10.591 9.77 7000 0.37
i7 3.138 10.389 9.79 7000 0.37
i7 3.527 10.347 9.60 7000 0.37
i7 3.874 10.436 9.63 7000 0.37
i7 4.310 10.700 9.68 7000 0.37
i10 1 20 7.70 9000 0.15
i11 1 20 10.10 8000 0.15
i12 4 20 6.74 8000 0.15
i13 4 20 10.28 8200 0.15
i14 20 7 5.92 8000 0.15
i15 20 7 9.03 8000 0.15
i10 11 20 8.53 8600 0.15
i11 12 20 10.09 8000 0.15
i12 14 20 7.01 8000 0.15
i13 15 20 10.54 8000 0.15
i14 17 20 5.19 8200 0.15
i15 20 20 7.27 8000 0.15
i10 20 20 9.24 9000 0.15
i11 21 20 8.59 8000 0.15
i12 22 20 10.10 8000 0.15
i13 25 20 6.99 8200 0.15
i14 25 20 10.53 8000 0.15
i15 29 20 5.21 8000 0.15
i10 32 20 7.34 8600 0.15
i11 32 20 9.28 8000 0.15
i12 33 20 8.54 8000 0.15
i13 34 20 10.16 8000 0.15
i14 37 20 6.81 8200 0.15
i15 37 20 10.38 8000 0.15
i10 40 20 5.64 9000 0.15
i11 42 20 8.44 8000 0.15
i12 42 20 9.16 8000 0.15
i13 43 20 9.07 8000 0.15
i14 44 20 9.44 8200 0.15
i15 46 20 8.75 8000 0.15
i10 47 20 9.99 8000 0.15
i11 49 20 7.37 8600 0.15
i12 49 20 10.72 8000 0.15
i13 52 20 4.68 8000 0.15
i7 54.000 11.462 11.31 7000 0.62
i7 55.462 11.300 11.13 7000 0.62
i7 56.762 11.325 11.15 7000 0.62
i7 57.088 11.548 11.19 7000 0.62
i7 58.636 11.816 11.26 7000 0.62
i7 59.452 11.512 11.30 7000 0.62
i7 60.964 11.324 11.13 7000 0.62
i14 56 20 5.67 8200 0.15
i15 58 20 6.80 8000 0.15
i10 59 20 9.01 8000 0.15
i11 60 20 8.82 9000 0.15
i12 61 20 9.76 8000 0.15
i13 63 20 7.95 8000 0.15
i14 63 20 10.68 8000 0.15
i15 66 20 4.99 8200 0.15
i7 68.000 10.661 9.82 7000 0.21
i7 68.661 10.906 9.89 7000 0.21
i7 69.567 10.590 9.93 7000 0.21
i7 70.157 10.432 9.75 7000 0.21
i7 70.589 10.508 9.78 7000 0.21
i7 71.097 10.812 9.85 7000 0.21
i7 71.909 10.800 9.91 7000 0.21
i10 71 20 6.72 8000 0.15
i11 71 20 8.72 8600 0.15
i12 71 20 9.19 8000 0.15
i13 72 20 9.11 8000 0.15
i14 73 20 9.39 8000 0.15
i15 75 20 8.85 8200 0.15
i10 76 20 9.83 8000 0.15
i11 78 20 7.80 8000 0.15
i12 78 20 10.73 8000 0.15
i13 81 20 4.76 9000 0.15
i7 83.000 11.679 9.98 7000 0.51
i7 84.679 11.835 10.02 7000 0.51
i7 86.515 12.154 10.09 7000 0.51
i7 88.668 11.919 10.14 7000 0.51
i7 90.587 11.679 10.16 7000 0.51
i7 92.266 11.646 9.98 7000 0.51
i7 93.913 11.809 10.02 7000 0.51
i14 84 20 5.96 8000 0.15
i15 86 20 7.46 8200 0.15
i10 86 20 9.54 8000 0.15
i11 86 20 8.04 8000 0.15
i12 88 20 10.58 8000 0.15
i13 91 20 5.35 8600 0.15
i14 93 20 7.74 8000 0.15
i15 93 20 9.39 8000 0.15
i10 95 20 8.44 8200 0.15
i11 96 20 10.29 8000 0.15
i12 98 20 6.41 8000 0.15
i13 99 20 9.91 9000 0.15
i14 101 20 6.87 8000 0.15
i15 102 20 10.36 8000 0.15
i10 105 20 5.72 8200 0.15
i11 107 20 8.62 8000 0.15
i12 108 20 9.01 8000 0.15
i13 109 20 9.37 8600 0.15
i14 111 20 8.87 8000 0.15
i15 112 20 9.81 8000 0.15
i10 114 20 7.86 8200 0.15
i11 114 20 10.72 8000 0.15
e
i12 118 20 4.84 8000 0.15
i7 120.000 11.395 11.33 7000 0.47
i7 121.395 11.133 11.35 7000 0.47
i7 122.528 11.050 11.16 7000 0.47
i7 123.578 11.104 11.18 7000 0.47
i7 124.681 11.327 11.22 7000 0.47
i7 126.009 11.614 11.29 7000 0.47
i7 126.623 11.323 11.33 7000 0.47
i13 120 20 6.22 9000 0.15
i14 121 20 7.97 8000 0.15
i15 121 20 9.62 8000 0.15
i10 123 20 8.04 8200 0.15
i11 123 20 10.61 8000 0.15
i12 126 20 5.27 8000 0.15
i13 129 20 7.53 8600 0.15
i14 129 20 9.35 8000 0.15
i15 131 20 8.45 8000 0.15
i10 131 20 10.27 8000 0.15
i11 134 20 6.48 8200 0.15
i12 135 20 10.01 8000 0.15
i13 137 20 6.63 8000 0.15
i14 137 20 10.12 9000 0.15
i15 141 20 6.35 8000 0.15
i10 142 20 9.76 8000 0.15
i11 144 20 7.21 8200 0.15
i12 144 20 10.58 8000 0.15
i13 147 20 5.12 8000 0.15
i14 150 20 7.08 8600 0.15
i15 150 20 9.10 8000 0.15
i10 151 20 8.77 8000 0.15
i11 152 20 9.85 8200 0.15
i12 154 20 7.73 8000 0.15
i13 154 20 10.74 8000 0.15
i14 155 20 4.70 9000 0.15
i7 159.000 11.597 9.60 7000 0.20
i7 160.597 11.683 9.62 7000 0.20
i7 162.280 11.950 9.67 7000 0.20
i7 164.231 12.147 9.74 7000 0.20
i7 166.378 11.821 9.77 7000 0.20
i7 168.200 11.663 9.59 7000 0.20
i7 169.863 11.704 9.62 7000 0.20
i15 160 20 5.77 8000 0.15
i10 162 20 7.03 8000 0.15
i11 162 20 9.26 8200 0.15
i12 163 20 8.49 8000 0.15
i13 163 20 10.21 8000 0.15
i14 166 20 6.67 8000 0.15
i15 166 20 10.24 8600 0.15
i10 169 20 6.04 8000 0.15
i11 172 20 9.25 8200 0.15
i12 173 20 8.20 8000 0.15
i13 173 20 10.42 8000 0.15
e
i14 176 20 5.94 8000 0.15
i15 178 20 9.10 9000 0.15
i10 179 20 8.42 8000 0.15
i11 179 20 10.22 8000 0.15
i12 182 20 6.62 8200 0.15
i13 183 20 10.18 8000 0.15
i14 186 20 6.20 8000 0.15
i15 187 20 9.53 8600 0.15
i10 187 20 7.69 8000 0.15
i11 189 20 10.65 8000 0.15
i12 192 20 5.02 8200 0.15
i13 195 20 6.80 8000 0.15
i14 196 20 8.83 8000 0.15
i15 197 20 9.09 9000 0.15
i10 198 20 9.31 8000 0.15
i11 200 20 9.00 8000 0.15
i12 201 20 9.60 8200 0.15
i13 203 20 8.39 8000 0.15
i14 203 20 10.40 8000 0.15
i15 206 20 6.07 8600 0.15
i10 208 20 9.35 8000 0.15
i11 209 20 8.02 8000 0.15
i12 210 20 10.54 8000 0.15
i13 213 20 5.50 8200 0.15
i14 215 20 8.12 8000 0.15
i15 215 20 9.34 8000 0.15
i10 217 20 8.66 9000 0.15
i11 218 20 10.05 8000 0.15
i12 220 20 7.17 8000 0.15
i13 220 20 10.64 8200 0.15
i14 223 20 4.89 8000 0.15
i7 224.000 11.293 10.71 7000 0.42
i7 225.293 10.963 10.75 7000 0.42
i7 226.256 10.828 10.57 7000 0.42
i7 227.084 10.940 10.61 7000 0.42
i7 228.024 11.268 10.68 7000 0.42
i7 229.292 11.119 10.73 7000 0.42
i7 230.410 10.842 10.76 7000 0.42
i15 226 20 6.38 8600 0.15
i10 227 20 8.24 8000 0.15
i11 227 20 9.53 8000 0.15
i12 229 20 8.30 8000 0.15
i13 229 20 10.44 8000 0.15
i14 232 20 5.90 8200 0.15
i15 234 20 9.04 8000 0.15
i10 235 20 8.51 9000 0.15
i11 236 20 10.12 8000 0.15
i12 239 20 6.93 8000 0.15
i13 239 20 10.48 8000 0.15
i14 242 20 5.35 8200 0.15
i15 244 20 7.72 8000 0.15
i10 244 20 9.40 8000 0.15
i11 246 20 8.43 8600 0.15
i12 246 20 10.30 8000 0.15
i13 249 20 6.38 8000 0.15
i14 250 20 9.86 8200 0.15
i15 252 20 6.97 8000 0.15
i10 253 20 10.44 8000 0.15
i11 255 20 5.50 9000 0.15
i12 257 20 8.10 8000 0.15
i13 257 20 9.35 8000 0.15
i14 259 20 8.64 8200 0.15
i15 260 20 10.08 8000 0.15
i10 262 20 7.07 8000 0.15
i11 262 20 10.58 8000 0.15
i12 265 20 5.07 8600 0.15
i13 268 20 6.92 8000 0.15
i14 268 20 8.96 8000 0.15
i15 269 20 8.94 8200 0.15
i10 270 20 9.58 8000 0.15
i11 272 20 8.42 8000 0.15
i12 272 20 10.36 8000 0.15
i13 275 20 6.18 9000 0.15
i14 276 20 9.56 8000 0.15
i15 278 20 7.63 8200 0.15
i10 278 20 10.65 8000 0.15
i11 281 20 4.99 8000 0.15
i7 283.000 10.444 9.67 7000 0.46
i7 283.444 10.776 9.74 7000 0.46
i7 284.220 10.625 9.79 7000 0.46
i7 284.845 10.338 9.81 7000 0.46
i7 285.183 10.239 9.62 7000 0.46
i7 285.422 10.279 9.64 7000 0.46
i7 285.701 10.485 9.68 7000 0.46
i12 284 20 6.69 8600 0.15
i13 285 20 8.69 8000 0.15
i14 286 20 9.22 8000 0.15
i15 287 20 9.04 8000 0.15
i10 288 20 9.51 8200 0.15
i11 290 20 8.59 8000 0.15
i12 291 20 10.18 8000 0.15
i13 294 20 6.79 9000 0.15
i14 295 20 10.36 8000 0.15
i15 298 20 5.70 8200 0.15
i10 300 20 8.56 8000 0.15
i11 301 20 9.07 8000 0.15
i12 302 20 9.26 8000 0.15
i13 303 20 9.09 8600 0.15
i14 305 20 9.45 8000 0.15
i15 306 20 8.73 8000 0.15
i10 307 20 10.00 8200 0.15
i11 309 20 7.33 8000 0.15
i12 309 20 10.71 8000 0.15
i13 312 20 4.71 9000 0.15
i7 314.000 11.404 11.37 7000 0.04
i7 315.404 11.152 11.39 7000 0.04
i7 316.557 11.058 11.40 7000 0.04
i7 317.615 11.055 11.21 7000 0.04
i7 318.670 11.141 11.23 7000 0.04
i7 319.811 11.379 11.27 7000 0.04
i7 321.191 11.672 11.34 7000 0.04
i14 315 20 5.78 8000 0.15
i15 317 20 7.06 8000 0.15
i10 318 20 9.28 8200 0.15
i11 318 20 8.44 8000 0.15
i12 318 20 10.25 8000 0.15
i13 321 20 6.53 8000 0.15
i14 322 20 10.06 8600 0.15
i15 324 20 6.50 8000 0.15
i10 325 20 9.97 8000 0.15
i11 327 20 6.75 8200 0.15
i12 328 20 10.25 8000 0.15
i13 331 20 6.02 8000 0.15
i14 332 20 9.23 9000 0.15
i15 334 20 8.24 8000 0.15
i10 335 20 10.39 8000 0.15
i11 337 20 6.05 8200 0.15
i12 339 20 9.32 8000 0.15
i13 341 20 8.08 8000 0.15
i14 341 20 10.50 8600 0.15
i15 344 20 5.63 8000 0.15
i10 346 20 8.45 8000 0.15
i11 346 20 9.15 8200 0.15
i12 347 20 9.09 8000 0.15
i13 348 20 9.40 8000 0.15
i14 350 20 8.83 8000 0.15
i15 351 20 9.87 9000 0.15
i10 353 20 7.69 8000 0.15
i11 353 20 10.75 8000 0.15
i12 356 20 4.66 8200 0.15
i7 358.000 11.482 10.43 7000 0.86
i7 359.482 11.399 10.24 7000 0.86
i7 360.881 11.401 10.25 7000 0.86
i7 362.282 11.490 10.27 7000 0.86
i7 363.772 11.732 10.31 7000 0.86
i7 365.504 12.023 10.38 7000 0.86
i7 367.527 11.712 10.42 7000 0.86
i13 359 20 5.64 8000 0.15
i14 361 20 6.72 8600 0.15
i15 362 20 8.92 8000 0.15
i10 363 20 8.94 8000 0.15
i11 364 20 9.57 8000 0.15
i12 366 20 8.43 8200 0.15
i13 366 20 10.35 8000 0.15
i14 369 20 6.22 8000 0.15
i15 370 20 9.62 9000 0.15
i10 372 20 7.51 8000 0.15
i11 372 20 10.65 8000 0.15
i12 375 20 4.95 8200 0.15
i7 377.000 11.548 9.53 7000 0.05
i7 378.548 11.582 9.54 7000 0.05
i7 380.130 11.748 9.57 7000 0.05
i7 381.878 12.083 9.63 7000 0.05
i7 383.961 11.986 9.69 7000 0.05
i7 385.947 11.675 9.71 7000 0.05
i7 387.622 11.524 9.72 7000 0.05
i13 378 20 6.58 8000 0.15
i14 379 20 8.54 8000 0.15
i15 380 20 9.35 8600 0.15
i10 382 20 8.77 8000 0.15
i11 383 20 9.93 8000 0.15
i12 385 20 7.52 8200 0.15
i13 385 20 10.75 8000 0.15
i14 386 20 4.62 8000 0.15
i7 390.000 13.353 15.45 7000 0.07
i7 393.353 13.183 15.43 7000 0.07
i7 396.536 12.854 15.37 7000 0.07
i7 399.390 12.866 15.31 7000 0.07
i7 402.256 13.192 15.28 7000 0.07
i7 405.448 13.361 15.28 7000 0.07
i7 408.809 11.450 15.28 7000 0.07
i15 391 20 5.48 9000 0.15
i10 393 20 6.30 8000 0.15
i11 394 20 8.29 8000 0.15
i12 394 20 9.48 8000 0.15
i13 396 20 8.43 8200 0.15
i14 396 20 10.32 8000 0.15
i15 399 20 6.31 8000 0.15
i10 400 20 9.76 8600 0.15
i11 402 20 7.21 8000 0.15
i12 402 20 10.58 8000 0.15
i13 405 20 5.12 8200 0.15
i14 408 20 7.10 8000 0.15
i15 408 20 9.11 8000 0.15
i10 409 20 8.75 9000 0.15
i11 410 20 9.88 8000 0.15
i12 412 20 7.65 8000 0.15
i13 412 20 10.75 8000 0.15
i14 415 20 4.65 8200 0.15
i7 417.000 10.466 9.40 7000 0.32
i7 417.466 10.806 9.46 7000 0.32
i7 418.272 10.633 9.51 7000 0.32
i7 418.905 10.330 9.53 7000 0.32
i7 419.234 12.153 9.53 7000 0.32
i7 421.387 11.975 9.51 7000 0.32
i7 423.362 11.670 9.46 7000 0.32
i15 418 20 5.59 8000 0.15
i10 420 20 6.59 8600 0.15
i11 421 20 8.76 8000 0.15
i12 422 20 9.12 8000 0.15
i13 423 20 9.24 8000 0.15
i14 424 20 9.14 8200 0.15
i15 425 20 9.36 8000 0.15
i10 427 20 8.93 8000 0.15
i11 428 20 9.71 9000 0.15
i12 430 20 8.11 8000 0.15
i13 430 20 10.61 8000 0.15
i14 433 20 5.30 8200 0.15
i15 436 20 7.60 8000 0.15
i10 436 20 9.37 8000 0.15
i11 438 20 8.44 8600 0.15
i12 438 20 10.28 8000 0.15
i13 441 20 6.43 8000 0.15
i14 442 20 9.93 8000 0.15
i15 444 20 6.82 8200 0.15
i10 445 20 10.32 8000 0.15
i11 448 20 5.83 9000 0.15
i12 450 20 8.85 8000 0.15
i13 451 20 8.76 8000 0.15
i14 452 20 9.79 8000 0.15
i15 454 20 7.87 8200 0.15
i10 454 20 10.71 8000 0.15
i11 455 20 4.87 8000 0.15
i7 457.000 12.075 13.26 7000 0.42
i7 459.075 12.279 13.25 7000 0.42
i7 463.354 12.382 13.25 7000 0.42
i7 465.736 10.483 13.26 7000 0.42
i7 466.219 10.679 13.29 7000 0.42
i7 466.897 11.021 13.35 7000 0.42
i7 467.918 10.890 13.40 7000 0.42
i12 460 20 6.34 8600 0.15
i13 461 20 8.17 8000 0.15
i14 462 20 9.56 8000 0.15
i15 463 20 8.21 8200 0.15
i10 463 20 10.50 8000 0.15
i11 466 20 5.66 8000 0.15
i12 468 20 8.52 9000 0.15
i13 469 20 9.09 8000 0.15
i14 470 20 9.22 8000 0.15
i15 471 20 9.18 8000 0.15
i10 472 20 9.28 8200 0.15
i11 473 20 9.08 8000 0.15
i12 474 20 9.46 8000 0.15
i13 476 20 8.71 8600 0.15
i14 477 20 10.04 8000 0.15
i15 479 20 7.22 8000 0.15
i10 479 20 10.67 8000 0.15
i11 482 20 4.82 8200 0.15
i7 484.000 11.373 9.78 7000 0.57
i7 485.373 13.197 9.76 7000 0.57
i7 488.570 12.895 9.72 7000 0.57
i7 491.465 12.703 9.65 7000 0.57
i7 494.168 13.046 9.62 7000 0.57
i7 497.214 13.253 9.61 7000 0.57
i7 500.467 13.352 9.61 7000 0.57
i12 485 20 6.16 8000 0.15
i13 486 20 7.84 9000 0.15
i14 486 20 9.62 8000 0.15
i15 486 20 7.98 8000 0.15
i10 488 20 10.63 8000 0.15
i11 491 20 5.17 8200 0.15
i12 494 20 7.26 8000 0.15
i13 494 20 9.23 8000 0.15
i14 495 20 8.60 8600 0.15
i15 496 20 10.08 8000 0.15
i10 498 20 7.06 8000 0.15
i11 498 20 10.58 8000 0.15
i12 501 20 5.08 8200 0.15
i13 504 20 6.97 8000 0.15
i14 504 20 9.01 8000 0.15
i15 505 20 8.88 9000 0.15
i10 506 20 9.67 8000 0.15
i11 508 20 8.18 8000 0.15
i12 508 20 10.56 8000 0.15
i13 512 20 5.49 8200 0.15
i14 513 20 8.11 8000 0.15
i15 513 20 9.34 8000 0.15
i10 515 20 8.65 8600 0.15
i11 516 20 10.06 8000 0.15
i12 518 20 7.13 8000 0.15
i13 518 20 10.62 8200 0.15
i14 521 20 4.95 8000 0.15
i7 523.000 10.343 9.26 7000 0.32
i7 523.343 10.665 9.32 7000 0.32
i7 524.007 10.738 9.38 7000 0.32
i7 524.745 10.398 9.41 7000 0.32
i7 525.143 10.232 9.42 7000 0.32
i7 525.375 10.189 9.23 7000 0.32
i7 525.564 10.226 9.24 7000 0.32
i15 524 20 6.57 9000 0.15
i10 525 20 8.53 8000 0.15
i11 526 20 9.36 8000 0.15
i12 528 20 8.74 8000 0.15
i13 529 20 9.97 8200 0.15
i14 531 20 7.41 8000 0.15
i15 531 20 10.73 8000 0.15
i10 534 20 4.65 8600 0.15
i7 536.000 10.916 9.95 7000 0.26
i7 536.916 10.894 10.00 7000 0.26
i7 537.810 10.565 10.03 7000 0.26
i7 538.375 10.412 10.04 7000 0.26
i7 538.787 10.361 9.84 7000 0.26
i7 539.148 10.363 9.85 7000 0.26
i7 539.510 10.418 9.86 7000 0.26
i11 537 20 5.58 8000 0.15
i12 539 20 6.57 8200 0.15
i13 540 20 8.72 8000 0.15
i14 541 20 9.15 8000 0.15
i15 542 20 9.18 8000 0.15
i10 543 20 9.25 9000 0.15
i11 544 20 9.14 8000 0.15
i12 545 20 9.36 8000 0.15
i13 547 20 8.92 8000 0.15
i14 548 20 9.73 8200 0.15
i15 550 20 8.05 8000 0.15
i10 550 20 10.64 8000 0.15
i11 553 20 5.17 8600 0.15
i12 556 20 7.24 8000 0.15
i13 556 20 9.22 8000 0.15
i14 557 20 8.62 8200 0.15
i15 558 20 10.06 8000 0.15
i10 560 20 7.12 8000 0.15
i11 560 20 10.61 8000 0.15
i12 563 20 4.98 9000 0.15
i7 565.000 10.931 9.95 7000 0.10
i7 565.931 10.890 10.01 7000 0.10
i7 566.820 10.561 10.04 7000 0.10
i7 567.381 10.399 10.04 7000 0.10
i7 567.781 12.318 10.04 7000 0.10
i7 570.098 12.232 10.03 7000 0.10
i7 572.331 12.057 10.01 7000 0.10
i13 566 20 6.66 8000 0.15
i14 567 20 8.66 8200 0.15
i15 568 20 9.25 8000 0.15
i10 569 20 8.98 8000 0.15
i11 570 20 9.61 8000 0.15
i12 571 20 8.36 8600 0.15
i13 572 20 10.41 8000 0.15
i14 575 20 6.00 8000 0.15
i15 577 20 9.23 8200 0.15
i10 578 20 8.23 8000 0.15
i11 578 20 10.40 8000 0.15
i12 581 20 6.02 9000 0.15
i13 583 20 9.25 8000 0.15
i14 584 20 8.19 8000 0.15
i15 584 20 10.43 8000 0.15
i10 587 20 5.90 8200 0.15
i11 589 20 9.03 8000 0.15
i12 590 20 8.53 8000 0.15
i13 591 20 10.10 8600 0.15
i14 594 20 6.98 8000 0.15
i15 594 20 10.52 8000 0.15
i10 597 20 5.25 8200 0.15
i11 600 20 7.44 8000 0.15
i12 600 20 9.32 8000 0.15
i13 602 20 8.48 9000 0.15
i14 602 20 10.23 8000 0.15
i15 605 20 6.61 8000 0.15
i10 606 20 10.16 8200 0.15
i11 609 20 6.24 8000 0.15
i12 610 20 9.60 8000 0.15
i13 612 20 7.56 8600 0.15
i14 612 20 10.66 8000 0.15
i15 615 20 4.95 8000 0.15
i7 617.000 12.157 13.42 7000 0.19
i7 619.157 12.490 13.40 7000 0.19
i7 621.646 12.663 13.39 7000 0.19
i7 624.310 10.779 13.40 7000 0.19
i7 625.089 10.951 13.42 7000 0.19
i7 626.040 11.282 13.47 7000 0.19
i7 627.322 11.334 13.54 7000 0.19
i10 618 20 6.59 8200 0.15
i11 619 20 8.56 8000 0.15
i12 620 20 9.34 8000 0.15
i13 622 20 8.79 9000 0.15
i14 623 20 9.90 8000 0.15
i15 624 20 7.61 8000 0.15
i10 625 20 10.75 8200 0.15
i11 628 20 4.63 8000 0.15
i7 630.000 11.466 10.03 7000 0.43
i7 631.466 11.383 10.03 7000 0.43
i7 632.849 13.309 10.03 7000 0.43
i7 636.158 13.166 10.01 7000 0.43
i7 639.324 12.858 9.96 7000 0.43
i7 642.182 12.706 9.89 7000 0.43
i7 644.888 13.056 9.86 7000 0.43
i12 629 20 5.51 8600 0.15
i13 633 20 6.39 8000 0.15
i14 634 20 8.45 8000 0.15
i15 634 20 9.38 8000 0.15
i10 636 20 8.67 8200 0.15
i11 637 20 10.05 8000 0.15
i12 639 20 7.17 8000 0.15
i13 639 20 10.64 8000 0.15
i14 642 20 4.89 9000 0.15
i7 644.000 11.852 14.99 7000 0.18
i7 645.852 11.694 14.96 7000 0.18
i7 647.546 11.345 14.89 7000 0.18
i7 648.891 11.467 14.84 7000 0.18
i7 650.358 11.782 14.82 7000 0.18
i7 652.140 11.925 14.81 7000 0.18
i7 654.064 11.986 14.81 7000 0.18
i15 645 20 6.39 8000 0.15
i10 646 20 8.25 8200 0.15
i11 646 20 9.53 8000 0.15
i12 648 20 8.32 8000 0.15
i13 648 20 10.42 8000 0.15
i14 651 20 5.96 8600 0.15
i15 654 20 9.14 8000 0.15
i10 654 20 8.36 8000 0.15
i11 654 20 10.28 8200 0.15
i12 657 20 6.42 8000 0.15
i13 658 20 9.92 8000 0.15
i14 660 20 6.84 9000 0.15
i15 661 20 10.34 8000 0.15
i10 664 20 5.79 8000 0.15
i11 666 20 8.76 8200 0.15
i12 667 20 8.87 8000 0.15
i13 668 20 9.62 8000 0.15
i14 670 20 8.31 8600 0.15
i15 670 20 10.46 8000 0.15
i10 673 20 5.85 8000 0.15
i11 675 20 8.92 8200 0.15
i12 676 20 8.67 8000 0.15
i13 677 20 9.91 8000 0.15
i14 679 20 7.53 9000 0.15
i15 679 20 10.75 8000 0.15
i10 682 20 4.63 8000 0.15
i7 684.000 10.153 9.10 7000 0.05
i7 684.153 10.333 9.13 7000 0.05
i7 684.485 10.683 9.20 7000 0.05
i7 685.168 10.590 9.25 7000 0.05
i7 685.759 10.263 9.27 7000 0.05
i7 686.021 10.088 9.27 7000 0.05
i7 686.110 11.952 9.26 7000 0.05
i11 685 20 5.52 8200 0.15
i12 687 20 6.41 8000 0.15
i13 688 20 8.47 8000 0.15
i14 688 20 9.37 8000 0.15
i15 690 20 8.71 8600 0.15
i10 691 20 10.00 8000 0.15
i11 693 20 7.32 8000 0.15
i12 693 20 10.70 8200 0.15
i13 696 20 4.72 8000 0.15
i7 698.000 12.405 14.33 7000 0.41
i7 700.405 12.643 14.28 7000 0.41
i7 703.048 12.945 14.27 7000 0.41
i7 705.993 11.141 14.27 7000 0.41
i7 707.134 11.387 14.30 7000 0.41
i7 708.521 11.738 14.37 7000 0.41
i7 710.259 11.530 14.41 7000 0.41
i14 699 20 5.82 9000 0.15
i15 701 20 7.15 8000 0.15
i10 701 20 9.36 8000 0.15
i11 703 20 8.32 8000 0.15
i12 703 20 10.37 8200 0.15
i13 706 20 6.13 8000 0.15
i14 707 20 9.45 8000 0.15
i15 709 20 7.83 8600 0.15
i10 709 20 10.62 8000 0.15
i11 712 20 5.18 8000 0.15
i12 715 20 7.26 8200 0.15
i13 715 20 9.23 8000 0.15
i14 716 20 8.60 8000 0.15
i15 717 20 10.09 8000 0.15
i10 718 20 7.04 9000 0.15
i11 719 20 10.56 8000 0.15
i12 721 20 5.12 8000 0.15
i13 725 20 7.06 8200 0.15
i14 725 20 9.09 8000 0.15
i15 726 20 8.79 8000 0.15
i10 727 20 9.83 8600 0.15
i11 729 20 7.79 8000 0.15
i12 729 20 10.73 8000 0.15
i13 732 20 4.76 8200 0.15
i7 734.000 13.218 9.56 7000 0.78
i7 737.218 12.905 9.52 7000 0.78
i7 740.123 12.663 9.45 7000 0.78
i7 742.786 13.010 9.42 7000 0.78
i7 745.796 13.267 9.41 7000 0.78
i7 749.063 11.471 9.43 7000 0.78
i7 750.534 11.783 9.47 7000 0.78
i14 735 20 5.96 8000 0.15
i15 737 20 7.44 8000 0.15
i10 737 20 9.54 9000 0.15
i11 739 20 8.05 8000 0.15
i12 739 20 10.58 8000 0.15
i13 742 20 5.37 8200 0.15
i14 744 20 7.80 8000 0.15
i15 744 20 9.40 8000 0.15
i10 746 20 8.45 8000 0.15
i11 748 20 10.28 8600 0.15
i12 748 20 6.45 8000 0.15
i13 750 20 9.96 8000 0.15
i14 752 20 6.75 8200 0.15
i15 753 20 10.25 8000 0.15
i10 756 20 6.02 8000 0.15
i11 758 20 9.22 9000 0.15
i12 759 20 8.25 8000 0.15
i13 759 20 10.38 8000 0.15
i14 762 20 6.08 8200 0.15
i15 764 20 9.38 8000 0.15
i10 766 20 7.97 8000 0.15
i11 766 20 10.56 8600 0.15
i7 766 20.000 11.56 7000 0.00
i6 766 30 9.56 9000 10 0.5
e

[Non-text portions of this message have been removed]

🔗genewardsmith <genewardsmith@...>

3/29/2011 6:52:57 PM

--- In MakeMicroMusic@yahoogroups.com, Chris Vaisvil <chrisvaisvil@...> wrote:
>
> Yes, I would like to be involved.
>
> I purchased the csound book some time ago but was disappointed when I found
> it was made for version 3 and at the time 5 was out. When I went to the
> csound list *no one* would answer my questions which was disappointing.

I had the same experience. If I seem a little hostile to the CSound mind set, that's partly why. And no one seemed to be actually interested in music!

Thanks for the info.

🔗Graham Breed <gbreed@...>

3/29/2011 9:31:56 PM

On 30 March 2011 05:30, Chris Vaisvil <chrisvaisvil@...> wrote:

> In any case I found sticking with version 3 made sense to me. Things in the
> current version didn't make as much sense and I learned by reading and
> compiling the source of the copious examples - I even discovered that you
> could write microtonal music using pitch class notation by using fractions.
> i.e. 4.01 and 4.015 were a quarter tone apart.

Moving to version 5 is worth it. You get GUI and real time support,
along with friendly new opcodes. And user defined upcodes and named
instruments. You will notice, though, that the old tutorials teach
you obsolete ways of doing things. There are a load of examples in
the Book that assume sr=kr and that kills real time performance. It's
a shame there isn't a command-line-only version to simplify
installation.

I don't remember installing under Windows being any problem at all.
You have to make sure your files have the right line endings if you're
moving from UNIX -- but I think even that was a bug that's been fixed.

Graham

🔗Graham Breed <gbreed@...>

3/29/2011 9:51:37 PM

On 29 March 2011 20:11, genewardsmith <genewardsmith@...> wrote:

> What would be good is a small suite of instruments which can be treated like black boxes. You don't need to be a soundfont editor to use sf2, you don't need to be an auto mechanic and drive around with the hood up so you can peer at the engine to drive. Why require anyone, ever, to actually look at the CSound code so as to figure out how to make it work?

Like the one Aaron gave you, and is trying to help you to use, maybe?

> We could start a little project right on this group for CSound Done Right. What that would mean is that some format be agreed on so that all you need to know is this format, and the instrument can be treated as a black box. I would suggest something like midi with some of the stupidities removed, particularly the one about tuning. CSound uses frequencies, which is OK, but if I had my druthers the standard would be "dollars", that is, 69+12log2(f/440), where f is the frequency. The point of that is that it corresponds to what midi does, and is easier to understand by eye. Of course an absolute requirement around here would be that all instruments produce a tone which corresponds to the expected frequency, and not something else.

That's what CsoundAC.csd calls "MIDI key". Before agreeing on the
format it would be nice to agree on the language to describe it.

How are you getting on with CsoundAC.csd? It seems to be what you're
asking for. You must know about it because you told me about it.
Here's the instrument format if you want to discuss it:

; p1 Instrument number
; p2 Time of note, in absolute seconds from start of performance
; p3 Duration of note, in seconds
; p4 MIDI key (may be fractional)
; p5 MIDI velocity (may be fractional), rescaled (0 = -84 dBFS, 127 = 0 dBFS)
; p6 Audio phase, in radians (seldom used; enables grain notes to
; implement arbitrary audio transforms)
; p7 x location or stereo pan (-1 through 0 to +1)
; p8 y location or stage depth (-1 through 0 to +1)
; p9 z location or stage height (-1 through 0 to +1)
; p10 Pitch-class set, as sum of 2^(pitch-class)

Graham

🔗Aaron Krister Johnson <aaron@...>

3/29/2011 11:01:46 PM

Graham,

I think the problem with encouraging Gene to use Gogin's CsoundAC set is
that I couldn't even get it to work. :(

Truth be told, I also didn't want to have to hack Gogins' private standard
to work with mine, which by that time, I had already developed along with
microcsound.

Anyway, CsoundAC orchestras require a lot of the STK instruments, and
certain sample sets, which may or may not be part of any given install....

AKJ

On Tue, Mar 29, 2011 at 11:51 PM, Graham Breed <gbreed@...> wrote:

> On 29 March 2011 20:11, genewardsmith <genewardsmith@...> wrote:
>
> > What would be good is a small suite of instruments which can be treated
> like black boxes. You don't need to be a soundfont editor to use sf2, you
> don't need to be an auto mechanic and drive around with the hood up so you
> can peer at the engine to drive. Why require anyone, ever, to actually look
> at the CSound code so as to figure out how to make it work?
>
> Like the one Aaron gave you, and is trying to help you to use, maybe?
>
> > We could start a little project right on this group for CSound Done
> Right. What that would mean is that some format be agreed on so that all you
> need to know is this format, and the instrument can be treated as a black
> box. I would suggest something like midi with some of the stupidities
> removed, particularly the one about tuning. CSound uses frequencies, which
> is OK, but if I had my druthers the standard would be "dollars", that is,
> 69+12log2(f/440), where f is the frequency. The point of that is that it
> corresponds to what midi does, and is easier to understand by eye. Of course
> an absolute requirement around here would be that all instruments produce a
> tone which corresponds to the expected frequency, and not something else.
>
> That's what CsoundAC.csd calls "MIDI key". Before agreeing on the
> format it would be nice to agree on the language to describe it.
>
> How are you getting on with CsoundAC.csd? It seems to be what you're
> asking for. You must know about it because you told me about it.
> Here's the instrument format if you want to discuss it:
>
> ; p1 Instrument number
> ; p2 Time of note, in absolute seconds from start of performance
> ; p3 Duration of note, in seconds
> ; p4 MIDI key (may be fractional)
> ; p5 MIDI velocity (may be fractional), rescaled (0 = -84 dBFS, 127 = 0
> dBFS)
> ; p6 Audio phase, in radians (seldom used; enables grain notes to
> ; implement arbitrary audio transforms)
> ; p7 x location or stereo pan (-1 through 0 to +1)
> ; p8 y location or stage depth (-1 through 0 to +1)
> ; p9 z location or stage height (-1 through 0 to +1)
> ; p10 Pitch-class set, as sum of 2^(pitch-class)
>
>
> Graham
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗genewardsmith <genewardsmith@...>

3/29/2011 10:57:45 PM

--- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@...> wrote:

> Like the one Aaron gave you, and is trying to help you to use, maybe?

I've taken what Aaron gave me and have tried getting to work, so far without success. However, if you want to be helpful, you are much better qualified to port his Python script to Windows than I am.

>\
> That's what CsoundAC.csd calls "MIDI key". Before agreeing on the
> format it would be nice to agree on the language to describe it.
>
> How are you getting on with CsoundAC.csd? It seems to be what you're
> asking for.

I'm not getting along with it at all. I was supposed to uninstall Python 2.7 and install Python 2.6 to get the program it goes with to work, and I haven't done so as yet because the whole approach irks me. Why not just give the peonage .sco files if they ask for same?

You must know about it because you told me about it.
> Here's the instrument format if you want to discuss it:
>
> ; p1 Instrument number
> ; p2 Time of note, in absolute seconds from start of performance
> ; p3 Duration of note, in seconds
> ; p4 MIDI key (may be fractional)
> ; p5 MIDI velocity (may be fractional), rescaled (0 = -84 dBFS, 127 = 0 dBFS)
> ; p6 Audio phase, in radians (seldom used; enables grain notes to
> ; implement arbitrary audio transforms)
> ; p7 x location or stereo pan (-1 through 0 to +1)
> ; p8 y location or stage depth (-1 through 0 to +1)
> ; p9 z location or stage height (-1 through 0 to +1)
> ; p10 Pitch-class set, as sum of 2^(pitch-class)

Which, you know, should have some examples to go with it.

🔗Graham Breed <gbreed@...>

3/29/2011 11:59:35 PM

On 30 March 2011 09:57, genewardsmith <genewardsmith@...> wrote:
>
>
> --- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@...> wrote:
>
>> Like the one Aaron gave you, and is trying to help you to use, maybe?
>
> I've taken what Aaron gave me and have tried getting to work, so far without success. However, if you want to be helpful, you are much better qualified to port his Python script to Windows than I am.

I'm not because I don't have install privileges on a Windows box. If
you stated your problems I could suggest answers.

>> That's what CsoundAC.csd calls "MIDI key".  Before agreeing on the
>> format it would be nice to agree on the language to describe it.
>>
>> How are you getting on with CsoundAC.csd?  It seems to be what you're
>> asking for.
>
> I'm not getting along with it at all. I was supposed to uninstall Python 2.7 and install Python 2.6 to get the program it goes with to work, and I haven't done so as yet because the whole approach irks me. Why not just give the peonage .sco files if they ask for same?

Maybe it's a problem. Aaron said he had problems, I haven't tried it.
But we're both on Linux and CsoundAC was developed for Windows so
it's likely to be easier for you. Did you ask Michael Gogins, the
developer, for a SCO file? I think he's doing his best. All of these
projects are short of developer time.

Are you sure you need to uninstall Python 2.7? The Python installers
are designed to allow multiple versions to co-exist. I remember the
Windows installer to be pretty simple (but stay with the default
path). Like, easier to run it than complain about having to run it.
Stick with 32 bits.

>  You must know about it because you told me about it.
>> Here's the instrument format if you want to discuss it:
>>
>> ; p1  Instrument number
>> ; p2    Time of note, in absolute seconds from start of performance
>> ; p3  Duration of note, in seconds
>> ; p4  MIDI key (may be fractional)
>> ; p5  MIDI velocity (may be fractional), rescaled (0 = -84 dBFS, 127 = 0 dBFS)
>> ; p6  Audio phase, in radians (seldom used; enables grain notes to
>> ;         implement arbitrary audio transforms)
>> ; p7  x location or stereo pan (-1 through 0 to +1)
>> ; p8  y location or stage depth (-1 through 0 to +1)
>> ; p9  z location or stage height (-1 through 0 to +1)
>> ; p10 Pitch-class set, as sum of 2^(pitch-class)
>
> Which, you know, should have some examples to go with it.

It would be nice, and maybe you could produce some. If you can write
a score file (for which there are tutorials) it looks trivial to me.
I could write one if you have problems. Resolving the dependencies to
get the orchestra to work might be harder. Getting a clean install of
CsoundAC would probably help. But the Windows installer is already
more monolithic than the Linux packages Aaron and I are working with.
If the orchestra as a whole doesn't work with it perhaps Michael would
like to receive a bug report. (Individual instruments will have their
own dependencies.) I can look at it tonight, on Linux. If you're
looking for excuses to not bother, neither will I.

Graham

🔗genewardsmith <genewardsmith@...>

3/30/2011 12:38:41 AM

--- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@...> wrote:

> I'm not because I don't have install privileges on a Windows box.

I talked to Aaron and he decided to port it to Windows himself, which ought to work.

🔗lobawad <lobawad@...>

3/30/2011 3:52:33 AM

Say Gene, do you currently have a way of generating and editing MIDI files to your liking, and are actually looking for a nice way to render them? Because if you do, it would be easy to make black-box Csound .csd's that would require nothing but copy/pasting the path to the midi file then rendering.

--- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...> wrote:
>
>
>
> --- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@> wrote:
>
> > I'm not because I don't have install privileges on a Windows box.
>
> I talked to Aaron and he decided to port it to Windows himself, which ought to work.
>

🔗genewardsmith <genewardsmith@...>

3/30/2011 8:32:17 AM

--- In MakeMicroMusic@yahoogroups.com, "lobawad" <lobawad@...> wrote:
>
> Say Gene, do you currently have a way of generating and editing MIDI files to your liking, and are actually looking for a nice way to render them? Because if you do, it would be easy to make black-box Csound .csd's that would require nothing but copy/pasting the path to the midi file then rendering.

TiMidity is a pretty nice way to render them in midi, but I think this is a good project, especially if it involves all-CSound instruments.

🔗Aaron Krister Johnson <aaron@...>

3/30/2011 8:37:07 AM

Yes, this is true, Cameron--and I also had an idea that is rarely possible
elsewhere, hear me out:

For those who like/want to still use MIDI, you can design a Csound
'black-box' that accesses soundfonts which:

1) correctly picks the correct sample for the given implied pitch.

2) uses POLY AFTERTOUCH messages intead of pitch bend messages...IOW, one
designs a Csound instrument using one of the 'midic7' opcode or something,
that would read poly-aftertouch messages, which don't effect the whole
channel. No more channel swapping just to handle instruments with long
release times getting bent by the next pitch.

Of course, using a script to change pitch bend messages to poly-aftertouch
messages is a trivial task if one is using something like mf2t/t2mf; in fact
it's probably even trivial to edit the raw midi bytes in the file.

AKJ

On Wed, Mar 30, 2011 at 5:52 AM, lobawad <lobawad@...> wrote:

> Say Gene, do you currently have a way of generating and editing MIDI files
> to your liking, and are actually looking for a nice way to render them?
> Because if you do, it would be easy to make black-box Csound .csd's that
> would require nothing but copy/pasting the path to the midi file then
> rendering.
>
> --- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...>
> wrote:
> >
> >
> >
> > --- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@> wrote:
> >
> > > I'm not because I don't have install privileges on a Windows box.
> >
> > I talked to Aaron and he decided to port it to Windows himself, which
> ought to work.
> >
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗lobawad <lobawad@...>

3/30/2011 8:42:40 AM

Correctly selecting an appropriate root sample would be important, especially with large tunings. I think that synthesis rather than samples is generally a better choice for microtonal work, though. Obviously some people prefer sampled instruments, of course.

--- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...> wrote:
>
> Yes, this is true, Cameron--and I also had an idea that is rarely possible
> elsewhere, hear me out:
>
> For those who like/want to still use MIDI, you can design a Csound
> 'black-box' that accesses soundfonts which:
>
> 1) correctly picks the correct sample for the given implied pitch.
>
> 2) uses POLY AFTERTOUCH messages intead of pitch bend messages...IOW, one
> designs a Csound instrument using one of the 'midic7' opcode or something,
> that would read poly-aftertouch messages, which don't effect the whole
> channel. No more channel swapping just to handle instruments with long
> release times getting bent by the next pitch.
>
> Of course, using a script to change pitch bend messages to poly-aftertouch
> messages is a trivial task if one is using something like mf2t/t2mf; in fact
> it's probably even trivial to edit the raw midi bytes in the file.
>
> AKJ
>
> On Wed, Mar 30, 2011 at 5:52 AM, lobawad <lobawad@...> wrote:
>
> > Say Gene, do you currently have a way of generating and editing MIDI files
> > to your liking, and are actually looking for a nice way to render them?
> > Because if you do, it would be easy to make black-box Csound .csd's that
> > would require nothing but copy/pasting the path to the midi file then
> > rendering.
> >
> > --- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@>
> > wrote:
> > >
> > >
> > >
> > > --- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@> wrote:
> > >
> > > > I'm not because I don't have install privileges on a Windows box.
> > >
> > > I talked to Aaron and he decided to port it to Windows himself, which
> > ought to work.
> > >
> >
> >
> >
> >
> > ------------------------------------
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
>
>
> --
> Aaron Krister Johnson
> http://www.akjmusic.com
> http://www.untwelve.org
>
>
> [Non-text portions of this message have been removed]
>

🔗Aaron Krister Johnson <aaron@...>

3/30/2011 8:44:12 AM

And like Gene told me, he wants to be able to use not only samples, but
different synthesis paradigms in his music.

I suggested to him last night a good basic set of classic synthesis
instruments:

1) a standard minimoog-like subtractive synth: 2-vcos, a nice lowpass filter
with resonance, 2 ADSR envelopes, an LFO or 2, noise source (white/pink)

2) a nice, but stripped down, FM synth. The matrix synth I just designed
would fit the bill--rich possibilities, but not overloaded with parameters
like the DX7 was.

3) a flexible Karplus-Strong pluck instrument

4) a wavetable organ-synth

5) soundfont sampling engine for the kind of work he already does in
Timidity....

6) maybe purchasing something like PianoTeq, or some other VST instruments,
which can apparently work seamlessly with Csound as plugins.

AKJ

On Wed, Mar 30, 2011 at 10:32 AM, genewardsmith <genewardsmith@...
> wrote:

>
>
> --- In MakeMicroMusic@yahoogroups.com, "lobawad" <lobawad@...> wrote:
> >
> > Say Gene, do you currently have a way of generating and editing MIDI
> files to your liking, and are actually looking for a nice way to render
> them? Because if you do, it would be easy to make black-box Csound .csd's
> that would require nothing but copy/pasting the path to the midi file then
> rendering.
>
> TiMidity is a pretty nice way to render them in midi, but I think this is a
> good project, especially if it involves all-CSound instruments.
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗Aaron Krister Johnson <aaron@...>

3/30/2011 8:50:54 AM

Cameron-

re:samples vs. synthesis.

I go back and forth. Synthesis is flexible, but harder to make 'naturally
musical' in the same 'traditional' way instrument, even sampled instruments,
can be. I suspect the richest textures in the electo-acoustic paradigm are
when you combine different synthesis types.

I say 'can be' because if one doesn't have an expressive performance,
samples actually sound worse than sysnthesis in many cases.... :)

A sample's musicality is often directly proportional to how large it is: the
bigger is usually better, because that implies a lot of velocity layers and
a lot of pitch ranges.

BTW, I really really really want to sample my old 1888 Steinway, both as a
regular piano, and as a "fake zither"---it sounds great to put your finger
on the strings and pluck! I'd love to synthesize such a sound, but I think
it would be exceedingly expensive in terms of my time and probably would not
be realistic. Alas, multi-sampling would eat my time as well, and I have the
additional problem of living on a busy street with lots of urban background
noise. I'd have to do such a recording project over several nights at like,
3 in the morning....

AKJ

On Wed, Mar 30, 2011 at 10:42 AM, lobawad <lobawad@...> wrote:

> Correctly selecting an appropriate root sample would be important,
> especially with large tunings. I think that synthesis rather than samples is
> generally a better choice for microtonal work, though. Obviously some people
> prefer sampled instruments, of course.
>
> --- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...>
> wrote:
> >
> > Yes, this is true, Cameron--and I also had an idea that is rarely
> possible
> > elsewhere, hear me out:
> >
> > For those who like/want to still use MIDI, you can design a Csound
> > 'black-box' that accesses soundfonts which:
> >
> > 1) correctly picks the correct sample for the given implied pitch.
> >
> > 2) uses POLY AFTERTOUCH messages intead of pitch bend messages...IOW, one
> > designs a Csound instrument using one of the 'midic7' opcode or
> something,
> > that would read poly-aftertouch messages, which don't effect the whole
> > channel. No more channel swapping just to handle instruments with long
> > release times getting bent by the next pitch.
> >
> > Of course, using a script to change pitch bend messages to
> poly-aftertouch
> > messages is a trivial task if one is using something like mf2t/t2mf; in
> fact
> > it's probably even trivial to edit the raw midi bytes in the file.
> >
> > AKJ
> >
> > On Wed, Mar 30, 2011 at 5:52 AM, lobawad <lobawad@...> wrote:
> >
> > > Say Gene, do you currently have a way of generating and editing MIDI
> files
> > > to your liking, and are actually looking for a nice way to render them?
> > > Because if you do, it would be easy to make black-box Csound .csd's
> that
> > > would require nothing but copy/pasting the path to the midi file then
> > > rendering.
> > >
> > > --- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@
> >
> > > wrote:
> > > >
> > > >
> > > >
> > > > --- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@> wrote:
> > > >
> > > > > I'm not because I don't have install privileges on a Windows box.
> > > >
> > > > I talked to Aaron and he decided to port it to Windows himself, which
> > > ought to work.
> > > >
> > >
> > >
> > >
> > >
> > > ------------------------------------
> > >
> > > Yahoo! Groups Links
> > >
> > >
> > >
> > >
> >
> >
> > --
> > Aaron Krister Johnson
> > http://www.akjmusic.com
> > http://www.untwelve.org
> >
> >
> > [Non-text portions of this message have been removed]
> >
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗Kalle Aho <kalleaho@...>

3/30/2011 3:15:44 PM

--- In MakeMicroMusic@yahoogroups.com, Chris Vaisvil <chrisvaisvil@...> wrote:

> *Trapped in Convert example http://www.traxinspace.com/song/42453

Yeah, Trapped in Convert, a classic, composed in 1979! I always imagine
flying through an asteroid field in a retro-futuristic 70's scifi
spaceship that contains blinky-light mainframe computer equipment when
I listen to it. :) The audio stream in traxinspace was choppy, if
anyone else has the same problem here's another link:

http://freaknet.org/martin/audio/csound/trapped.ogg

Kalle

🔗chrisvaisvil@...

3/30/2011 4:04:29 PM

Hi Kalle, perhaps I should make all of those csound examples into a streamable album on my site. TiS does have issues.

Chris
-----Original Message-----
From: "Kalle Aho" <kalleaho@...>
Sender: MakeMicroMusic@yahoogroups.com
Date: Wed, 30 Mar 2011 22:15:44
To: <MakeMicroMusic@yahoogroups.com>
Reply-To: MakeMicroMusic@yahoogroups.com
Subject: [MMM] Re: quasi-bandlimited sawtooth and pulse waveforms

--- In MakeMicroMusic@yahoogroups.com, Chris Vaisvil <chrisvaisvil@...> wrote:

> *Trapped in Convert example http://www.traxinspace.com/song/42453

Yeah, Trapped in Convert, a classic, composed in 1979! I always imagine
flying through an asteroid field in a retro-futuristic 70's scifi
spaceship that contains blinky-light mainframe computer equipment when
I listen to it. :) The audio stream in traxinspace was choppy, if
anyone else has the same problem here's another link:

http://freaknet.org/martin/audio/csound/trapped.ogg

Kalle

[Non-text portions of this message have been removed]

🔗Graham Breed <gbreed@...>

3/31/2011 11:35:10 AM

Aaron Krister Johnson <aaron@...> wrote:
> Graham,
>
> I think the problem with encouraging Gene to use Gogin's
> CsoundAC set is that I couldn't even get it to work. :(

I tried it last night, and got it to work without much
trouble.

> Truth be told, I also didn't want to have to hack Gogins'
> private standard to work with mine, which by that time, I
> had already developed along with microcsound.

The great thing about standards is that there are so many
to choose from!

> Anyway, CsoundAC orchestras require a lot of the STK
> instruments, and certain sample sets, which may or may
> not be part of any given install....

Yes, the STK instruments don't work without whatever it is
they come from. So you remove them, and then it works.
Here's what I came up with:

http://x31eq.com/CsoundAC.orc

I started with the version of CsoundAC.csd that came with
Csound 5.10, and so is probably out of date by now. I
noticed that the Fluid and Pianoteq instruments ignore
pitch bend and related information, and so won't be
microtonal. That could be corrected.

Here's an example of a score that you can add to the
original .csd, if that happens to work:

i 2 0 0.3 60 100
i . + . 62
i . + . 63.5
i . + . 64
i . + . 65
i . + . 67
i . + . 69
i . + . 70.5
i . + . 71
i . + . 72

It plays the union of a major scale and quatertone-Rast.
You can change the first "2" to other values for other
instruments. The score to go with my orchestra should be
here:

http://x31eq.com/demo.sco

Graham

🔗genewardsmith <genewardsmith@...>

3/31/2011 12:25:29 PM

--- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@...> wrote:

> http://x31eq.com/demo.sco
>
>
> Graham
>

Wow, thanks Graham! Of course, AKJ tells me that Grogin's orchestra pretty well sucks if you are not some kind of mutant, but who knows, I could like it.

🔗genewardsmith <genewardsmith@...>

3/31/2011 12:42:21 PM

--- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@...> wrote:

> http://x31eq.com/CsoundAC.orc

This is OK.

> http://x31eq.com/demo.sco

This link seems to be broken.

🔗Graham Breed <gbreed@...>

3/31/2011 12:51:57 PM

"genewardsmith" <genewardsmith@...> wrote:

> > http://x31eq.com/demo.sco
>
> This link seems to be broken.

Oh, right, I forgot to upload it. It's there now.

Graham

🔗genewardsmith <genewardsmith@...>

3/31/2011 1:14:11 PM

--- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@...> wrote:
>
> "genewardsmith" <genewardsmith@...> wrote:
>
> > > http://x31eq.com/demo.sco
> >
> > This link seems to be broken.
>
> Oh, right, I forgot to upload it. It's there now.

Wow again. It worked with a console window, though not with a bat file, so I guess I'm off and running. Now to make it produce a .wav file and not sounds, and to try to figure out the expectedly cryptic .sco file.

🔗genewardsmith <genewardsmith@...>

3/31/2011 1:42:55 PM

--- In MakeMicroMusic@yahoogroups.com, "genewardsmith"

Working bat file and writing to disk, done (this version does not support the -wave flag, it just assumes everything is .wav.) Now let's see if I can get any feed back on this:

; Music
i 2 0 0.3 60 100
i . + . 62
i . + . 63.5
i . + . 64
i . + . 65
i . + . 67
i . + . 69
i . + . 70.5
i . + . 71
i . + . 72

Does this mean use instrument 2, each note played after the preceeding note ends, each note 0.3 seconds, column of pitch values in dollars, and midi velocity 100?

What does this have to do with the music being produced:

; Effects from CsoundAC.csd
i 1 0 0 200 210 0.05
i 1 0 0 200 220 0.05
i 1 0 0 210 220 0.125
i 200 0 -1 10 30
i 210 0 -1 0.90 0.02 13000
i 220 0 -1

🔗genewardsmith <genewardsmith@...>

3/31/2011 2:25:12 PM

--- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...> wrote:

Aaron, Graham gave the Goggins format, which seems pretty minimalistic as it doesn't include an expressiveness command. It does use dollars for pitch, which I like. I wonder if you could provide something similar?

🔗akjmicro <aaron@...>

3/31/2011 2:57:04 PM

Gene,

I didn't say that...actually I hear it sounds quite good.

What I said was that it sucked from the point of view of usability. The two limited times I tried to do anything with it ended in frustration, so I gave up.

But no, I trust that it probably sounds decent if not excellent. One of the stated aims of his SC orchestra was attractive sounding instruments.

Let me know how it goes...sounds like it's easier to get running in Windows b/c Gogins is the main Windows dev and packager in the Windows world...

AKJ

--- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...> wrote:
>
>
>
> --- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@> wrote:
>
>
> > http://x31eq.com/demo.sco
> >
> >
> > Graham
> >
>
> Wow, thanks Graham! Of course, AKJ tells me that Grogin's orchestra pretty well sucks if you are not some kind of mutant, but who knows, I could like it.
>

🔗akjmicro <aaron@...>

3/31/2011 3:01:44 PM

--- In MakeMicroMusic@yahoogroups.com, "genewardsmith"
Making a wave file is easy:

csound -W -o my.wav my.orc my.sco

you might want to read http://www.csounds.com/manual/html/CommandFlags.html

Or as they always say: RTFM!!! :)

AKJ

<genewardsmith@...> wrote:
>
>
>
> --- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@> wrote:
> >
> > "genewardsmith" <genewardsmith@> wrote:
> >
> > > > http://x31eq.com/demo.sco
> > >
> > > This link seems to be broken.
> >
> > Oh, right, I forgot to upload it. It's there now.
>
> Wow again. It worked with a console window, though not with a bat file, so I guess I'm off and running. Now to make it produce a .wav file and not sounds, and to try to figure out the expectedly cryptic .sco file.
>

🔗genewardsmith <genewardsmith@...>

3/31/2011 3:06:30 PM

--- In MakeMicroMusic@yahoogroups.com, "akjmicro" <aaron@...> wrote:
>
>
>
> --- In MakeMicroMusic@yahoogroups.com, "genewardsmith"
> Making a wave file is easy:
>
> csound -W -o my.wav my.orc my.sco

Not really, as my version of Csound doesn't recognize the -W flag. What works is just csound -o my.wav my.orc my.sco

> you might want to read http://www.csounds.com/manual/html/CommandFlags.html
>
> Or as they always say: RTFM!!! :)

I did. It was wrong. Which sort of removes the point of RTFM, doesn't it?

🔗akjmicro <aaron@...>

3/31/2011 3:10:25 PM

--- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...> wrote:
>
>
>
> --- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@> wrote:
>
> Aaron, Graham gave the Goggins format, which seems pretty
> minimalistic as it doesn't include an expressiveness command. It
> does use dollars for pitch, which I like. I wonder if you could
> provide something similar?

This may seem dense, but what do you mean by dollars? Do you mean 60.5 = middle C plus a quarter tone?

There are several ways to specify pitch in csound scores. It all depends on how you choose to implement them in the orchestra. There's cpsoct, cpspch, cpsmidinn, and then just specifying a pitch in HZ.

see http://www.csounds.com/manual/html/cpspch.html for examples...

In the case of microcsound, I do the math in the python script, so it outputs a HZ value. I do this because Csound has unlimited HZ resolution, but the built-in pitch converters are good for maybe 1\1000 octave resolution, which I though might not be good enough for certain highly specialized tasks.

Re-doing this would mean an alternate microcsound.orc file, and re-hacking the pitch calculation code in microcsound. Being that there's no reason to even think about the .sco file when using microcsound, I don't see the point.

AKJ

🔗Aaron Krister Johnson <aaron@...>

3/31/2011 3:18:23 PM

Gene,

Sometimes an instrument may be an 'always on' mixer or virtual effects unit
or the like, and signal get routed to it via global variables, which is the
old fasioned way, or the quais- new-fangled zak patching or newer 'channels'
(the latter deprecating the former)

I suspect that anything in the score that doesn't seem to be producing note
or noise events is probably some kind of effect or mixer at work.

Common practice is to make these high numbered instruments in an orchestra
(e.g. >200)
You can see this type of thing in microcsound.orc, too.

AKJ

On Thu, Mar 31, 2011 at 3:42 PM, genewardsmith
<genewardsmith@...>wrote:

>
>
> --- In MakeMicroMusic@yahoogroups.com, "genewardsmith"
>
> Working bat file and writing to disk, done (this version does not support
> the -wave flag, it just assumes everything is .wav.) Now let's see if I can
> get any feed back on this:
>
> ; Music
> i 2 0 0.3 60 100
> i . + . 62
> i . + . 63.5
> i . + . 64
> i . + . 65
> i . + . 67
> i . + . 69
> i . + . 70.5
> i . + . 71
> i . + . 72
>
> Does this mean use instrument 2, each note played after the preceeding note
> ends, each note 0.3 seconds, column of pitch values in dollars, and midi
> velocity 100?
>
> What does this have to do with the music being produced:
>
> ; Effects from CsoundAC.csd
> i 1 0 0 200 210 0.05
> i 1 0 0 200 220 0.05
> i 1 0 0 210 220 0.125
> i 200 0 -1 10 30
> i 210 0 -1 0.90 0.02 13000
> i 220 0 -1
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗genewardsmith <genewardsmith@...>

3/31/2011 3:38:27 PM

--- In MakeMicroMusic@yahoogroups.com, "akjmicro" <aaron@...> wrote:

> What I said was that it sucked from the point of view of usability. The two limited times I tried to do anything with it ended in frustration, so I gave up.

I don't see why. I'm going to go ahead and use it unless you distract me by getting microsound ported to Windows. If I had my druthers, I would ax audio phase, y and z coordinates, and "pitch-class set", which sounds like the quintessential definition of uselessness unless you can use it as a scale somehow, and add a controller for expression. But you can't have everything. I'd still like to see something like Graham did for it for your orchestra also.

In the end, I want write a Csound for Dummies article on the Xenwiki.

🔗Aaron Krister Johnson <aaron@...>

3/31/2011 3:47:58 PM

With some modification, Gogin's instruments could be ported and added to
microcsound.orc

Anyway, my standard parameters are i#,start, duration,
attack(amp/expression), pitch, pan, and mix---everything else is an optional
instrument dependent variable. It's simple, and I like it that way.....

I agree, who uses phase parameters on a daily basis? Not I. I can see it as
an extra parameter for the oddball instrument, but a standard? Nah....

AKJ

On Thu, Mar 31, 2011 at 5:38 PM, genewardsmith
<genewardsmith@...>wrote:

>
> --- In MakeMicroMusic@yahoogroups.com, "akjmicro" <aaron@...> wrote:
>
> > What I said was that it sucked from the point of view of usability. The
> two limited times I tried to do anything with it ended in frustration, so I
> gave up.
>
> I don't see why. I'm going to go ahead and use it unless you distract me by
> getting microsound ported to Windows. If I had my druthers, I would ax audio
> phase, y and z coordinates, and "pitch-class set", which sounds like the
> quintessential definition of uselessness unless you can use it as a scale
> somehow, and add a controller for expression. But you can't have everything.
> I'd still like to see something like Graham did for it for your orchestra
> also.
>
> In the end, I want write a Csound for Dummies article on the Xenwiki.
>
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗genewardsmith <genewardsmith@...>

3/31/2011 3:52:24 PM

--- In MakeMicroMusic@yahoogroups.com, "akjmicro" <aaron@...> wrote:
>
> --- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@> wrote:

> This may seem dense, but what do you mean by dollars? Do you mean 60.5 = middle C plus a quarter tone?

Right. If f is the frequency in Hz, then in dollars it is
69 + 12*log2(f/440) in dollars.

> In the case of microcsound, I do the math in the python script, so it outputs a HZ value. I do this because Csound has unlimited HZ resolution, but the built-in pitch converters are good for maybe 1\1000 octave resolution, which I though might not be good enough for certain highly specialized tasks.

Not a big deal, but since you can convert Hz to dollars easily enough inside CSound using the math functions, I don't see a problem. Why are the built-in pitch converters complete crap, by the way?

🔗genewardsmith <genewardsmith@...>

3/31/2011 3:57:17 PM

--- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...> wrote:

> Not a big deal, but since you can convert Hz to dollars easily enough inside CSound using the math functions, I don't see a problem. Why are the built-in pitch converters complete crap, by the way?

Here's why:

"The conversion from pch, oct, or midinn into cps is not a linear operation but involves an exponential process that could be time-consuming when executed repeatedly. Csound now uses a built-in table lookup to do this efficiently, even at audio rates. Because the table index is truncated without interpolation, pitch resolution when using one of these opcodes is limited to 8192 discrete and equal divisions of the octave, and some pitches of the standard 12-tone equally-tempered scale are very slightly mistuned (by at most 0.15 cents).

If you need more precision in the calculation, use cps2pch or cpsxpch instead."

What a pain. Now I've got to check if Goggins did things right.

🔗Aaron Krister Johnson <aaron@...>

3/31/2011 4:00:31 PM

Right...which is why doing al the math work in the front-end of the Python
script, so that Csound has a nice, accurate HZ value to work with of the bat
amde sense to me.

AKJ

On Thu, Mar 31, 2011 at 5:57 PM, genewardsmith
<genewardsmith@...>wrote:

>
> --- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...>
> wrote:
>
> > Not a big deal, but since you can convert Hz to dollars easily enough
> inside CSound using the math functions, I don't see a problem. Why are the
> built-in pitch converters complete crap, by the way?
>
> Here's why:
>
> "The conversion from pch, oct, or midinn into cps is not a linear operation
> but involves an exponential process that could be time-consuming when
> executed repeatedly. Csound now uses a built-in table lookup to do this
> efficiently, even at audio rates. Because the table index is truncated
> without interpolation, pitch resolution when using one of these opcodes is
> limited to 8192 discrete and equal divisions of the octave, and some pitches
> of the standard 12-tone equally-tempered scale are very slightly mistuned
> (by at most 0.15 cents).
>
> If you need more precision in the calculation, use cps2pch or cpsxpch
> instead."
>
> What a pain. Now I've got to check if Goggins did things right.
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗genewardsmith <genewardsmith@...>

3/31/2011 4:10:34 PM

--- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...> wrote:

> What a pain. Now I've got to check if Goggins did things right.

He did things wrong. Caveat Emptor for anyone using this orchestra for microtonal work. Kraig Grady would not approve, I feel sure. Should be easily fixable with a replacement function, knock wood.

🔗genewardsmith <genewardsmith@...>

3/31/2011 4:40:46 PM

--- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...> wrote:
>
> Right...which is why doing al the math work in the front-end of the Python
> script, so that Csound has a nice, accurate HZ value to work with of the bat
> amde sense to me.

It does, although of course for most people the CSound conversion is just fine. I'm not going to try to foist it off on microtonalists, though.

I could write something in kwazy temperament, of course, as I am sure no one has done that yet, except by accident using CSound. I am happy to be the first to report that CSound tempers out the kwazy comma, |-53 10 16>, and hence supports kwazy temperament, with its 1/2 octave period and that 1125/1024 generator everyone is dying to try. Hence it is great for one particular super-accurate 5-limit temperament which isn't terrificly complex as nanotemperaments go.

🔗Graham Breed <gbreed@...>

3/31/2011 11:40:11 PM

"genewardsmith" <genewardsmith@...> wrote:
>
> > What a pain. Now I've got to check if Goggins did
> > things right.
>
> He did things wrong. Caveat Emptor for anyone using this
> orchestra for microtonal work. Kraig Grady would not
> approve, I feel sure. Should be easily fixable with a
> replacement function, knock wood.

You can fix it, yes. Two changes to NoteOn.

It's a stupid over-optimization and possibly a false
optimization. I thought they got rid of it instead of
re-implementing it. Saying "even at audio rates" is stupid
for a function that isn't defined at audio rate. But,
still, we can do it the inefficient way and set a lower
control rate if it really does slow things down.

At least 8192 steps isn't so bad.

Graham

🔗Mike Battaglia <battaglia01@...>

3/31/2011 11:44:26 PM

On Fri, Apr 1, 2011 at 2:40 AM, Graham Breed <gbreed@...> wrote:
>
> At least 8192 steps isn't so bad.

I hope that the problem isn't that 8192's not accurate enough...

-Mike

🔗Graham Breed <gbreed@...>

3/31/2011 11:52:02 PM

Aaron Krister Johnson <aaron@...> wrote:

> Anyway, my standard parameters are i#,start, duration,
> attack(amp/expression), pitch, pan, and mix---everything
> else is an optional instrument dependent variable. It's
> simple, and I like it that way.....
>
> I agree, who uses phase parameters on a daily basis? Not
> I. I can see it as an extra parameter for the oddball
> instrument, but a standard? Nah....

Even the description says that audio phase parameter is
seldom used. Hysterical raisins must be involved. I can't
find a single instrument that even uses it for the phase
and some that (claim to) use it for other things.
Reclaiming p6 for volume-neutral expression must be an
option.

Similarly, the standardized pfields above p7 don't seem to
be used at all for their standardized meanings. It's a
documentation error. We may never know what the
pitch-class set was there for.

Does anybody have a more recent version to see if any of
this has been fixed? (Mine is dated 2008.)

Graham

🔗Graham Breed <gbreed@...>

3/31/2011 11:59:04 PM

Mike Battaglia <battaglia01@...> wrote:

> I hope that the problem isn't that 8192's not accurate
> enough...

Yes, that's the problem. Csound is supposed to be the king
of tuning precision and the thing you use to experiment
with microtemperaments. 0.15 cents is audible if it's a
deviation from just intonation.

Graham

🔗Graham Breed <gbreed@...>

4/1/2011 12:12:41 AM

"genewardsmith" <genewardsmith@...> wrote:

> ; Music
> i 2 0 0.3 60 100
> i . + . 62
> i . + . 63.5
> i . + . 64
> i . + . 65
> i . + . 67
> i . + . 69
> i . + . 70.5
> i . + . 71
> i . + . 72
>
> Does this mean use instrument 2, each note played after
> the preceeding note ends, each note 0.3 seconds, column
> of pitch values in dollars, and midi velocity 100?

That's it. Where "dollars" is the neologism for MIDI key
that you seem determined to foist on the world.

> What does this have to do with the music being produced:
>
> ; Effects from CsoundAC.csd
> i 1 0 0 200 210 0.05
> i 1 0 0 200 220 0.05
> i 1 0 0 210 220 0.125
> i 200 0 -1 10 30
> i 210 0 -1 0.90 0.02 13000
> i 220 0 -1

It sets up the effects chain. Leave it alone if you don't
care about it. See the comments I trimmed out in the
original file if you want to understand it.

Graham

🔗genewardsmith <genewardsmith@...>

4/1/2011 12:39:07 AM

--- In MakeMicroMusic@yahoogroups.com, Graham Breed <gbreed@...> wrote:

> At least 8192 steps isn't so bad.

I said "complete crap" because AJK recalled the error as about 1.2 cents; 8192 is much better. Of course midi level accuracy would be better still.

🔗lobawad <lobawad@...>

4/1/2011 4:11:30 AM

But you can point midinn to a table of your own frequency ratio values, with immense precision.

--- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...> wrote:
>
>
> --- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@> wrote:
>
> > Not a big deal, but since you can convert Hz to dollars easily enough inside CSound using the math functions, I don't see a problem. Why are the built-in pitch converters complete crap, by the way?
>
> Here's why:
>
> "The conversion from pch, oct, or midinn into cps is not a linear operation but involves an exponential process that could be time-consuming when executed repeatedly. Csound now uses a built-in table lookup to do this efficiently, even at audio rates. Because the table index is truncated without interpolation, pitch resolution when using one of these opcodes is limited to 8192 discrete and equal divisions of the octave, and some pitches of the standard 12-tone equally-tempered scale are very slightly mistuned (by at most 0.15 cents).
>
> If you need more precision in the calculation, use cps2pch or cpsxpch instead."
>
> What a pain. Now I've got to check if Goggins did things right.
>

🔗Aaron Krister Johnson <aaron@...>

4/1/2011 8:28:13 AM

I say pillage the Gogins orchestra, but rearrange it in a way that makes
sense to you in your own orchestras. A regular expression parser in the
programming langauge of your choice could do the heavy lifting for you, or
you could do it by hand if you know what you're doing.

The format I adopt in microcsound is this, and is standard for all
instruments in the microcsound.orc file:

p1 instrument (obviously)
p2 onset beat (obviously)
p3 duration (obviously)
p4 attack/velocity parameter
p5 pitch in HZ (microcsound handles EDO, JI conversion in the front end
already, and outputs HZ)
p6 pan
p7 mix level

p8 and up are parameters which are instrument dependent as needed. So, in an
subtractive synth instrument you might have loads of pfields for the
oscillator waveforms, the filter cutoff, the ADSR parameters, etc. Other
instruments might be samples and not need anything....so this should be free
and open. I suppose it's nice to have a personal standard for such
things--e.g. any instrument with an envelope will use p8-p11 for the primary
ADSR
and such, but I always think it's easy enough, if you design the instruments
according to clean suggested standards (define variables which read and set
opcode parameters at the top of any instrument in the .orc file), to refer
to the orchestra itself if you forget what was what.

To me, this is as sane as it gets, although you may argue about the order or
p4-p7, I suppose, but there it is; I based it on the typical order of opcode
parameters such as vco2 inside of Csound itself, so there's a logic there.

Since legato is handled by a special syntax involving negative duration (a
killer feature of Csound, IMHO) it's moot here--microcsound handles this
with ''(" and ")" in its syntax, and it works well to indicate slurs....

AKJ

On Fri, Apr 1, 2011 at 1:52 AM, Graham Breed <gbreed@...> wrote:

> Aaron Krister Johnson <aaron@...> wrote:
>
> > Anyway, my standard parameters are i#,start, duration,
> > attack(amp/expression), pitch, pan, and mix---everything
> > else is an optional instrument dependent variable. It's
> > simple, and I like it that way.....
> >
> > I agree, who uses phase parameters on a daily basis? Not
> > I. I can see it as an extra parameter for the oddball
> > instrument, but a standard? Nah....
>
> Even the description says that audio phase parameter is
> seldom used. Hysterical raisins must be involved. I can't
> find a single instrument that even uses it for the phase
> and some that (claim to) use it for other things.
> Reclaiming p6 for volume-neutral expression must be an
> option.
>
> Similarly, the standardized pfields above p7 don't seem to
> be used at all for their standardized meanings. It's a
> documentation error. We may never know what the
> pitch-class set was there for.
>
> Does anybody have a more recent version to see if any of
> this has been fixed? (Mine is dated 2008.)
>
>
> Graham
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗Aaron Krister Johnson <aaron@...>

4/1/2011 8:39:49 AM

Yes, Cameron is right....Csound is capable of unbeatable precision, as long
as you stay away from the convenient built-in pitch converters. Furthermore,
I've been trying to convince Gene that it's irrelevant what's happening
under the hood in the score/orc pair if you're using a front-end like
microcsound. I have the script define freq in HZ to like 6 decimal places of
precision, sending it to p5 in score under the hood. All the user does on
the front-end is put in their JI ratio, oct/deg of an EDO or whatever.
Simple. One writes one's own whatever to HZ converter, send HZ to the Csound
score, done.

Don't use the Csound pitch converters. Use cps in HZ....what's the problem
there, esp. when you're not planning on using the score as a human-read
reference? Gene appears stuck on this issue, if I'm reading him correctly...

Gene?

AKJ

On Fri, Apr 1, 2011 at 6:11 AM, lobawad <lobawad@...> wrote:

> But you can point midinn to a table of your own frequency ratio values,
> with immense precision.
>
> --- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@...>
> wrote:
> >
> >
> > --- In MakeMicroMusic@yahoogroups.com, "genewardsmith" <genewardsmith@>
> wrote:
> >
> > > Not a big deal, but since you can convert Hz to dollars easily enough
> inside CSound using the math functions, I don't see a problem. Why are the
> built-in pitch converters complete crap, by the way?
> >
> > Here's why:
> >
> > "The conversion from pch, oct, or midinn into cps is not a linear
> operation but involves an exponential process that could be time-consuming
> when executed repeatedly. Csound now uses a built-in table lookup to do this
> efficiently, even at audio rates. Because the table index is truncated
> without interpolation, pitch resolution when using one of these opcodes is
> limited to 8192 discrete and equal divisions of the octave, and some pitches
> of the standard 12-tone equally-tempered scale are very slightly mistuned
> (by at most 0.15 cents).
> >
> > If you need more precision in the calculation, use cps2pch or cpsxpch
> instead."
> >
> > What a pain. Now I've got to check if Goggins did things right.
> >
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗genewardsmith <genewardsmith@...>

4/1/2011 8:40:22 AM

--- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...> wrote:

Aaron--did you get my email?

🔗Aaron Krister Johnson <aaron@...>

4/1/2011 8:45:37 AM

Not yet...when did you send?

AKJ

On Fri, Apr 1, 2011 at 10:40 AM, genewardsmith
<genewardsmith@...>wrote:

>
>
> --- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...>
> wrote:
>
> Aaron--did you get my email?
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗Aaron Krister Johnson <aaron@...>

4/1/2011 8:49:19 AM

Oh, you mean last night's email, regarding the reformatted text?

Let me call you...

AKJ

On Fri, Apr 1, 2011 at 10:45 AM, Aaron Krister Johnson
<aaron@...>wrote:

> Not yet...when did you send?
>
> AKJ
>
>
> On Fri, Apr 1, 2011 at 10:40 AM, genewardsmith <
> genewardsmith@...> wrote:
>
>>
>>
>> --- In MakeMicroMusic@yahoogroups.com, Aaron Krister Johnson <aaron@...>
>> wrote:
>>
>> Aaron--did you get my email?
>>
>>
>>
>>
>> ------------------------------------
>>
>> Yahoo! Groups Links
>>
>>
>>
>>
>
>
> --
> Aaron Krister Johnson
> http://www.akjmusic.com
> http://www.untwelve.org
>
>

--
Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

[Non-text portions of this message have been removed]

🔗Magnus Jonsson <jmagnusj@...>

9/22/2012 3:42:40 PM

This is amazing. I was thinking of exactly this independently a week
ago or so and only now caught up with MMM.

Out of the blue, I had the idea thatsince ln(1+x) is the sum of x^n/n
terms, it should be possible to use it generate a saw wave from it
somehow. Setting x = e^jwt so that each x^n term contributes one
harmonic seemed like a promising direction. The real term of the
result is indeed the hilbert transform of a saw wave and quite useless
since it approaches infinity as x approaches -1. But the imaginary
term is exactly what we want!

Simplifying a bit,

Im ln(1 + e^jwt) = atan(sin(jwt) / (1 + cos(jwt))

does indeed form a saw wave when you plot it.

So how do we bandlimit this? The cleanest way I can think of is to add
a decay factor a so that x = d * e^jwt. This way the amplitude of the
nth harmonic is d^n/n instead of 1/n. By setting d suitably, you can
make the harmonics above nyquist as weak as you like (at the cost of
falloff in the passband). I tried it and it does seem to work. I've
attached a spectogram snapshot (my hearing is pretty bad in the highs
these days so I need some visual aid).

It does reject aliasing well, but the passband falloff is pretty
severe too without oversampling.

The k^n falloff is not quite fast enough to form a brickwall-like
filter. (I wonder if there's some mathematical trick to be discovered
that can e.g. give k^(n^2) falloff -- essentially a gaussian filter.)

If you use it for effect instead of as a way to synthesize bandlimited
saw waveforms you can get mellow but still edgy sound.

Apologies for any typing errors, I'm writing this in a rush.

On Tue, Mar 29, 2011 at 5:58 AM, Mike Battaglia <battaglia01@...> wrote:
> On Tue, Mar 29, 2011 at 5:38 AM, Kalle Aho <kalleaho@...> wrote:
>>
>> Well, I am changing the width of the window in the rez example which results in low pass filtering. Adding negative feedback at the main lobe null adds resonance. This implementation loads the integrated and normalized sin^n into a lookup table. In the improved version I present in the comments the lookup table is a sigmoid that goes from -1 at 0 to 1 at 1. You could use some other sigmoid too, like a truncated and normalized tanh() (as Victor Lazzarini pointed out to me). The sigmoid integrated from sin^n just has more predictable properties.
>>
>> The table can be read at different speeds and when the reading index goes beyond 1 it stays at 1 (and beyond -1 it stays at -1). A naive sawtooth that goes from -1 to 1 at the note frequency is added to this. It's pretty simple really.
>>
>> Kalle
>
> OK, I see now. This is a fantastic idea. If you want to cut down even
> further on aliasing, instead of storing the integral of the sin^n, you
> can store the second integral of it. Integration divides the spectrum
> through by jw, so when the out of band frequencies alias around
> Nyquist, they're already attenuated right from the start. Then, when
> you re-differentiate to get your sawtooth, you now multiply by jw, so
> the ones that are closest to the normal range hearing get less of a
> "boost" than the ones around Nyquist. More at this paper:
>
> http://www.dafx.ca/proceedings/papers/p_169.pdf
>
> Another idea that you might find helpful: right now you're doing
> sin^n(x) to generate, effectively, a bandlimited impulse train, since
> as n -> Inf the signal turns more and more into an impulse train. If
> instead you want to do something similar to generate a bandlimited
> sawtooth right from the start, you can do log(n+sin(x)), and as n->1
> the signal approaches a Hilbert transformed sawtooth wave. So
> something like log(1000000000+sin(x)) will pretty much just be sin(x)
> with some DC, and then log(10+sin(x)) will get closer to a sawtooth,
> log(1.01+sin(x)) closer still, log(1.001+sin(x)) closer still, etc.
>
> You could probably just replace the sigmoid integration with the
> above, which I think will be equivalent because of the Taylor series
> expansion for log(1+x).
>
> -Mike
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>

[Non-text portions of this message have been removed]