Vous êtes sur la page 1sur 47

documentation

• Research reports
• Musical works
• Software

OpenMusic
Om2Csound
Biblioth•que de modules de gŽnŽration de scores pour Csound

version 1

Premi•re Ždition, avril 1999


Copyright © 1999 Ircam. Tous droits rŽservŽs.

Ce manuel ne doit pas •tre copiŽ, ni en entier ni partiellement, sans le


consentement Žcrit de l'Ircam.

Ce manuel a ŽtŽ rŽalisŽ par Karim Haddad et produit sous la responsabilitŽ


Žditoriale de Marc Battier, dŽpartement de la Valorisation, Ircam.

OpenMusic a ŽtŽ con•u et programmŽ par Carlos Agon et Gerard Assayag.

La biblioth•que Om2Csound a ŽtŽ Žcrite par Karim Haddad, Mikhail Malt


et Laurent Pottier.

Cette documentation correspond ˆ la version 1.0 de la biblioth•que et ˆ la


version 2.0.1 ou ultŽrieure de OpenMusic.

Premi•re Ždition de la documentation, avril1999.

Apple Macintosh est une marque dŽposŽe de Apple Computer, Inc.


OpenMusic est une marque dŽposŽe de l'Ircam.
PatchWork est une marque dŽposŽe de l'Ircam.

Ircam
1, place Igor-Stravinsky
F-75004 Paris
Tel. 01 44 78 49 62
Fax 01 44 78 15 40
E-mail ircam-doc@ircam.fr

OpenMusic - Om2Csound - 1
Groupe d'utilisateurs IRCAM

L'utilisation de ce programme et de sa documentation est


strictement rŽservŽe aux membres des groupes d'utilisateurs de
logiciels Ircam. Pour tout renseignement supplŽmentaire,
contactez :

DŽpartement de la Valorisation
Ircam
1, Place Stravinsky
F-75004 Paris
France
TŽl. 01 44 78 49 62
Fax 01 44 78 15 40
Courrier Žlectronique: bousac@ircam.fr

Veuillez faire parvenir tout commentaire ou suggestion ˆ :


M. Battier
DŽpartement de la Valorisation
Ircam
1, Place Stravinsky
F-75004 Paris
France
Courrier Žlectronique: bam@ircam.fr
http://www.ircam.fr/forumnet

OpenMusic - Om2Csound - 2
Contenu
Introduction................................................................................................................. 4
Structure de la biblioth•que Om2Csound.................................................................... 5
Structure gŽnŽrale du Score de Csound ....................................................................................7
Les tables ...................................................................................................................................................7
Les notes ....................................................................................................................................................7
La dŽclaration e .........................................................................................................................................8

Modules du menu Score ............................................................................................ 10


ftable.............................................................................................................................................10
pargen57 ..................................................................................................................................................11
pargen09 ..................................................................................................................................................13
pargen15 ..................................................................................................................................................14

instr...............................................................................................................................................15
instrument0 ..............................................................................................................................................15
instrument1 ..............................................................................................................................................18
make-obj-snd ...........................................................................................................................................19

edit ................................................................................................................................................22
Editsco .....................................................................................................................................................22
Change-col...............................................................................................................................................23

bpf-utilities...................................................................................................................................27
transfer .....................................................................................................................................................27
sampler.....................................................................................................................................................28
bpf-interpol ..............................................................................................................................................34
bpf-yx-interpol.........................................................................................................................................35

conversion ..................................................................................................................... ...............38


lin->db......................................................................................................................................................38
db->lin......................................................................................................................................................39

utilities ..........................................................................................................................................40
list-interpol...............................................................................................................................................40
inharm-ser ................................................................................................................................................41

Annexe ...................................................................................................................... 43
Bibliographie............................................................................................................. 44
Index ......................................................................................................................... 46
OpenMusic - Om2Csound - 3
Introduction

La biblioth•que Om2Csound est un ÇÊportageÊÈ de la biblioth•que


