Csound Csound-dev Csound-tekno Search About

THEORY OF SOUND please

Date1998-01-06 15:47
FromDavid Schuyeteneer
SubjectTHEORY OF SOUND please
As I proceed with Csound I encounter a problem :
I do not have enough knowledge of soundsignals !
Can someone please post some brief formulas ?

Things I need to know like : when you add two signals (a1 + a2) I know that
they are just being mixed.
But what happens when you multiply (a1*a2) two signals ? Dividing
signals...ehm....

Further urgent questions :

- How do you calculate in Csound wether a signal is harmonic to another or
not?

- What is the theory of harmonics ?

- Is there a program that can convert pvoc files to a bitmap format, so I
can modify them in a paint program
  and reconvert them back to a pvoc (for visual PVOC resynthesis)


David.




Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa11493;
          7 Jan 98 0:22 GMT
Received: from mercury.bath.ac.uk by stork.maths.Bath.AC.UK id aa12630;
          7 Jan 98 0:22 GMT
Received: (qmail 20045 invoked from network); 6 Jan 1998 21:35:28 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
  by mercury.bath.ac.uk with SMTP; 6 Jan 1998 21:35:28 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (VAA23392); Tue, 6 Jan 1998 21:30:28 GMT
Received: from hermes.ex.ac.uk by maths.exeter.ac.uk; Tue, 6 Jan 98 21:30:06 GMT
Received: from mail1.doit.wisc.edu [144.92.9.40] by hermes via ESMTP (VAA27825); Tue, 6 Jan 1998 21:29:46 GMT
Received: from [206.173.187.120] by mail1.doit.wisc.edu
          id PAA34804 (8.8.6/50); Tue, 6 Jan 1998 15:30:02 -0600
Message-Id: 
In-Reply-To: <19980106185407718.AAA102@nobody>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Tue, 6 Jan 1998 15:33:08 -0600
To: David Schuyeteneer , 
    csound mailing list 
From: "Daniel W. Hosken" 
Subject: Re: THEORY OF SOUND please
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

>As I proceed with Csound I encounter a problem :
>I do not have enough knowledge of soundsignals !
>Can someone please post some brief formulas ?
>
>Things I need to know like : when you add two signals (a1 + a2) I know that
>they are just being mixed.
>But what happens when you multiply (a1*a2) two signals ? Dividing
>signals...ehm....

For signal processing information you might want to look at Ken Steiglitz'
_A DSP Primer_ which presents most of the mathematical tools necessary to
answer questions like this  (The steiglitz book assumes some calculus).
Other sources for info are Moore's _Elements of Computer Music_, Dodge and
Jerse's _Computer Music_, Roads' _Computer Music Tutorial_, and signal
processing textbooks used in signals and systems classes (Oppenheim &
Schaefer, etc.).

As to your specific question, multiplying signals together is a form of
ring modulation. Quoting from Dodge and Jerse's _Computer Music_: "The
multiplication of two complex sounds produces a spectrum containing
freqnecies that are the sum and difference between the frequencies of each
component in the first sound and those of each component in the second." In
the simplest case, if a signal with frequency f1 is multiplied by a signal
of frequency f2, the result is a signal with frequencies f1+f2 and f1-f2
(if you get a negative frequency, just wrap it around zero with a 180
degree reversed phase). (mathematically, when you multiply two signals in
the time domain you convolve them in the frequency domain. Beyond "flip it
and slide it", It's hard to explain without diagrams and math---Steiglitz,
Moore, and Oppenheim/Schaefer explain convolution). Dividing signals might
not be such a good idea because zero crossings in the denominator are going
to produce an infinite amplitude.

>- How do you calculate in Csound wether a signal is harmonic to another or
>not?

I'm not sure exactly what this means---are you asking how to tell when two
signals belong to the same overtone series? If the two signals are just
sinusoids, they belong to the same overtone series if one is an integer
multiple of the other, of if they're both integer multiples of the same
frequency. If they're not just sinusoids, do you require that all of the
partials in one signal be harmonic to all of the partials in the other
signal? See below...

>- What is the theory of harmonics ?

