From cf8e1b7e857aa28113f06ca140d8372ee6167ed9 Mon Sep 17 00:00:00 2001 From: Gwendal Le Vaillant Date: Tue, 2 Jul 2019 12:10:51 +0200 Subject: [PATCH] =?UTF-8?q?Reprendre=20=C3=A0=20example9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- puredata_fr.md | 66 ++++++++++++++++++++++-------------- resources/KeyboardPiano.jpg | Bin 0 -> 19613 bytes 2 files changed, 40 insertions(+), 26 deletions(-) create mode 100644 resources/KeyboardPiano.jpg diff --git a/puredata_fr.md b/puredata_fr.md index e5f3028..9b05749 100644 --- a/puredata_fr.md +++ b/puredata_fr.md @@ -301,28 +301,33 @@ Les gammes sont composés de **degrés**, qui sont un ensemble de notes qui cons Par exemple, une des gammes les plus utilisées est la **gamme majeure**. À partir d'une note tonique définie, la gamme majeure est composée des 6 **degrés** suivants : -| Degré | Nom | Écart degré précédente | Écart total en échelle MIDI | +| Degré | Nom | Écart degré précédent | Écart total en échelle MIDI | |---|---|---|---| -| 1st | Tonique | root | 0 | -| 2nd | supertonic | whole | 2 | -| 3rd | Tierce (majeure) | whole | 4 | -| 4th | Quarte | half | 5 | -| 5th | Dominante | whole | 7 | -| 6th | submediant | whole | 9 | -| 7th | leading note | whole | 11 | -| 8th | tonic | half | 12 | +| 1st | Tonique | - | 0 | +| 2nd | Sus-tonique | +1 | +2 | +| 3rd | Médiante | +1 | +4 | +| 4th | Sous-dominante | +1/2 | +5 | +| 5th | Dominante | +1 | +7 | +| 6th | Sus-dominante | +1 | +9 | +| 7th | Sensible | +1 | +11 | +| 8th | Tonique (à l'octave) | +1/2 | +12 | -Below you can see the musical synth that plays the major scale starting at C4. +Ci-dessous, voici un synthé qui peut jouer la gamme de Do (C) majeur, à partir du Do 4 (C4), qui se situe plutôt dans les fréquences médium-aigües. ![a musical synth](./resources/u9us.jpg) -### Resources: +### À faire +* Re-créer et tester ce patch (en ajoutant bien un limiteur "clip" avant la sortie) +* Modifier la gamme, pour jouer une gamme de Mi mineur (pour la gamme mineure : voir ressources ci-dessous) + +### Ressources * **patches** * [a musical synth](./resources/05_a_musical_synth.pd) * **online information** * [what is midi?](https://en.wikipedia.org/wiki/MIDI) * [musical scales](https://en.wikipedia.org/wiki/Major_scale) + * [Gamme mineure](https://fr.wikipedia.org/wiki/Liste_des_gammes_et_modes#Gamme_mineure) --- @@ -330,13 +335,34 @@ Below you can see the musical synth that plays the major scale starting at C4. -## Exemple 7 : contrôle le synthé avec un clavier d'ordinateur +## Exemple 7 : contrôle du synthé avec un clavier d'ordinateur -We can control the synth with the **key** object. -The output of this object needs to be routed to the corresponding notes we want with the **route** object. +Pour récupérer le numéro de la touche du clavier qui vient d'être appuyée, Pure Data fourni l'objet **key**. +On peut alors router la sortie de la boîte "key" vers des notes de synthétiseur, à l'aide de l'objet **route**. ![a musical synth with keyboard control](./resources/z847.jpg) +Le routage des touches du clavier doit permettre de se rapprocher de l'agencement des touches d'un piano. Un exemple de routage (celui utilisé dans Ableton Live par exemple) pour 1 octave est présenté ci-dessous. + +![](./resources/KeyboardPiano.jpg) + +### À faire +* Re-créer ce patch, et le configurer correctement pour qu'il fonctionne bien avec votre clavier. La table des caractères ASCII est disponible ci-dessous. + +### Challenge +* Ré-écrire l'objet "route" avec des blocs **==** et **sel** avant de regarder la solution + +### Ressources + +* **patches** + * [a musical synth](./resources/05_controlling_the_musical_synth.pd) +* **online information** + * [Code ASCII (lettre latines + caractères spéciaux)](https://fr.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange#/media/Fichier:ASCII-Table-wide.svg) + * [controlling the synth](http://write.flossmanuals.net/pure-data/controlling-the-synth/) +* **Blocs "==" et "sel"** + * [patch de solution du challenge](06-keyboard-equal-sel.pd) + + A more common way to control music programs is by using MIDI devices. You can setup midi from the **media** menu and selecting **midi settings**. Puredata provides a simple patch to test and see the midi messages coming into the computer. @@ -344,18 +370,6 @@ It can be shown by clicking on the **media** menu and selecting **test audio and ![midi setup and settings](./resources/fnid.jpg) -### Challenge : -* Ré-écrire l'objet "route" avec des blocs "==" et "sel" avant de regarder la solution - -### Resources: - -* **patches** - * [a musical synth](./resources/05_controlling_the_musical_synth.pd) -* **online information** - * [controlling the synth](http://write.flossmanuals.net/pure-data/controlling-the-synth/) -* ** Blocs "==" et "sel"** - * [patch de solution du challenge](06-keyboard-equal-sel.pd) - --- diff --git a/resources/KeyboardPiano.jpg b/resources/KeyboardPiano.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f776dfe00c7ae27d2652fd521d29e99112472fc6 GIT binary patch literal 19613 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 OYySUg5)1nI=>G#rg7;4V literal 0 HcmV?d00001