Csound/Edit-sco1 de Patchwork pour lÕenvironnement dÕOpenMusic. Cette
biblioth•que est destinŽe ˆ prŽparer les ÇÊscoresÊÈ de Csound. Elle permet la crŽation de
param•tres et de tables, graphiquement (avec les outils graphiques de OpenMusic
comme les Bpfs), dÕune mani•re algorithmique, ˆ travers la notation traditionnelle, ˆ
partir de fichiers dÕanalyse ou tout simplement de fichiers Midi. Il est entendu que
lÕutilisateur poss•de des notions de base de Csound. Nous invitons le lecteur ˆ consulter
le manuel de Barry Vercoe2 pour de plus amples renseignements sur CsoundÊ; le manuel
de Csond se trouve sur le CD-Rom de distribution du Forum, dans le dossierÊ:
Technologies:Csound docs & examples:CSound 68K & PPC.

1
Csound/Edit-sco est une biblioth•que pour la gŽnŽration de ÇÊscoresÊÈ de Csound Žcrite par Laurent
Pottier et Mikhail Malt.
2
Csound - A Manual for the Audio Processing System and Supporting Programms with Tutorials,
Barry Vercoe, Media Lab, MIT.
OpenMusic - Om2Csound - 4
Structure de la
biblioth•que Om2Csound
Csound nŽcessite deux fichiersÊ: ÇÊorchestraÊÈ et ÇÊscoreÊÈ, le premier Žtant pour
la description sous forme dÕalgorithme des instruments de synth•se, le second est une
partition (une succession dÕordres) fournissant les param•tres nŽcessaires ˆ lÕexŽcution
de la synth•se.
Dans cette livraison3 de la biblioth•que, on trouvera la section score qui ne traite
que le fichier ÇÊscoreÊÈ. Cette section est organisŽe en 6 sous-menus dŽcrits plus bas.

3
La partie ÇÊorchestraÊÈ est en cours de dŽveloppement et sera disponible
ultŽrieurement.

OpenMusic - Om2Csound - 5
_

OpenMusic - Om2Csound - 6
Structure gŽnŽrale du Score de Csound
Le fichier score prŽsente trois parties majeuresÊ: les tables, les notes et la
dŽclaration finale du score. La dŽclaration de chacune de ces parties est caractŽrisŽe par
un opcode (un caract•re rŽservŽ)Ê: f pour les tables, i pour les notes, et e pour la fin du
score.

Les tables

La dŽclaration de tables dŽfinie par Òf Ò en dŽbut de ligne, est suivie par


diffŽrents param•tres symbolisŽs par ÒpÒ et un numŽro dÕordre. Les quatre premiers
param•tres sont communs ˆ toutes les GEN subroutines que lÕon peut trouver dans
Csound, les autres Žtant spŽcifiques ˆ chacune dÕelles.

f p1 p2 p3 p4É, pn

p1 numŽro de table
p2 moment (onset) de la disponibilitŽ de la table
p3 taille de la table
p4 numŽro de la GEN subroutine
É
les autres param•tres dŽpendent de p4 (i.e., de la Gen utilisŽe).

Les notes

Les dŽclarations de notes commencent par la lettre Òi Ò (comme instrument) et


sont prŽcŽdŽes de diffŽrents param•tres. Les trois premiers Žtant dÕordre gŽnŽral et
doivent figurer dans tout scoreÊ; quant aux autres, ils dŽpendent de lÕinstrument auquel
ils sÕadressent.

OpenMusic - Om2Csound - 7
i p1 p2 p3ÊÉ, pn

p1 numŽro de lÕinstrument de lÕorchestre


p2 temps dÕattaque (onset)
p3 durŽes
É
autres param•tres.

La dŽclaration e

Elle indique la fin du fichier score.

Exemple dÕun score

f1 0 512 9 1 1 0
f2 0 513 5 512 512 1 tables

;p1 p2 p3 p4 p5 p6 p7 commentaires

i1 0 10 4000 273 1 2
i1 0 7.5000 2000 455 1 2
i1 0 4.5000 2000 576 1 2 notes
i1 0 6.5000 1500 648 1 2
i1 0 4 1501 864 1 2

e
fin de fichier

OpenMusic - Om2Csound - 8
M•me exemple sous forme de patch :

OpenMusic - Om2Csound - 9
Modules du menu Score

ftable
table
formatage de donnŽes pour les fonctions

entrŽes
table (number) numŽro de table (p1)
ttab (number) temps en secondes pour dŽclencher la table (p2)
points (number) nombre de points dans la table (p3)
gen (number) numŽro de la GEN subroutine (p4)
pargen (list) liste contenant les param•tres auxiliaires (p5, p6,
p7,É) spŽcifiques ˆ la GEN subroutine.