J.R. Pierce's _The Science of Musical Sound_ is a good place to start for
some basic acoustics. Also, the Steiglitz book that I mentioned above
begins by deriving the wave equation and its general solutions for
vibrating strings and columns of air.

Roughly put, a string (like a piano string) set into motion produces a set
of frequencies consisting of a fundamental (this is what we usually hear as
the "pitch" of the resultant sound) and a series of overtones (or partials)
that are integer multiples of that fundamental. So a fundamental with
frequency f has overtones of 2f, 3f, 4f, 5f, etc. Partials that are integer
multiples of the fundamental are known as "harmonic" partials, or
harmonics. Not every instrument produces overtones the same---clarinets
have weak even partials (i.e., the sound of a clarinet is largely f, 3f,
5f, etc.), a violin played sul ponticello has more energy in the upper
partials thas a violin played normally, a bell has partials that are not
necessarily integer multiples of the fundamental (these are "inharmonic"
partials), etc. The frequencies of the partials in an instrument's spectrum
and their relative strengths are what we hear as "timbre" (again, roughly
put---there are lots of fun little details like phase and formants).

>- Is there a program that can convert pvoc files to a bitmap format, so I
>can modify them in a paint program
>  and reconvert them back to a pvoc (for visual PVOC resynthesis)

I was playing around with the demo for Metasynth (www.uisoftware.com), and
their very first preset is a spectrograph of of someone saying "welcome to
metasynth" that the program converts into sound. You can then use
paint-like tools to add things or mess with the existing image---very cool
program.

Hope this was helpful!

Dan Hosken





Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa12726;
          7 Jan 98 11:15 GMT
Received: from pat.bath.ac.uk by stork.maths.Bath.AC.UK id aa03074;
          7 Jan 98 11:15 GMT
Received: (qmail 25847 invoked from network); 7 Jan 1998 09:28:38 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
  by pat.bath.ac.uk with SMTP; 7 Jan 1998 09:28:38 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (JAA25990); Wed, 7 Jan 1998 09:23:27 GMT
Received: from hermes.ex.ac.uk by maths.exeter.ac.uk; Wed, 7 Jan 98 09:21:52 GMT
Received: from december.real.net.au [203.25.56.1] by hermes via ESMTP (EAA14826); Wed, 7 Jan 1998 04:17:52 GMT
Received: from [203.17.243.67] (syd-pm1-2.real.net.au [203.17.243.67])
	by december.real.net.au (8.8.6/8.8.6) with SMTP id PAA01752
	for ; Wed, 7 Jan 1998 15:18:26 +1100 (EST)
X-Sender: mogambo@real.net.au (Unverified)
Message-Id: 
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Date: Wed, 7 Jan 1998 15:16:41 +1000
To: csound@maths.ex.ac.uk
From: Arne Hanna 
Subject: off topic
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

The Forth Mac news group seems to have died of loneliness, and so I have
nowhere else to turn except this list it seems.  I'm using Phil Burke and
Larry Polanski's pForth and can find no information on float data types.
When I divide 7 by 2, I get 3.  Anyone?  Also off topic:  I've downloaded
some documents recently that have suffix 'tex', eg. .  If
anyone could enlighten me I would be very grateful.  My humble apologies
for being irrelevant.

Cheers
Arne



"You people have been throwing shit at me for years.  Now it's starting to
fertilize!"
                             Edgar Varese

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

        http://www.geocities.com/SiliconValley/Peaks/3346

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Disclaimer: The views expressed in these messages are not necessarily those
of Management.





Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa13042;
          7 Jan 98 11:18 GMT
Received: from mercury.bath.ac.uk by stork.maths.Bath.AC.UK id aa03908;
          7 Jan 98 11:18 GMT
Received: (qmail 4375 invoked from network); 5 Jan 1998 10:10:11 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
  by mercury.bath.ac.uk with SMTP; 5 Jan 1998 10:10:11 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (JAA01810); Mon, 5 Jan 1998 09:59:32 GMT
