back to list

Reaktor or Csound

🔗dimitristz@freemail.gr

1/10/2001 4:10:00 PM

Hi people,

am looking for a painless way to teach my computer just intonation. I
have a keyboard connected to my soundcard (AVM Apex) and I am running
Windows. What I want is to be able to tell the computer which pitch
(in Herz) to play each time a hit a note on my keyboard. I have
searched the messages of the list and if I understand right I have
two alternatives: Reaktor and Csound.

Csound seems very powerful but very complicated too. Is that I want
to do, easy to accomplish with Csound or do I have to be an
experienced user to make it work?

Reaktor with its graphical user interface should be easier to use
(isn't it?), but is it worth the money?

Is there perhaps a better alternative?

Regards,
Dimitris Tziouris

🔗Pat Pagano <ppagano@bellsouth.net>

1/10/2001 5:08:03 PM

hi
csound is harder and not a GUI but Reaktor is not Immediately JI ready and IMHO not the way
to teach anyone-- machine or man --Just Intonation.
After you are comfy with JI then stuff like Reaktor is kind of disposable and simply "fun" --.

best regards

Happy Csounding!

dimitristz@freemail.gr wrote:

> Hi people,
>
> am looking for a painless way to teach my computer just intonation. I
> have a keyboard connected to my soundcard (AVM Apex) and I am running
> Windows. What I want is to be able to tell the computer which pitch
> (in Herz) to play each time a hit a note on my keyboard. I have
> searched the messages of the list and if I understand right I have
> two alternatives: Reaktor and Csound.
>
> Csound seems very powerful but very complicated too. Is that I want
> to do, easy to accomplish with Csound or do I have to be an
> experienced user to make it work?
>
> Reaktor with its graphical user interface should be easier to use
> (isn't it?), but is it worth the money?
>
> Is there perhaps a better alternative?
>
> Regards,
> Dimitris Tziouris
>
> You do not need web access to participate. You may subscribe through
> email. Send an empty email to one of these addresses:
> tuning-subscribe@egroups.com - join the tuning group.
> tuning-unsubscribe@egroups.com - unsubscribe from the tuning group.
> tuning-nomail@egroups.com - put your email message delivery on hold for the tuning group.
> tuning-digest@egroups.com - change your subscription to daily digest mode.
> tuning-normal@egroups.com - change your subscription to individual emails.

🔗John A. deLaubenfels <jdl@adaptune.com>

1/10/2001 5:22:57 PM

[Dimitris Tziouris wrote:]
>am looking for a painless way to teach my computer just intonation. I
>have a keyboard connected to my soundcard (AVM Apex) and I am running
>Windows. What I want is to be able to tell the computer which pitch
>(in Herz) to play each time a hit a note on my keyboard. I have
>searched the messages of the list and if I understand right I have
>two alternatives: Reaktor and Csound.

>Csound seems very powerful but very complicated too. Is that I want
>to do, easy to accomplish with Csound or do I have to be an
>experienced user to make it work?

>Reaktor with its graphical user interface should be easier to use
>(isn't it?), but is it worth the money?

>Is there perhaps a better alternative?

It sounds to me as if Graham Breed's (free!) MIDI Relay program would
be perfect for you. Get it from:

http://x31eq.com/software.htm

JdL

🔗Dimitris <dimitristz@freemail.gr>

1/10/2001 6:42:32 PM

I have tried some of the programs that retune midi notes by pitch bends, but
I don't think they do an accurate job. Even without them recording a A440
note (Acoustic Grand Piano patch) showed in CoolEdit a frequency of 441.65Hz
(A4 + 6cents). I don't think you can teach this wavetable JI.

That's why I was looking for a virtual synth, I thought they should be able
to produce tones with enough accuracy.

Regards,
Dimitris Tziouris

----- Original Message -----
From: "John A. deLaubenfels" <jdl@adaptune.com>
> It sounds to me as if Graham Breed's (free!) MIDI Relay program would
> be perfect for you. Get it from:
>
> http://x31eq.com/software.htm

🔗Dimitris <dimitristz@freemail.gr>

1/10/2001 7:29:23 PM

Next time I will check something twice before I talk (or write): having
line-out as recording input wasn't such a brilliant idea, that was
responsible for all the detuning I noticed. With wavetable as line-in I got
A440 = 439.76Hz and with MIDIRelay a 4/5 ratio of 1.249923. That's good
enough for a start I think.

Dimitris

----- Original Message -----
From: "John A. deLaubenfels" <jdl@adaptune.com>
To: <tuning@egroups.com>
> It sounds to me as if Graham Breed's (free!) MIDI Relay program would
> be perfect for you. Get it from:
>
> http://x31eq.com/software.htm

🔗Robert Walker <robert_walker@rcwalker.freeserve.co.uk>

1/10/2001 8:36:03 PM

> I have tried some of the programs that retune midi notes by pitch bends, but
> I don't think they do an accurate job. Even without them recording a A440
> note (Acoustic Grand Piano patch) showed in CoolEdit a frequency of 441.65Hz
> (A4 + 6cents). I don't think you can teach this wavetable JI.

> That's why I was looking for a virtual synth, I thought they should be able
> to produce tones with enough accuracy.

You may find the relative pitch is better than absolute pitch.

Here are my results for my sound card as an example (repeated from an earlier post):

I've shown my one is overall sharp by 2 2/3 cents in absolute pitch, but
relative pitch is correct to within about 0.2 cents.

The method I used was to actually count number of waves in Goldwave.
(My soundcard has two synths, one of which producew regular waves for some voices,
which are easy to count, and one which produces the more lifelike ones that are
much harder to count since the wave shape varies so much as the note
continues. so this is for the basic synth).

Method was to show high resolution (individual samples shown as steps),
count 10 waves, measure exactly, use that to predict where the 100th wave
will cross the 0 position, go to that place and find exact crossover pos for
100th wave, and use that to predict 1000th wave, and check that, by which
time one has a pretty accurate value for the frequency (In practice, helped
to also look for 50th and 500th wave as an double check).

(This takes a little while to do if one wants to check many notes, and some time I may
write a freebie program to do it automatically, unless there is one already available that
anyone knows about)

Ex. of this method to find frequency of a note in a .WAV file:

1.5601 secs = 1000 waves
so frequency is 640.984552 Hz
This was supposed to be 16/11 from 440 hz
so should be 640
- sharp by 2.66 cents

I don't understand why this should be the case as one would think it would be an easy
programming task to make all the notes flatter by 2.66 cents. Also, the output is all
digital after all, so ones first thought is that it should be easy to calculate what pitch
is being produced, and add in some kind of feedback to correct it.

Anyone got any ideas why relative pitch of a soundcard would be so much more accurate than
absolute pitch?

Or is it the old trend of notes getting sharper at any opportunity!

I tried the CoolEdit frequency analysis, but it didn't seem to be really accurate enough
for this kind of thing.

You may have come across it already, but in case you haven't, I'll mention my freeware /
shareware program Fractal Tune Smithy. It retunes by pitch bends, and in association with
SCALA gives one useful way of exploring scales. It can be used for MIDI relaying.

The freebie version times out after ten minutes playing time each session, which is quite
a long time in music, and the intention is that it should be useful as freeware as well as
shareware.

Robert

http://members.nbci.com/tune_smithy/fts_beta/fts_beta_download.htm

🔗Todd Wilcox <twilcox@patriot.net>

1/10/2001 10:52:41 PM

Robert Walker wrote:
> I don't understand why this should be the case as one would think it would
be an easy
> programming task to make all the notes flatter by 2.66 cents. Also, the
output is all
> digital after all, so ones first thought is that it should be easy to
calculate what pitch
> is being produced, and add in some kind of feedback to correct it.

> Anyone got any ideas why relative pitch of a soundcard would be so much
more accurate than
> absolute pitch?

Well, to answer the second question first: I'm only guessing, but I'm pretty
certain that the overall pitch of a typical sound card synthesiser will be
based on the oscillations of a quartz crystal. Another possible source for
timing (and maybe more likley cause it would be cheaper) would simply be
dividing the bus clock (about 8 MHz for ISA and 33 MHz for PCI). I wouldn't
be surprised if there were slight variations in both timing sources from
computer to computer.

As for the first question: I'm sure 99% of sound card owners are not
concerned with the tuning of their sound card's build in synthesiser.
Therefore, it's not a cost-effective marketing tactic for a sound card
manufacturer to include any tuning software or hardware for the product. In
terms of the digital nature of sound card synthesisers, a lot of the old
and/or low-end on board synths are the Yamaho OPL-8, which is an analog FM
synthesiser. Newer and high-end cards would use wave table synthesis, but
that doesn't make up for the problems mentioned in my previous paragraph.

An interesting experiment might be to see if the same sound card plays at a
different overall pitch when installed in different computers, or even in
the same computer with other hardware differences (other devices on the ISA
bus, maybe).

Todd Wilcox

🔗Bill Alves <ALVES@ORION.AC.HMC.EDU>

1/11/2001 9:17:40 AM

Dimitris Tziouris wrote:

>am looking for a painless way to teach my computer just intonation. I
>have a keyboard connected to my soundcard (AVM Apex) and I am running
>Windows. What I want is to be able to tell the computer which pitch
>(in Herz) to play each time a hit a note on my keyboard. I have
>searched the messages of the list and if I understand right I have
>two alternatives: Reaktor and Csound.

I don't know if this information is moot now, but perhaps it will be of
some help. Csound was not originally designed to be a realtime system, but
it can work as such. However, the realtime capabilities vary considerably
depending on the operating system and Csound version. I understand that
Gabriel Maldanado's DirectSound for Windows works fairly well in a realtime
environment, though unfortunately I haven't tried it myself.

There are examples of how to use realtime in the documentation, but the
best introduction is in the Csound Book and accompanying CD-ROMs. The
CD-ROM has a whole section with example instruments for realtime
performance, and see also Paris Smaragdis' optimization chapter. Though
Csound is a fairly complex and powerful program, what you are talking about
(a certain frequency in response to a key depression) would be pretty
straight-forward. There are several tutorials on the web that give you a
basic introduction to Csound. See the links from the Csound front page at
http://www.csound.org/.

As far as pitch accuracy, Csound generates sound files Csound with
floating-point representation of pitch. This means that the difference
between 20 hz and the next highest representable frequency is only about
0.00021 cents. This number gets proportionately lower as frequencies go up.
Whether your sound card plays them back as accurately as Csound generates
them may be another question, but that would generally affect only the
absolute pitch (if the DAC clock is off). (Daniel Wolf claims that he has
heard audible artifacts if very long sine waves are slightly off the
subharmonics of the sampling rate (44.1Khz for CD). I haven't heard these
effects, but they sound intriguing.)

I should add these composers to previous replies to Joseph Pehrson's query
about alternate tuning compositions with Csound: John ffitch, Lydia Ayers,
Eric Lyon, and Larry Polansky (I think -- he used to work in HML).

Joseph Pehrson also asked about the Csound mailing list. Unfortunately, the
server at the University of Bath has been going through some rough times,
and John ffitch may be having to manually add people to the mailing list.
There should be a confirmation email from the server before you are added.
The traffic on the Csound list is a little less than that of the tuning
list, but I still have received 7 Csound messages since yesterday afternoon.

He also asked:

>And, could someone briefly and gently explain what Linux is?? I'm
>guessing that it is an alternate operating system to DOS/Windows (??)

You guessed correctly. It is descended from Unix and inherited some of its
powerful features. Though it may not be quite as easy to use and there
isn't as much software available as Windows, that's changing, and it is
free. I should warn you that there are two different versions of Csound for
Linux -- the "canonical" or Bath version, which is pretty much the same as
the other versions for Mac, Windows, etc., and the "unofficial" or
Developer's Group Version, which differs in some details but I guess is
more optimized for realtime performance.

>I thought Linux was a character invented by Charles Schultz in
>"Peanuts..."

You must be thinking of Snoopix.

Bill

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^ Bill Alves email: alves@hmc.edu ^
^ Harvey Mudd College URL: http://www2.hmc.edu/~alves/ ^
^ 301 E. Twelfth St. (909)607-4170 (office) ^
^ Claremont CA 91711 USA (909)607-7600 (fax) ^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

🔗Walter (Wally) <earth7@optonline.net>

1/11/2001 5:43:01 PM

Hi Dimitris

I too have been searching in vain for software to hear JI
intervals "clearly". Someone recommended Csound and I eventually
found a version and downloaded it. I have not installed it as of yet
and I'm sure that in itself will be a project.

I purchased a program called "Pitch Palette" from Justonic Inc. The
link is: http://www.justonic.com/default3.htm
This program allows microtuning capabilities with your synthesizer.
Bill Gannon developed the software and knows allot about soundcards
as well. Give him a call. His phone number is on his web site.

Regards
Walter

--- In tuning@egroups.com, dimitristz@f... wrote:
> Hi people,
>
> am looking for a painless way to teach my computer just intonation.
I
> have a keyboard connected to my soundcard (AVM Apex) and I am
running
> Windows. What I want is to be able to tell the computer which pitch
> (in Herz) to play each time a hit a note on my keyboard. I have
> searched the messages of the list and if I understand right I have
> two alternatives: Reaktor and Csound.
>
> Csound seems very powerful but very complicated too. Is that I want
> to do, easy to accomplish with Csound or do I have to be an
> experienced user to make it work?
>
> Reaktor with its graphical user interface should be easier to use
> (isn't it?), but is it worth the money?
>
> Is there perhaps a better alternative?
>
> Regards,
> Dimitris Tziouris

🔗Ken Wauchope <WAUCHOPE@AIC.NRL.NAVY.MIL>

1/12/2001 8:36:49 AM

--- In tuning@egroups.com, Bill Alves <ALVES@O...> wrote:

> As far as pitch accuracy, Csound generates sound files Csound with
> floating-point representation of pitch. This means that the
difference
> between 20 hz and the next highest representable frequency is only
about
> 0.00021 cents. This number gets proportionately lower as frequencies
go up.
> Whether your sound card plays them back as accurately as Csound
generates
> them may be another question, but that would generally affect only
the
> absolute pitch (if the DAC clock is off).

The soundfile's sample rate also affects pitch accuracy: In Csound on
my Sun workstation, a sine wave recorded against a reference tone at
srate=44100 changes beat rates with every increase of 1/384 Hz, but at
srate=22050 with every increase of 1/768 Hz, and so on -- tuning
precision doubling with each halving of sample rate.

At srate=44100, the interval (20 + 1/384 Hz)/20 Hz = 1.000130208 =
0.2254 cents discrimination. I can only get the 0.00021 cent
resolution you cite at much higher pitches and/or lower srates, such
as 5400Hz @ srate=11025. More typical for me would be 0.01 cent
discrimination for 440Hz @ srate=44100.

--Ken Wauchope

🔗Bill Alves <ALVES@ORION.AC.HMC.EDU>

1/12/2001 10:22:53 AM

>Ken Wauchope wrote:

>At srate=44100, the interval (20 + 1/384 Hz)/20 Hz = 1.000130208 =
>0.2254 cents discrimination. I can only get the 0.00021 cent
>resolution you cite at much higher pitches and/or lower srates, such
>as 5400Hz @ srate=11025. More typical for me would be 0.01 cent
>discrimination for 440Hz @ srate=44100.

The 0.00021 cent was the difference between two representable numbers as
inputs to oscil (or some other signal generator). I can see no reason for
quantization of the frequency output of oscil, though perhaps someone on
the Csound list with an intimate knowledge of the source code could clear
this up. I would be interested to see your orc/sco files to know things
like your control rate and fn table size.

Bill

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^ Bill Alves email: alves@hmc.edu ^
^ Harvey Mudd College URL: http://www2.hmc.edu/~alves/ ^
^ 301 E. Twelfth St. (909)607-4170 (office) ^
^ Claremont CA 91711 USA (909)607-7600 (fax) ^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

🔗Ken Wauchope <WAUCHOPE@AIC.NRL.NAVY.MIL>

1/12/2001 11:12:46 AM

--- In tuning@egroups.com, Bill Alves <ALVES@O...> wrote:

> The 0.00021 cent was the difference between two representable
numbers as
> inputs to oscil (or some other signal generator). I can see no
reason for
> quantization of the frequency output of oscil, though perhaps
someone on
> the Csound list with an intimate knowledge of the source code could
clear
> this up. I would be interested to see your orc/sco files to know
things
> like your control rate and fn table size.

Here are the orc and sco I used: oscil, table size 4096, kr=4410.
Without any quantization the output file should have a zero amplitude
point at 250 sec, but instead gets it at about 192 sec, the same as a
20 + 1/384 Hz (20.0013) tone. Decrease sr=22050 and I get the zero
point at 384 sec right at the end of the file, quantizing to
20 + 1/768 Hz.

; Orc

sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

instr 1
a1 oscil 10000, p4, 1
out a1
endin

; Sco

f1 0 4096 10 1

i1 0 384 20.000
i1 0 384 20.002

--Ken