Le module table est utilisŽ pour gŽnŽrer les param•tres des fonctions de Csound.
Ces tables sont des donnŽes destinŽes aux GEN subroutines. Selon la GEN utilisŽe,
lÕentrŽe pargen nŽcessite un format particulier (voir le manuel de Csound). Ce format
peut aussi •tre entrŽ via les modules ÇÊpargenÊÈ dŽcrits plus loin. Ce module ne
concerne donc que les dŽclarations de type ÇÊfÊÈ.

ExÊ:
OM->((f 1 0 4096 10 1 2))

OpenMusic - Om2Csound - 10
pargen57

formatage de donnŽes pour les GEN 5 et 7

entrŽes
bpf (bpf) un objet bpf
points (number) nombre de points de la table (p3)
y-min (number) valeur minimale des y
y-max (number) valeur maximale des y
ndec (number) nombre des dŽcimales

Ces subroutines construisent des segments de courbes exponentielles (GEN05)


ou des lignes droites (GEN07). UtilisŽes en gŽnŽral pour les enveloppes dÕamplitudes,
nous allons voir un exemple dÕenveloppe dessinŽe dans une bpf pour la GEN07.

OpenMusic - Om2Csound - 11
Prenons une bpf et dessinons 9 points en sÕassurant que les points du dŽbut et de
la fin sont bien ancrŽs au point 0 des ordonnŽes.

Une fois lÕŽditeur bpf verrouillŽ, connectons-le au module pargen57.


Choisissons la taille p3 de la table qui devrait •tre semblable ˆ celui de la troisi•me
entrŽe de lÕobjet table. Pour les valeurs des ordonnŽes <ymin> et <ymax>, nous
laisserons celles par dŽfaut (dans le cas o• lÕon utilisera la GEN05, il faudrait choisir
entre les valeurs positives ou nŽgatives tout en Žvitant le zŽro qui est proscrit). On
gardera aussi la valeur 3 indiquant le nombre de chiffres apr•s la virgule.
Le module pargen57 sera connectŽ ˆ son tour au module table comme indiquŽ
dans lÕexemple ci-dessus. On nÕoubliera pas de prŽciser la valeur p4 de la table qui
indique quelle Gen subroutine on utilise.

Ce module peut •tre aussi utilisŽ pour la GEN08.

OpenMusic - Om2Csound - 12
pargen09

formatage de donnŽes pour la GEN09

entrŽes
pn (t) proportions des harmoniques par rapport au premier
str (t) intensitŽs relatives des harmoniques
phs (t) valeurs des phases
npart (number) nombre des dŽcimales pour les nouveaux param•tres

La GEN09 construit une forme dÕonde qui est le rŽsultat de lÕaddition de


plusieurs sinus. Les sinus peuvent •tre en rapport harmonique ou non, en phase ou pas,
ˆ la diffŽrence de la GEN10 qui ne peut avoir que des rapports harmoniques et en
phase.
Le format de sortie du module est une liste comportantÊ:

- le rapport harmonique pn (en nombre entier ou fractionnaire si ce rapport est


inharmonique)
- le poids relatif des harmoniques strn.
- le rapport de phase exprimŽ en degrŽsÊ; pour une valeur de phase identique
garder la valeur zŽro par dŽfaut.
-
Ces trois param•tres seront rŽpŽtŽs pour chaque harmonique dŽsirŽe.
( p1 str1 phs1 p2 str2 phs2É pn strn phsn)
(voir plus loin ˆ propos du module sampler un exemple de patch pour la
gŽnŽration de 24 partiels pour ce module).

OpenMusic - Om2Csound - 13
pargen15

formatage de donnŽes pour la GEN15

entrŽes
xint (number) limite infŽrieure de lÕintervalle dŽfinissant
le polyn™me (-xint)
xamp (number) limite supŽrieure de lÕintervalle dŽfinissant
le polyn™me (+xint)
ho (list) une liste d'intensitŽs relatives des harmoniques
phs (list) une liste de phases

Le module pargen15 est utilisŽ pour gŽnŽrer une table utilisant la GEN15 qui
crŽe deux tables de polyn™mes.

OpenMusic - Om2Csound - 14
instr

instrument0

formatage de donnŽes pour les notes

