Début effets audio avancés
This commit is contained in:
parent
cf8e1b7e85
commit
8d28f7e9f9
|
@ -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".
|
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 :
|
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).
|
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.
|
* 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
|
* Re-créer le patch ci-dessus dans PureData, et l'essayer
|
||||||
* Pourquoi est-ce que ça ne fonctionne pas toujours ?
|
* Pourquoi est-ce que ça ne fonctionne pas toujours ?
|
||||||
* what are creation arguments?
|
|
||||||
|
|
||||||
### Ressources :
|
### 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 :
|
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.
|
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.
|
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
|
### 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 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**
|
* **patches**
|
||||||
* [timers and toggles patch](./resources/03_timers_and_toggles.pd)
|
* [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
|
\newpage
|
||||||
|
|
||||||
|
## Chapitre 5 : Premier synthé !
|
||||||
|
|
||||||
|
### Configuration de l'interface audio
|
||||||
# Audio
|
|
||||||
|
|
||||||
## Setting up your audio device
|
|
||||||
|
|
||||||
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.
|
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.
|
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).
|
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)
|
![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
|
### Connexions de données, connexions de signaux
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Exemple 5 : Premier synthé !
|
|
||||||
|
|
||||||
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 : ~**.
|
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.
|
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).
|
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)
|
![a simple synth](./resources/tz52.jpg)
|
||||||
|
|
||||||
### À faire
|
### À 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
|
* Chercher la différence entre les connexions de données, et les connexions de signal audio
|
||||||
|
|
||||||
### Ressources
|
### 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
|
## 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)
|
![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.
|
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.
|
||||||
To build a simple sequencer we combine a **metro** with a counting loop,
|
|
||||||
**mod** and **select**.
|
|
||||||
|
|
||||||
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)
|
![drum machines](./resources/vy4d.jpg)
|
||||||
|
|
||||||
### TODO:
|
### À faire
|
||||||
|
|
||||||
* create this patch yourself and try it out
|
* Re-créer ces deux patches, et les essayer
|
||||||
* how can you make this drum machine polyphonic?
|
|
||||||
|
|
||||||
### Resources:
|
### Challenge
|
||||||
|
* Rendre cette boîte à rythme polyphonique ! (Pour jouer plusieurs sons en même temps)
|
||||||
|
|
||||||
|
### Ressources
|
||||||
|
|
||||||
* **patches**
|
* **patches**
|
||||||
* [simple drum machine](./resources/08_gamepad_and_filter.pd)
|
* [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
|
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.
|
||||||
random *music* coupled with the simple synths from before.
|
|
||||||
A new object is included in this patch called **vline~**.
|
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**.
|
||||||
It is used to create volume or filter curves.
|
|
||||||
|
|
||||||
![putting it all together](./resources/8bpn.jpg)
|
![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**
|
* **patches**
|
||||||
* [music by numbers](./resources/10_putting_it_all_together.pd)
|
* [music by numbers](./resources/10_putting_it_all_together.pd)
|
||||||
|
@ -456,6 +452,9 @@ It is used to create volume or filter curves.
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
|
|
||||||
|
## Exemple 11 : effets audio avancés (délai, phaser)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## A short intermezzo
|
## A short intermezzo
|
||||||
|
|
||||||
|
|
|
@ -31,17 +31,17 @@
|
||||||
#X obj 84 204 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 -1
|
#X obj 84 204 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 -1
|
||||||
-1 1;
|
-1 1;
|
||||||
#X obj 104 204 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144
|
#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
|
#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
|
#X obj 144 204 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144
|
||||||
-1 -1 3;
|
-1 -1 3;
|
||||||
#X obj 164 204 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144
|
#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
|
#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
|
#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
|
#X obj 64 319 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
|
||||||
-1;
|
-1;
|
||||||
#X obj 84 319 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
|
#X obj 84 319 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
|
||||||
|
|
Loading…
Reference in New Issue