Début effets audio avancés

This commit is contained in:
Gwendal Le Vaillant 2019-07-02 14:50:49 +02:00
parent cf8e1b7e85
commit 8d28f7e9f9
2 changed files with 41 additions and 42 deletions

View File

@ -73,7 +73,7 @@ La fenêtre de programme audio, appelée fenêtre de **patch**, s'affiche lorsqu
---
## Exemple 1: Hello World
## Chapitre 1 : Hello World
PureData propose cinq types de boîtes de base pour la programmation graphique - toutes disponibles depuis le menu "Ajouter".
Les deux types dont nous avons besoin pour cet exemple sont :
@ -124,7 +124,7 @@ Toutefois, il est possible de jouer avec une boîte alors qu'on est en mode d'é
## Exemple 2 : calculatrice simple
## Chapitre 2 : calculatrice simple
Pour faire des calculs arithmétiques (additions, soustractions, ... et des fonctions ) PureData contient des boîtes d'objets pour les opérations +, -, etc... Pour donner des valeurs à ces boîtes-objet, on peut utiliser des boîtes de message, mais aussi des boîtes de **nombres** (depuis le menu Ajouter).
* L'intérêt est que l'on peut cliquer sur ces nombres (en mode normal, pas en mode d'édition) pour modifier facilement le nombre l'intérieur.
@ -138,7 +138,6 @@ Pour faire des calculs arithmétiques (additions, soustractions, ... et des fonc
* Re-créer le patch ci-dessus dans PureData, et l'essayer
* Pourquoi est-ce que ça ne fonctionne pas toujours ?
* what are creation arguments?
### Ressources :
@ -158,7 +157,7 @@ Pour faire des calculs arithmétiques (additions, soustractions, ... et des fonc
## Example 3: Bangs and triggers
## Chapitre 3: Bangs et Triggers
Dans Pure Data, les entrées et sorties (*inlets* et *outlets*) des boîtes n'ont pas toutes exactement le même comportement. Concernant les entrées, il existe des **entrées chaudes et froides** (*hot/cold*). Pour chaque boîte, on a :
@ -192,7 +191,7 @@ En ajoutant des objets trigger dans nos patches, on peut définir précisément
## Example 4: Timers and toggles
## Chapitre 4: Timers and toggles
En tant qu'environnement temps-réel pour la musique, Pure Data offre l'objet **metro** (métronome) pour créer des évènements réguliers dans le temps.
Pour allumer le métronome, ou l'éteindre, le plus simple est de connecter une boîte Interrupteur à son entrée.
@ -213,9 +212,9 @@ Ci-dessous, voici un grille de quelques exemple de conversion de *BPM* (tempo) e
### Challenge
* Écrire un patch de conversion automatique de tempo (en BPM, Beats Per Minutes) pour créer un métronome de noires (*quater-note*)
* Écrire un patch de conversion de tempo vers un métronome *suffle* (typique du jazz)
* Écrire un patch de conversion de tempo vers un métronome *suffle* (typique du jazz). Indice : on pourra utiliser l'objet **select**
### Resources:
### Ressources
* **patches**
* [timers and toggles patch](./resources/03_timers_and_toggles.pd)
@ -224,20 +223,18 @@ Ci-dessous, voici un grille de quelques exemple de conversion de *BPM* (tempo) e
\newpage
## Chapitre 5 : Premier synthé !
# Audio
## Setting up your audio device
### Configuration de l'interface audio
Depuis le menu **media**, sélectionner les Paramètres Audio. Les paramètres vont dépendre de la carte son de l'ordinateur, et du système d'exploitation.
Une bonne valeur est en général 512 échantillons (*samples*).
Une bonne valeur est en général 512 ou 1024 échantillons (*samples*).
Lorsqu'un patch audio sera prêt, il ne faudra pas oublier de cocher la case DSP (*digital signal processing*) pour lancer le moteur de calcul audio de Pure Data.
Attention : PureData permet de créer n'importe quel son, et il n'y a donc pas de limitation du volume en sortie. Il faut d'abord ne jamais mettre le casque trop fort, et on mettra systématiquement un limiteur en sortie (vu juste après).
<p style="text-align:center;color:red;">Attention : Ne jamais mettre les écouteurs trop fort, et toujours mettre un limiteur (objet "clip") à 0.5 avant le bloc de sortie audio. Vos tympans sont très précieux, prenez-en soin !</p>
<p style="text-align:center;color:red;">Attention : Ne jamais mettre les écouteurs trop fort, et toujours mettre un limiteur (objet "clip") à 0.1 avant le bloc de sortie audio. Vos tympans sont très précieux, prenez-en soin !</p>
![audio device](./resources/uawy.jpg)
@ -248,11 +245,7 @@ Attention : PureData permet de créer n'importe quel son, et il n'y a donc pas d
---
\newpage
## Exemple 5 : Premier synthé !
### Connexions de données, connexions de signaux
Jusqu'à maintenant, nous n'avons utilisé que des connexions de **données** entre les boîtes. Pour créer du son, nous allons maintenant créer des connexions de **signaux audio** entre des blocs de traitement du signal. Ces blocs sont facilement reconnaissables car ils commencent par un **tilde : ~**.
@ -265,11 +258,13 @@ Pour utiliser des sliders comme contrôle de volume audio, il est très importan
Pour ne pas avoir de saturation, et pour ne pas avoir de volumes audio trop importants (attention à vos oreilles !) on va régler le slider principal de volume sur la plage de valeurs de 0,0 à 0,1.
Cela correspond à gains de moins l'infini à -20 dB (décibels).
Le bloc **dac~** est un *Digital to Analog Converter*, Convertisseur Numérique-Analogique (CNA). Il indique à l'ordinateur de convertir les échantillons (il y en a en général 44100 ou 48000 par seconde) en un signal audio bien continu qui va vers le casque.
![a simple synth](./resources/tz52.jpg)
### À faire
* Re-créer les deux patches ci-dessus, et des tester
* Re-créer les deux patches ci-dessus, et les tester
* Chercher la différence entre les connexions de données, et les connexions de signal audio
### Ressources
@ -288,7 +283,7 @@ Cela correspond à gains de moins l'infini à -20 dB (décibels).
## Exemple 6 : Un peu de théorie musicale... et MIDI
Le MIDI permet de représenter des notes (Do, Ré, Mi, .. ou bien *C, D, E*, ...) avec des nombres sur 7 bits, entre 0 et 127. C'est une vieille norme - qui date des années 1980 - qui est toujours très utilisée aujourd'hui.
Le MIDI permet de représenter des notes (Do, Ré, Mi, .. ou bien *C, D, E*, ...) avec des nombres sur 7 bits, entre 0 et 127. C'est une vieille norme - datant des années 1980 - qui est toujours très utilisée aujourd'hui.
![midi notes to frequency](./resources/notes.gif)
@ -402,22 +397,24 @@ externals** option.
## Example 9: A drum machine
## Exemple 9 : Drum machine
We can load and play soundfiles with the **readsf~** object.
To build a simple sequencer we combine a **metro** with a counting loop,
**mod** and **select**.
On peut charger et jouer des fichiers sons à l'aide de l'objet **readsf~**. Pour cela il faut déclencher l'envoi d'un **message "open Chemin/Vers/Mon_Fichier.wav"** dans l'objet readsf~. Le chargement du fichier est alors complètement géré par Pure Data.
Below are the patches to both a simple and more complicated drum machine.
Pour fabriquer une boîte à rythme, il faut rajouter à l'objet readsf~ une fonctionnalité de **séquenceur**, qui déclenche des notes au bon moment. Pour fabriquer un séquenceur facilement, on va combiner un métronome **metro** avec un compteur qui boucle - voir l'objet **mod** pour l'opération de modulo - puis un objet **select** qui redirige chaque valeur de décompte.
Ci-dessous, vous trouverez des patches d'une boîte à rythme très simple, et d'une seconde boîte à rythme configurable.
![drum machines](./resources/vy4d.jpg)
### TODO:
### À faire
* create this patch yourself and try it out
* how can you make this drum machine polyphonic?
* Re-créer ces deux patches, et les essayer
### Resources:
### Challenge
* Rendre cette boîte à rythme polyphonique ! (Pour jouer plusieurs sons en même temps)
### Ressources
* **patches**
* [simple drum machine](./resources/08_gamepad_and_filter.pd)
@ -431,20 +428,19 @@ Below are the patches to both a simple and more complicated drum machine.
## Example 10: Putting it *all* together
## Exemple 10 : Pure Data Orchestra
The advanced drum machine sequencer can be used to create a patch that plays
random *music* coupled with the simple synths from before.
A new object is included in this patch called **vline~**.
It is used to create volume or filter curves.
La boîte à rythme de l'exemple précédent peut être utilisée pour créer un patch qui joue à la fois de la musique séquencée (aléatoire), et des boucles des synthés précédents.
Pour gérer les transitions entre notes, un nouvel objet appelé **vline~** est introduit dans le patch ci-dessous. Il permet d'obtenir des courbes de transition douces pour le volume des notes, ou d'autres paramètres comme les fréquence de coupure des filtres. En synthèse audio, ces courbes de transition sont appelées des **enveloppes**.
![putting it all together](./resources/8bpn.jpg)
### TODO:
### À faire
* try to make something yourself!
* Un patch personnalisé ! En vous inspirant des exemples précédents... Et surtout de vos idées
### Resources:
### Ressources
* **patches**
* [music by numbers](./resources/10_putting_it_all_together.pd)
@ -456,6 +452,9 @@ It is used to create volume or filter curves.
\newpage
## Exemple 11 : effets audio avancés (délai, phaser)
## A short intermezzo

View File

@ -31,17 +31,17 @@
#X obj 84 204 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 -1
-1 1;
#X obj 104 204 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144
-1 -1 3;
-1 -1 2;
#X obj 124 204 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144
-1 -1 0;
-1 -1 1;
#X obj 144 204 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144
-1 -1 3;
#X obj 164 204 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144
-1 -1 2;
-1 -1 0;
#X obj 184 204 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144
-1 -1 3;
-1 -1 2;
#X obj 204 204 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144
-1 -1 1;
-1 -1 3;
#X obj 64 319 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 84 319 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1