entrŽes
instr (number) numŽro de lÕinstrument
onset (list) la date de chaque Žv•nement (en secs.)
durs (list) les durŽes en secondes
add lst (list) param•tres supplŽmentaires
(entrŽes extensibles)

Le module instrument0 est un module extensible qui gŽn•re un score pour •tre
imprimŽ ˆ partir de la bo”te editsco et ne concerne que les dŽclarations de donnŽes de
type ÇÊiÊÈ.

Dans lÕexemple ci-dessous, nous avons pris ˆ partir dÕun fichier Midi une ligne
mŽlodique (sans accords) que nous entrons dans une chord-seq par lÕentrŽe <object>.
Ainsi nous obtenons un objet contenant lÕinformation nŽcessaire ˆ la rŽalisation dÕun
score pour CsoundÊ: les hauteurs, exprimŽes en midicents, les onsets et les durŽes en
millisecondes et la vŽlocitŽ exprimŽe linŽairement de 0 ˆ 100.

La deuxi•me Žtape consiste ˆ convertir ces donnŽesÊ: les midicents en Hz, les
onsets et les durŽes en secondes (les diviser par 1000).Ê

OpenMusic - Om2Csound - 15
On entre ces donnŽes converties dans le module instrument0 selon lÕordre des
param•tres, sachant que le premier param•tre p1 est rŽservŽ au nom de lÕinstrument, le
deuxi•me param•tre p2 aux ÇÊonsetsÊÈ et le troisi•me pram•tre p3 aux durŽes, le reste
Žtant relatif ˆ lÕinstrument donnŽ.
La sortie du module instrument0 est reliŽe au module editsco qui formatera le
texte pour Csound.

OpenMusic - Om2Csound - 16
ScoreÊ:
f1 0 4096 10 1
f2 0 2048 7 0.0650 205 0.4570 205 1.0000 204 0.9780 205 0.8910 205 0.7170
205 0.6090 205 0.4130 204 0.1520 410 0.0000
;p1 p2 p3 p4 p5
i1 0.0000 1.0420 10000 293.6648
i1 1.0420 1.0460 10000 440.0000
i1 2.0880 1.0410 10000 349.2282
i1 3.1290 1.0460 10000 293.6648
i1 4.1750 1.0420 10000 277.1826
i1 5.2170 0.5210 10000 293.6648
i1 5.7380 0.5240 10000 329.6276
i1 6.2620 1.3050 10000 349.2282
i1 7.5670 0.2580 10000 391.9954
i1 7.8250 0.2630 10000 349.2282
i1 8.0880 0.2620 10000 329.6276
i1 8.3500 0.6620 10000 293.6648
e

OpenMusic - Om2Csound - 17
instrument1

formatage de donnŽes pour les notes

entrŽes
instr (number) numŽro de lÕinstrument
onset (list) la date de chaque ŽvŽnement (en secondes)
si ce param•tre est un atome et non une liste,
toutes les notes seront jouŽes simultanŽment
durs (list) les durŽes en secondes
p4 (list) param•tre 4
p4 (list) param•tre 5
others (list) param•tres supplŽmentaires donnŽs
sous forme de liste ou de liste de liste

Comme le prŽcŽdent, le module instrument1 gŽn•re des donnŽes pour les


dŽclarations de type ÇÊiÊÈ. On lÕutilise dans le cas o• les param•tres p4 et p5 sont
constants et suivis par un grand nombre de param•tres qui seront entrŽs comme liste ou
liste de liste dans lÕentrŽe others. Ce module est utile notamment dans le cas de filtrage.
Cependant, on peut toujours avoir recours au module instrument0 qui est dÕordre plus
gŽnŽral.

OpenMusic - Om2Csound - 18
make-obj-snd

formatage de donnŽes pour les notes

entrŽes
lins (list) numŽro de lÕinstrument
lonsets (list) liste des onsets (en secondes)
ldurs (list) liste des durŽes (en secondes)
lp4 (list) param•tre p4
lp5 (list) param•tre p5 (rŽservŽ aux notes)
args (list) param•tres supplŽmentaires

make-obj-snd est un module extensible qui retourne un objet CLOS contenant