Received: from hermes.ex.ac.uk by maths.exeter.ac.uk; Mon, 5 Jan 98 09:59:09 GMT
Received: from agora.stm.it [195.62.32.1] by hermes via ESMTP (JAA02189); Mon, 5 Jan 1998 09:58:59 GMT
Received: from default (ppp03-02.stm.it [195.62.37.130]) by agora.stm.it (8.8.8/8.8.5) with ESMTP id LAA04230; Mon, 5 Jan 1998 11:02:24 +0100 (ITA)
Message-Id: <34B0AF8A.2D29033F@agora.stm.it>
Date: Mon, 05 Jan 1998 11:01:46 +0100
From: Gabriel Maldonado 
X-Mailer: Mozilla 4.0 [en] (Win95; I)
Mime-Version: 1.0
To: Csound Mailing List 
Cc: Richard Dobson , J P Fitch 
Subject: Re: nlfilt by Richard Dobson and John Fitch
X-Priority: 3 (Normal)
References: <3.0.3.16.19980102143031.2f4fe640@werewolf.net>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

Please, where can I get informations about 'nlfilt' theory more detailed
than in csound manual? Is it possible to get them from the Internet?

(
the manual says 'nlfilt' implements the filter Y{n} = a Y{n-1} + b
Y{n-2} + d Y^2{n-L} + X{n} - C described in Dobson and Fitch (ICMC'96).

)

Thanks

--
Gabriel Maldonado

mailto:g.maldonado@agora.stm.it
http://www.agora.stm.it/G.Maldonado/home2.htm
http://www.geocities.com/SiliconValley/Way/7041/home2.htm




Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa13142;
          7 Jan 98 11:18 GMT
Received: from mercury.bath.ac.uk by stork.maths.Bath.AC.UK id aa04200;
          7 Jan 98 11:18 GMT
Received: (qmail 10605 invoked from network); 6 Jan 1998 00:13:53 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
  by mercury.bath.ac.uk with SMTP; 6 Jan 1998 00:13:53 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (AAA27509); Tue, 6 Jan 1998 00:09:39 GMT
Received: from hermes.ex.ac.uk by maths.exeter.ac.uk; Tue, 6 Jan 98 00:09:22 GMT
Received: from first1.lnk.telstra.net [139.130.48.118] by hermes via ESMTP (AAA15838); Tue, 6 Jan 1998 00:09:13 GMT
Received: from wira.firstpr.com.au (wira.firstpr.com.au [203.36.57.201])
	by gair.firstpr.com.au (8.8.7/8.8.7) with SMTP id LAA07309;
	Tue, 6 Jan 1998 11:10:03 +1100
Message-Id: <199801060010.LAA07309@gair.firstpr.com.au>
Comments: Authenticated sender is 
From: Robin Whittle 
Organization: First Principles
To: csound@maths.ex.ac.uk, jpff@maths.bath.ac.uk
Date: Tue, 6 Jan 1998 11:11:19 +1000
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7BIT
Subject: Re: Table read and k rate table numbers
Reply-To: rw@firstpr.com.au
Priority: normal
In-Reply-To: 
X-Mailer: Pegasus Mail for Win32 (v2.54)
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

Regarding the lack of the tablekt and tableikt table read ugens, with 
k-rate control of table number, which I wrote in 1995/6, John Fitch 
wrote:

> I must apologise about this.
> 
> I have just had another look for these opcodes and I find that they
> were lurking in a different file.  In fact the functiosn have been in
> Csound sources and binaries for at least 6 months.  What was missing
> was the lines in entry.
> 
> I have just added them; will be in my next version.

Excellent!  The Version 3.46 sources had the original ugens2.c/h.
As you wrote earlier, the supporting function for the k-rate table 
changing - ftfindp() - was in 3.46's fgens.c.

Does that mean that the original ugens2.c/h - from Barry Vercoe I 
think - will be replaced entirely with my version?  This has the new 
ugens and the commented, *debugged* versions of the normal table read 
ugens, according to my critique at:

    http://www.firstpr.com.au/csound/tabread.txt

That file describes exactly how I think the table read ugens should 
behave - and I believe my version of the ugens in 

    http://www.firstpr.com.au/csound/ugens2.c
    http://www.firstpr.com.au/csound/ugens2.h

behave this way.


> As this is all getting rather silly, I propose that 3.47 gets released
> next week.

Software development often gets silly.  Still, there's no marketing
department or litigation-minded shareholders breathing down your
neck - so I would support version 3.47 being unleashed whenever the
time is right.


I haven't done any Csounding for a long time. It could be another 
month or two to go, but I am very much looking forward to it.  


- Robin

| Robin Whittle         Consumer advocacy in telecommunications, |
|                       especially privacy.                      |
|                                                                |
| First Principles      Research and expression - music, tele-   |
|                       communications, Internet music marketing,|
|                       human factors in technology adoption.    |
|                       Consulting and technical writing.        |
|                                                                |
| Real World Interfaces Electronics and software for music.      |
|                                                                |
|   rw@firstpr.com.au   http://www.firstpr.com.au                |
|                                                                |
|   11 Miller St. Heidelberg Heights 3081 Melbourne Australia    |
|   Ph +61 3 9459 2889  Fax +61 3 9458 1736                      |



Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa13157;
          7 Jan 98 11:18 GMT
Received: from mercury.bath.ac.uk by stork.maths.Bath.AC.UK id aa04237;
          7 Jan 98 11:19 GMT
Received: (qmail 5880 invoked from network); 5 Jan 1998 13:57:56 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
  by mercury.bath.ac.uk with SMTP; 5 Jan 1998 13:57:56 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (NAA06724); Mon, 5 Jan 1998 13:28:58 GMT
Received: from hermes.ex.ac.uk by maths.exeter.ac.uk; Mon, 5 Jan 98 13:28:37 GMT
Received: from MAGELLAN.UMontreal.CA [132.204.2.30] by hermes via ESMTP (NAA06374); Mon, 5 Jan 1998 13:28:25 GMT
Received: from eole.ERE.UMontreal.CA (eole.ERE.UMontreal.CA [132.204.2.70]) by jason.MAGELLAN.UMontreal.CA with ESMTP id IAA00921
  (8.6.11/IDA-1.6); Mon, 5 Jan 1998 08:29:10 -0500
Received: from mistral.ERE.UMontreal.CA (mistral.ERE.UMontreal.CA [132.204.2.73])
	by eole.ERE.UMontreal.CA (8.8.7/8.8.7) with ESMTP id IAA27283;
	Mon, 5 Jan 1998 08:27:07 -0500 (EST)
Received: from ere.umontreal.ca (whisky-03.CC.UMontreal.CA [132.204.2.203])
	by mistral.ERE.UMontreal.CA (8.8.7/8.8.7) with ESMTP id IAA01087;
	Mon, 5 Jan 1998 08:27:04 -0500 (EST)
Message-Id: <34B0DDA8.8A0D656B@ere.umontreal.ca>
Date: Mon, 05 Jan 1998 08:18:32 -0500
From: Jean Piche 
X-Mailer: Mozilla 4.04 [en] (X11; I; IRIX 6.3 IP32)
Mime-Version: 1.0
To: David Schuyeteneer 
Cc: csound mailing list 
Subject: Re: How to pitchbend at K-RATE ??
References: <19980105130643228.AAA222@nobody>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

David Schuyeteneer wrote:
> 
> Suppose I have a signal that contains noise....how do a pitchchange it at
> k-rate ???
> 
> (it's for a dopplr effect)
> 
> anoise  rand 20
> afilter1 reson anoise,440,100
> afilter2 reson anoise,440*2,100*2
> abands = afilter1 + afilter2
> 
> right ??
> 
> now when can i alter the pitch abands at k-rate ?? is there an opcode like
> 
>  ar pitchbend asig, kup,kdown ???
> 


Since noise is without pitched content, vary the central frequency of the
resonators and you will get the effect you are looking for.



-- 
________________________________________________________
Jean Piche
Universite de Montreal
http://mistral.ere.umontreal.ca/~pichej
http://www.musique.umontreal.ca/electro/CEC/



Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa13293;
          7 Jan 98 11:19 GMT
Received: from mercury.bath.ac.uk by stork.maths.Bath.AC.UK id aa04711;
          7 Jan 98 11:19 GMT
Received: (qmail 2475 invoked from network); 5 Jan 1998 03:44:10 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
  by mercury.bath.ac.uk with SMTP; 5 Jan 1998 03:44:10 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (DAA09513); Mon, 5 Jan 1998 03:36:26 GMT
Received: from hermes.ex.ac.uk by maths.exeter.ac.uk; Mon, 5 Jan 98 03:36:09 GMT
Received: from MAGELLAN.UMontreal.CA [132.204.2.30] by hermes via ESMTP (DAA09639); Mon, 5 Jan 1998 03:36:02 GMT
Received: from eole.ERE.UMontreal.CA (eole.ERE.UMontreal.CA [132.204.2.70]) by jason.MAGELLAN.UMontreal.CA with ESMTP id WAA09724
  (8.6.11/IDA-1.6 for ); Sun, 4 Jan 1998 22:39:42 -0500
Received: from mistral.ERE.UMontreal.CA (mistral.ERE.UMontreal.CA [132.204.2.73])
	by eole.ERE.UMontreal.CA (8.8.7/8.8.7) with ESMTP id WAA09515
	for ; Sun, 4 Jan 1998 22:37:39 -0500 (EST)
Received: from ere.umontreal.ca (whisky-03.CC.UMontreal.CA [132.204.2.203])
	by mistral.ERE.UMontreal.CA (8.8.7/8.8.7) with ESMTP id WAA01164;
	Sun, 4 Jan 1998 22:37:37 -0500 (EST)
Message-Id: <34B0537F.F3A0B1C9@ere.umontreal.ca>
Date: Sun, 04 Jan 1998 22:29:03 -0500
From: Jean Piche 
X-Mailer: Mozilla 4.04 [en] (X11; I; IRIX 6.3 IP32)
Mime-Version: 1.0
To: csound@maths.ex.ac.uk
Subject: Re:your mail
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

Roy Stephane wrote:
> 
> >Paul Winkler wrote:
> > Dear folks,
> >
> > I asked a while ago about documentation for Patchwork, or more
> > specifically Xpatchwork. I still haven't found any, so let me ask
> > this....
> 
> The best way is to subscribe to the IRCAM forum. It's about 2000FF per year
> but
> you have access to plently of documentation on Patchwork and its many
> libraries as well as many very usefull applications (audiosculpt for
> exemple).  You get all on CD-Rom (3 per year)
> and you can also pick the updated documentation and software on site.
> 
> Stephane Roy, composer
> ST Louis, Missouri


Stephane is referring to the Patchwork composition package from IRCAM. I believe
Paul is talking about the graphical (Xpatchwork) Csound instrument design
front-end designed a while ago by Russell Pinkston. I know the package has been
in disuse for a while but Russell has a wonderful new implementation for
Extended-Csound and the SHARC board. I know he lurks around the list and may be
able to help...

Meilleurs souhaits, Stephane!



-- 
________________________________________________________
Jean Piche
Universite de Montreal
http://mistral.ere.umontreal.ca/~pichej
http://www.musique.umontreal.ca/electro/CEC/



Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa13330;
          7 Jan 98 11:19 GMT
Received: from mercury.bath.ac.uk by stork.maths.Bath.AC.UK id aa04894;
          7 Jan 98 11:19 GMT
Received: (qmail 24852 invoked from network); 7 Jan 1998 09:28:39 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
  by mercury.bath.ac.uk with SMTP; 7 Jan 1998 09:28:39 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (JAA01930); Wed, 7 Jan 1998 09:24:03 GMT
Received: from hermes.ex.ac.uk by maths.exeter.ac.uk; Wed, 7 Jan 98 09:23:30 GMT
Received: from december.real.net.au [203.25.56.1] by hermes via ESMTP (JAA24898); Wed, 7 Jan 1998 09:23:15 GMT
Received: from [203.17.243.93] (syd-pm1-28.real.net.au [203.17.243.93])
	by december.real.net.au (8.8.6/8.8.6) with SMTP id UAA09580
	for ; Wed, 7 Jan 1998 20:23:49 +1100 (EST)
Message-Id: 
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Date: Wed, 7 Jan 1998 20:22:05 +1000
To: csound@maths.ex.ac.uk
From: Arne Hanna 
Subject: testing
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk

Please ignore.



"You people have been throwing shit at me for years.  Now it's starting to
fertilize!"
                             Edgar Varese

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

        http://www.geocities.com/SiliconValley/Peaks/3346

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Disclaimer: The views expressed in these messages are not necessarily those
of Management.



Date1998-01-06 21:33
From"Daniel W. Hosken"
SubjectRe: THEORY OF SOUND please
>As I proceed with Csound I encounter a problem :
>I do not have enough knowledge of soundsignals !
>Can someone please post some brief formulas ?
>
>Things I need to know like : when you add two signals (a1 + a2) I know that
>they are just being mixed.
>But what happens when you multiply (a1*a2) two signals ? Dividing
>signals...ehm....

For signal processing information you might want to look at Ken Steiglitz'
_A DSP Primer_ which presents most of the mathematical tools necessary to
answer questions like this  (The steiglitz book assumes some calculus).
Other sources for info are Moore's _Elements of Computer Music_, Dodge and
Jerse's _Computer Music_, Roads' _Computer Music Tutorial_, and signal
processing textbooks used in signals and systems classes (Oppenheim &
Schaefer, etc.).

As to your specific question, multiplying signals together is a form of
ring modulation. Quoting from Dodge and Jerse's _Computer Music_: "The
multiplication of two complex sounds produces a spectrum containing
freqnecies that are the sum and difference between the frequencies of each
component in the first sound and those of each component in the second." In
the simplest case, if a signal with frequency f1 is multiplied by a signal
of frequency f2, the result is a signal with frequencies f1+f2 and f1-f2
(if you get a negative frequency, just wrap it around zero with a 180
degree reversed phase). (mathematically, when you multiply two signals in
the time domain you convolve them in the frequency domain. Beyond "flip it
and slide it", It's hard to explain without diagrams and math---Steiglitz,
Moore, and Oppenheim/Schaefer explain convolution). Dividing signals might
not be such a good idea because zero crossings in the denominator are going
to produce an infinite amplitude.

>- How do you calculate in Csound wether a signal is harmonic to another or
>not?

I'm not sure exactly what this means---are you asking how to tell when two
signals belong to the same overtone series? If the two signals are just
sinusoids, they belong to the same overtone series if one is an integer
multiple of the other, of if they're both integer multiples of the same
frequency. If they're not just sinusoids, do you require that all of the
partials in one signal be harmonic to all of the partials in the other
signal? See below...

>- What is the theory of harmonics ?

J.R. Pierce's _The Science of Musical Sound_ is a good place to start for
some basic acoustics. Also, the Steiglitz book that I mentioned above
begins by deriving the wave equation and its general solutions for
vibrating strings and columns of air.

Roughly put, a string (like a piano string) set into motion produces a set
of frequencies consisting of a fundamental (this is what we usually hear as
the "pitch" of the resultant sound) and a series of overtones (or partials)
that are integer multiples of that fundamental. So a fundamental with
frequency f has overtones of 2f, 3f, 4f, 5f, etc. Partials that are integer
multiples of the fundamental are known as "harmonic" partials, or
harmonics. Not every instrument produces overtones the same---clarinets
have weak even partials (i.e., the sound of a clarinet is largely f, 3f,
5f, etc.), a violin played sul ponticello has more energy in the upper
partials thas a violin played normally, a bell has partials that are not
necessarily integer multiples of the fundamental (these are "inharmonic"
partials), etc. The frequencies of the partials in an instrument's spectrum
and their relative strengths are what we hear as "timbre" (again, roughly
put---there are lots of fun little details like phase and formants).

>- Is there a program that can convert pvoc files to a bitmap format, so I
>can modify them in a paint program
>  and reconvert them back to a pvoc (for visual PVOC resynthesis)

I was playing around with the demo for Metasynth (www.uisoftware.com), and
their very first preset is a spectrograph of of someone saying "welcome to
metasynth" that the program converts into sound. You can then use
paint-like tools to add things or mess with the existing image---very cool
program.

Hope this was helpful!

Dan Hosken