toutes les informations nŽcessaires aux dŽclarations de type ÇÊiÊÈ. Ce module a ŽtŽ
spŽcialement con•u pour Žditer les notes et plus particuli•rement les accords dÕune
mani•re similaire au module chordseq. Les notes seront saisies sous forme dÕune liste
de listes o• les listes reprŽsentent des accords ˆ n-sons. Cette liste devra •tre saisie dans
<lp5 > qui dŽterminera le format des autres param•tres. Si ceux-ci nÕont pas le m•me
format, i.e. sÕils sont sous forme de liste simple, les valeurs contenues seront rŽpŽtŽes
selon la longueur de chaque liste de la liste entrŽe en <Ip5 >.

Afin dÕillustrer ceci, prenons 4 accords de densitŽs diffŽrentes (1 3 4 5) issus


dÕune chord-seq. Nous obtenons une liste de listes Ô((196) (370 698 539) (65 123 180
339) (1209 1109 1017 659 453)). LÕentrŽe <lonsets > prend une liste de 4 valeurs Ô(0 5
10 15) pour la date des Žv•nements. Dans <ldurs > on entre une valeur unique pour
obtenir 4 accords de durŽe identique. <lp4 > reprŽsentant les dynamiques, nous entrons
une liste simple de quatre valeurs dŽcroissantes Ô(80 75 70 65). LeÊÇÊscoreÊÈ obtenu
affiche des valeurs cohŽrentes pour chaque accord et cela par rapport aux donnŽes
globales.
OpenMusic - Om2Csound - 19
OpenMusic - Om2Csound - 20
Dans lÕexemple ci-dessous on a extrait ˆ partir dÕun fichier Midi les donnŽes
concernant les notes et les durŽes en passant par un chordseq (notez la connexion entre
les deux qui se fait ˆ travers lÕentrŽe <object > de chordseq). Les notes sont rŽcupŽrŽes
par la sortie <lmidic > du chordseq comme liste de liste en midicentsÊ:

OM->((5900 6600 7400 7800) (6400 7400 7900) (6900 7300 7800) (7600) (7800 6200
7400) (7600) (7400) (7300) (7100 6700) (7600) (7400 6400) (7300) (7400 6500)
(7100) (7000 6600) (6700) (6600) (6400) (6200 6600 7100))

OpenMusic - Om2Csound - 21
qui seront convertis en HzÊ:

OM->((247 370 587 740) (330 587 784) (440 554 740) (659) (740 294 587) (659)
(587) (554) (494 392) (659) (587 330) (554) (587 349) (494) (466 370) (392)
(370) (330) (294 370 494))

Les accords seront sous le format dÕune liste ˆ n notes comme par exemple (247
370 587 740). Les notes jouŽes seules seront aussi dans une liste ˆ un ŽlŽment
seulement comme (659). Ceci permet le formatage des autres param•tres comme celui
des onsets (p2) qui reprŽsente une liste simple. Dans le cas o• on entre une liste simple
dans <lmidic > on obtiendra une succession de notes simples.

edit

Editsco

Ždition du score

entrŽes

OpenMusic - Om2Csound - 22
args (list) prend en entrŽe les sorties des modules
table instrument0, instrument1 et
make-obj-snd.
Ce module est extensible. Il est possible
aussi
dÕinclure des commentaires (Ê;) ou autres
ÇÊopcodesÊÈ comme ( s), (a) ou ( t), et ceci
toujours sous forme de liste (entre
parenth•ses).

Change-col

modification du fichier texte

entrŽes
op (symbol) nature de lÕopŽration arithmŽtique
scal (number) facteur
col (number) numŽro de la colonne (1 = p2)
lig-b (number) numŽro de la premi•re ligne
lig-e (number) numŽro de la derni•re ligne

OpenMusic - Om2Csound - 23
Dans cet exemple nous modifions le fichier score de lÕexemple ÇÊsimple scoreÊÈ
en multipliant le temps dÕattaque de chaque Žv•nement (les onsets) par 2.

OpenMusic - Om2Csound - 24
Remarquons quÕˆ lÕentrŽe <col > la valeur 1 est assignŽe, Žtant donnŽ que les
onsets se trouvent dans le champs de param•tres de lÕinstrument en p2. A LÕentrŽe <lig-
e >, on a assignŽ la valeur 3 car nous commen•ons ˆ modifier ˆ partir de la ligne 3 du
fichier, les deux premi•res lignes ne comportant que des tables.

Fichier ÇÊsimple score.scoÊÈÊ:

f1 0 4096 10 1
f2 0 2048 7 0.0000 205 0.4570 205 1.0000
204 0.9780 205 0.8910 205 0.7170 205
0.6090 205
0.4130 204 0.1520 410 0.0000

;p1 p2 p3 p4 p5

i1 0.0000 1.0420 80.0000 293.6648


i1 1.0420 1.0460 80.0000 440.0000
i1 2.0880 1.0410 80.0000 349.2282
i1 3.1290 1.0460 80.0000 293.6648
i1 4.1750 1.0420 80.0000 277.1826
i1 5.2170 0.5210 80.0000 293.6648
i1 5.7380 0.5240 80.0000 329.6276
i1 6.2620 1.3050 80.0000 349.2282
i1 7.5670 0.2580 80.0000 391.9954
i1 7.8250 0.2630 80.0000 349.2282
i1 8.0880 0.2620 80.0000 329.6276
i1 8.3500 0.6620 80.0000 293.6648
e

Le m•me fichier modifiŽÊ:

OpenMusic - Om2Csound - 25
f1 0 4096 10 1
f2 0 2048 7 0 205 0.457 205 1 204 0.978 205
0.891 205 0.717 205 0.609 205 0.413 204 0.152 410 0

;p1 p2 p3 p4 p5
i1 0 1.042 80 293.6648
i1 2.084 1.046 80 440
i1 4.176 1.041 80 349.2282
i1 6.258 1.046 80 293.6648
i1 8.35 1.042 80 277.1826
i1 10.434 0.521 80 293.6648
i1 11.476 0.524 80 329.6276
i1 12.524 1.305 80 349.2282
i1 15.134 0.258 80 391.9954
i1 15.65 0.263 80 349.2282
i1 16.176 0.262 80 329.6276
i1 16.7 0.662 80 293.6648
e

OpenMusic - Om2Csound - 26
bpf-utilities

transfer

fonction de transfert

entrŽes
bpf (bpf) prend une bpf en entrŽe
x-val (t) un nombre ou une liste de valeurs de x

Le module transfer retourne les valeurs des y correspondants ˆ <x-val >

OpenMusic - Om2Csound - 27
sampler

Žchantillonnage de bpf

entrŽes
bpf (bpf) prend en entrŽe une bpf
mode (menu) mode de mise ˆ lÕechelle (xfact, max, sum)
nsamp (number) nombre dÕŽchantillons
xmin (number) valeur minimale de x
xmax (number) valeur maximale de x
oper (number) facteur de mise ˆ lÕŽchelle des y
ndec (number) nombre des dŽcimales

menu
xfact les Žchantillons y seront multipliŽs par la valeur <oper>
max les Žchantillons y seront mis ˆ lÕŽchelle tel que la valeur
maximale est Žgale ˆ <oper>
sum les Žchantillons y seront mis ˆ lÕŽchelle tel que leur somme
est Žgale ˆ <oper>

Ce module sert ˆ Žchantillonner une bpf. Trois modes dÕŽchantillonnage sont


prŽvus.

OpenMusic - Om2Csound - 28
xfact
Quand le mode xfact est activŽ, lÕŽchantillonnage sÕeffectue avec un facteur
multipliant les y par <oper >.
Dans lÕexemple ci-dessous nous avons gŽnŽrŽ un sinus en utilisant le module
sample-fun. LÕŽchantillonnage sÕeffectue sur 100 points allant de x=21 ˆ x=50 avec un
facteur multiplicatif de 0.5 rŽduisant les valeurs y de moitiŽ.

OpenMusic - Om2Csound - 29
OpenMusic - Om2Csound - 30
max

Le mode max permet lÕŽchantillonnage avec une mise ˆ lÕŽchelle des y sur un
plafond (maximum) <oper>. Ceci est utile quand on veut charger des valeurs ne
dŽpassant pas une certaine limite dans la GEN02 qui sert en gŽnŽral de rŽservoir de
donnŽes numŽriques.

OpenMusic - Om2Csound - 31
sum
Le mode sum est destinŽ ˆ Žchantillonner les y tel que leurs somme soit Žgale ˆ
<oper>. Nous prŽsentons un exemple dÕŽchantillonnage pour la GEN09Ê:

Dans cet exemple, nous utiliserons deux modules pour spŽcifier dÕune part le rang de 24
partiels et leur rapport qui est rendu inharmonique ˆ lÕaide du module inharm-ser
dŽcrit plus loin, et dÕautre part, le rapport dÕintensitŽ relatif de ces partiels par une bpf (
ces deux donnŽes sont destinŽes aux deux premi•res entrŽes de pargen09).

Le module sampler est utilisŽ ici en mode sum. Dans lÕentrŽe <nsamp > nous
entrons 24 afin dÕobtenir 24 Žchantillons. Dans les deux entrŽes qui suivent, <xmin > et
<xmax > nous dŽterminons la section dÕŽchantillonnage par rapport ˆ lÕaxe des x, qui ici
va de 0 ˆ 100. Ces param•tres sont importants car ils dŽpendent directement des
donnŽes de la bpf. Il faut sÕassurer que les segments dessinŽs ou entrŽs numŽriquement
couvrent bien cet espace sur lÕaxe des x afin dÕŽviter un Žchantillonnage de valeurs
nulles.

Dans lÕentrŽe <oper> nous avons mis la valeur 1 car nous voulons obtenir les
proportions des intensitŽs relatives qui sont reprŽsentŽs sur lÕaxe des y. Ces valeurs
devant •tre des nombres fractionnaires nous entrons 3 dans <ndec > afin de rŽduire le
nombre de chiffres apr•s la virgule et de ne pas charger inutilement le fichier.

OpenMusic - Om2Csound - 32
OpenMusic - Om2Csound - 33
bpf-interpol

interpolation de deux bpfs

entrŽes

bpfa (bpf) bpf 1


bpfb (bpf) bpf 2
nvals (number) nombre de rŽsultats voulus (2 Žtant la valeur par
dŽfaut qui donne les 2 bpfs sans interpolation)

curve (number) courbe dÕinterpolation (0 = linŽaire)

Le module bpf-intpol retourne une liste de listes de valeurs y qui est le


rŽsultat de lÕinterpolation de deux bpfs ayant les m•mes valeurs x.

OpenMusic - Om2Csound - 34
bpf-yx-interpol

interpolation de deux bpfs

entrŽes
bpfa (bpf) bpf 1
bpfb (bpf) bpf 2
nvals (number) nombre de rŽsultats voulus (2 Žtant la valeur par
dŽfaut qui donne les 2 bpfs sans interpolation)

curve (number) courbe

sorties
sortie1 (list) donne une liste des x communs aux deux bpfs
sortie2 (list) donne une liste de liste des y interpolŽs correspondants
aux x de la premi•re sortie

Le module bpf-xy-intpol retourne une liste de listes de valeurs y qui est le


rŽsultat de lÕinterpolation de deux bpfs ainsi quÕune liste de valeurs des x. A la
diffŽrence du module bpf-intpol, ce module calcule une nouvelle liste des x rŽsultant de
cette interpolation. Ci-dessous un exemple dÕinterpolation avec diffŽrentes courbes
dÕinterpolation.
OpenMusic - Om2Csound - 35
Interpolation linŽaire (curve = 0)Ê:

OpenMusic - Om2Csound - 36
Courbe positive (curve = 1)Ê:

Courbe nŽgative (curve = -1)Ê:

OpenMusic - Om2Csound - 37
conversion

lin->db

conversion dÕamplitude linŽaires vers dŽcibels

entrŽes
amps (t) nombre ou liste de valeur dÕamplitude lin•aire

OpenMusic - Om2Csound - 38
db->lin

conversion dÕamplitude - dŽcibels vers linŽaires

entrŽes
amps (t) nombre ou liste de valeur dÕamplitude en dŽcibels

OpenMusic - Om2Csound - 39
utilities

list-interpol

interpolation de deux listes

entrŽes
list1 (list) liste 1 (doit •tre une liste simple)
list2 (list) liste 2 (doit •tre une liste simple)
nvals (number) nombre de rŽsultats voulus (2 Žtant la valeur par
dŽfaut qui donne les 2 listes sans interpolation)
curve (number) courbe dÕinterpolation (0 = linŽaire)

exÊ:
(om::list-interpol '(100 75 50 25) '(25 50 75 100) 6 0)

- ((100.0 75.0 50.0 25.0) (85.0 70.0 55.0 40.0) (70.0 65.0 60.0 55.0)
(55.0 60.0 65.0 70.0) (40.0 55.0 70.0 85.0) (25.0 50.0 75.0 100.0))

OpenMusic - Om2Csound - 40
inharm-ser

distorsion de sŽrie harmonique

entrŽes
begin (number) frŽquence fondamentale
distortion (number) taux de distortion (1 = pas de distortion)
npartls (number) nombre de partiels voulu

Le module inharm-ser produit une liste de n partiels ˆ partir de


<begin> selon la formule partiel = begin * rang^dist".

Dans lÕexemple ci-dessous nous montrons une gŽnŽration dÕune sŽrie


harmonique (distortion = 1) et dÕune sŽrie inharmonique (distortion = 1.15) de 24
partiels.

OpenMusic - Om2Csound - 41
OpenMusic - Om2Csound - 42
Annexe
LÕorchestre ÇÊsimple.orcÊÈ utilisŽ dans les exemplesÊ:

sr= 44100
kr= 441
ksmps= 100
nchnls= 1

instr 1
iamp = ampdb(p4)
idur = p3
ifq1 = p5
a2 oscili iamp,1/idur,2
a1 oscili a2,ifq1,1
out a1
endin

OpenMusic - Om2Csound - 43
Bibliographie

DE POLI, G. ÇÊA Tutorial on Digital Sound Synthesis Techniques. È, Computer Music


Journal 7(4), 1983. Reprint in C.Roads, ed.. The Music Machine. MIT Press,, 1989.

DODGE, C., et T.A. Jerse, Computer Music: Synthesis, Composition, and Performance,
Schirmer Books, 1985.

GATHER, J.P, Amsterdam catalogue of Csound computer Instruments, Internet


version-(exists in book version), © J.-P. Gather, 1995

MATHEWS, M.V., The Technology of Computer Music, MIT Press, 1969.

MOORE, F.R., Elements of Computer Music, Prentice-Hall, 1990.

RISSET, J.-C., Introductory Catalogue of Computer Synthesized Sounds,, Murray Hill,


N.J.: Bell Telephone Laboratories. 1969.

SAMSON, P., ÇÊA General-Purpose Digital SynthesizerÊÈ, Journal of the Audio


Engineering Society 28(3), 1978, 106-113.

OpenMusic - Om2Csound - 44
Index
add lst,15 Interpolation de deux bpfs,34,35
Agon C.,1 Interpolation de deux listes,40
Amplitude,38,39 ldurs,19
amps,38,39 lin->db,38
args,19,23 lins,19
Assayag G.,1 list1,40
begin,41 list2,40
bpf,11,12,27,28,32,34,35 list-interpol,40
bpfa,34,35 lonsets,19
bpfb,34,35 lp4,19
bpf-interpol,34 lp5,19
bpf-utilities,27 make-obj-snd,19,23
bpf-yx-interpol,35 Malt M.,1
Change-col,23 max,28,31
chordseq,19,21 mode,28,29,31,32
chord-seq,15,19 Modification,23
Conversion,38 ndec,11,28,32
curve,34,35,36,37,40 npart,13
db->lin,39 npartls,41
DŽcibel,38,39 nsamp,28,32
Distorsion de sŽrie harmonique,41 nvals,34,35,40
distortion,41 onset,7,8,15,18
durs,15,18 oper,28,29,31,32
Echantillonnage de bpf,28 others,18
edit,22 p4,7,8,10,12,17,18,19,25,26,43
Edition,22 pargen,10
editsco,15,16,22 pargen09,13,32
Fonction de transfert,27 pargen15,14
ftable,10 pargen57,11,12
gen,10 phs,13,14
GEN02,31 pn,7,8,13
GEN05,11,12 points,10,11,12,29
GEN07,11 Pottier L.,1
GEN08,12 sampler,13,28,32
GEN09,13,32 Score,10
GEN15,14 simple score.sco,25
Haddad K.,1 Simple.orc,43
ho,14 str,13
inharm-ser,32,41 sum,28,32
instr,15,18,43 table,7,10,11,12,14,23
instrument0,15,16,18,23 transfer,27
instrument1,18,23 ttab,10

OpenMusic - Om2Csound - 46
utilities,40 xmin,28,32
xamp,14 x-val,27
xfact,28,29 y-max,11
xint,14 y-min,11
xmax,28,32

OpenMusic - Om2Csound - 47

Vous aimerez peut-être aussi