Fondamentaux de la Théorie Musicale
Le Son et la Physique Musicale
Le son est une vibration qui se propage dans l'air. La musique organise ces vibrations selon des rapports mathématiques précis.
f(n) = 440 × 2^((n-69)/12) Hz
où n = numéro MIDI (60 = Do central)
Fondamentale (f), Octave (2f), Quinte (3f), Double octave (4f), Tierce majeure (5f)...
Le Système Tempéré
Le tempérament égal divise l'octave en 12 demi-tons égaux.
¹²√2 ≈ 1.05946
Chaque demi-ton multiplie la fréquence par ce facteur
# FoxDot - Explorer le tempérament # Jouer tous les demi-tons d'une octave p1 >> pluck(range(12), dur=0.5) # Comparer tempérament égal vs. juste intonation # Tierce majeure tempérée (400 cents) vs. pure (386 cents) p2 >> sine([0, 4], dur=4) # Tempéré p3 >> sine([0, 0+4.86], dur=4) # Juste (5/4)
Notation et Transposition
Français | Anglais | Degré | Fréquence (La=440) |
---|---|---|---|
Do | C | 0 | 261.63 Hz |
Ré | D | 2 | 293.66 Hz |
Mi | E | 4 | 329.63 Hz |
Fa | F | 5 | 349.23 Hz |
Sol | G | 7 | 392.00 Hz |
La | A | 9 | 440.00 Hz |
Si | B | 11 | 493.88 Hz |
📝 Exercice : Exploration des octaves
1. Jouez la même note sur différentes octaves et observez le rapport de fréquence (×2)
2. Créez une mélodie qui utilise au moins 3 octaves différentes
3. Expérimentez avec la microtonalité en ajoutant des fractions aux degrés
Les Intervalles - Base de l'Harmonie
Classification des Intervalles
Un intervalle est la distance entre deux notes. Il se définit par sa taille (nombre de degrés) et sa qualité (majeur, mineur, juste, augmenté, diminué).
Nom | Demi-tons | Rapport | Qualité sonore | Code |
---|---|---|---|---|
Unisson | 0 | 1:1 | Parfait | P1 |
Seconde mineure | 1 | 16:15 | Dissonant | m2 |
Seconde majeure | 2 | 9:8 | Légèrement dissonant | M2 |
Tierce mineure | 3 | 6:5 | Consonant, triste | m3 |
Tierce majeure | 4 | 5:4 | Consonant, joyeux | M3 |
Quarte juste | 5 | 4:3 | Parfait/Suspendu | P4 |
Triton | 6 | √2:1 | Très dissonant | A4/d5 |
Quinte juste | 7 | 3:2 | Parfait | P5 |
Sixte mineure | 8 | 8:5 | Consonant | m6 |
Sixte majeure | 9 | 5:3 | Consonant | M6 |
Septième mineure | 10 | 16:9 | Dissonant | m7 |
Septième majeure | 11 | 15:8 | Très dissonant | M7 |
Octave | 12 | 2:1 | Parfait | P8 |
Consonance et Dissonance
Consonants imparfaits : Tierces et Sixtes
Dissonants : Secondes, Septièmes, Triton
# FoxDot - Explorer les intervalles # Jouer tous les intervalles depuis Do root = 0 p1 >> pluck([root, root+i] for i in range(13), dur=1) # Consonance vs Dissonance # Intervalles consonants p2 >> keys([(0,4), (0,7), (0,12)], dur=2) # Tierce maj, Quinte, Octave # Intervalles dissonants p3 >> keys([(0,1), (0,6), (0,11)], dur=2) # m2, Triton, M7 # Résolution des dissonances p4 >> keys([(0,11), (0,12)], dur=[1,3]) # 7M → Octave
Renversement des Intervalles
Quand on inverse un intervalle (la note grave devient aiguë), on obtient son complément à l'octave.
Intervalle + Renversement = 9
Majeur ↔ Mineur
Augmenté ↔ Diminué
Juste → Juste
# FoxDot - Renversements d'intervalles # Tierce majeure (4 demi-tons) → Sixte mineure (8 demi-tons) p1 >> pluck([(0,4), (4,12)], dur=2) # Quinte juste (7) → Quarte juste (5) p2 >> pluck([(0,7), (7,12)], dur=2) # Démonstration avec mouvement contraire melody = [0, 2, 4, 5, 7] p3 >> pluck(melody, dur=0.5) p4 >> pluck([12-n for n in melody], dur=0.5) # Inversion
📝 Exercice : Maîtrise des intervalles
1. Créez une mélodie utilisant uniquement des intervalles consonants
2. Ajoutez progressivement des dissonances et résolvez-les
3. Composez un motif basé sur un intervalle spécifique (ex: que des quartes)
Gammes et Modes - Les Couleurs Musicales
Construction des Gammes
Une gamme est une succession de notes organisées selon un pattern d'intervalles spécifique.
Majeure : T-T-S-T-T-T-S (T=Ton, S=Demi-ton)
Mineure naturelle : T-S-T-T-S-T-T
Mineure harmonique : T-S-T-T-S-(1.5T)-S
Mineure mélodique : T-S-T-T-T-T-S (montante)
# FoxDot - Gammes fondamentales # Gamme majeure Scale.default = "major" p1 >> pluck(P[:8], dur=0.5) # Comparaison des mineures p2 >> pluck([0,2,3,5,7,8,10,12], dur=0.5) # Naturelle p3 >> pluck([0,2,3,5,7,8,11,12], dur=0.5) # Harmonique p4 >> pluck([0,2,3,5,7,9,11,12], dur=0.5) # Mélodique # Gammes exotiques Scale.default = "phrygian" # Mode phrygien (flamenco) p5 >> pluck(P[:8].mirror(), dur=0.25)
Les Modes Grecs
Les modes sont des variations de la gamme majeure commençant sur différents degrés.
I - Ionien
Do Ré Mi Fa Sol La Si
Majeur classiqueII - Dorien
Ré Mi Fa Sol La Si Do
Mineur avec 6te majeureIII - Phrygien
Mi Fa Sol La Si Do Ré
Couleur espagnoleIV - Lydien
Fa Sol La Si Do Ré Mi
Majeur avec #4V - Mixolydien
Sol La Si Do Ré Mi Fa
Majeur avec 7bVI - Éolien
La Si Do Ré Mi Fa Sol
Mineur naturelVII - Locrien
Si Do Ré Mi Fa Sol La
Diminué, instable# FoxDot - Explorer les modes # Jouer tous les modes depuis la même fondamentale modes = ["ionian", "dorian", "phrygian", "lydian", "mixolydian", "aeolian", "locrian"] for i, mode in enumerate(modes): Scale.default = mode Clock.future(i*4, lambda m=mode: p1 >> pluck(P[:8], dur=0.5)) # Progression modale en Dorien Scale.default = "dorian" p2 >> keys([P(0,2,4), P(1,3,5), P(6,1,3), P(0,2,4)], dur=2)
Gammes Pentatoniques et Blues
Pentatonique mineure : 1, ♭3, 4, 5, ♭7 (La, Do, Ré, Mi, Sol)
Blues : 1, ♭3, 4, ♭5, 5, ♭7 (avec blue note)
# FoxDot - Gammes pentatoniques et blues # Pentatonique majeure - parfaite pour l'improvisation Scale.default = Scale.major.pentatonic p1 >> pluck(PRand(0,5)[:16], dur=0.25) # Blues avec bending de la blue note p2 >> pluck([0, 3, 5, 6, 7, 10], dur=0.5, bend=P[0,0,0,0.25,0,0]) # Riff de blues classique p3 >> bass([0, 0, 3, 0, 5, 3, 0, 0], dur=0.5, lpf=800)
Gammes du Monde
Gamme Arabe (Hijaz)
1, ♭2, 3, 4, 5, ♭6, 7
Intervalle augmenté caractéristiqueGamme Japonaise (Hirajoshi)
1, 2, ♭3, 5, ♭6
Pentatonique sans 4te ni 7meGamme Tzigane
1, 2, ♭3, #4, 5, ♭6, 7
Double intervalle augmentéGamme par Tons
1, 2, 3, #4, #5, #6
Que des tons entiers📝 Exercice : Exploration modale
1. Composez une mélodie dans chaque mode et notez leur caractère émotionnel
2. Créez une progression d'accords qui met en valeur un mode spécifique
3. Mélangez deux modes dans une même composition (polymodalité)
Construction et Théorie des Accords
Types d'Accords
Un accord est un ensemble d'au moins trois notes jouées simultanément, construites par superposition de tierces.
Type | Formule | Intervalles | Notation | Sonorité |
---|---|---|---|---|
Majeur | 1-3-5 | M3 + m3 | C, CM, Cmaj | Joyeux, stable |
Mineur | 1-♭3-5 | m3 + M3 | Cm, Cmin, C- | Triste, mélancolique |
Diminué | 1-♭3-♭5 | m3 + m3 | C°, Cdim | Tendu, instable |
Augmenté | 1-3-#5 | M3 + M3 | C+, Caug | Mystérieux, ambigu |
Sus2 | 1-2-5 | M2 + P4 | Csus2 | Ouvert, moderne |
Sus4 | 1-4-5 | P4 + M2 | Csus4 | Suspendu, attente |
Extensions d'Accords
Les accords peuvent être enrichis avec des notes supplémentaires au-delà de la triade.
7e : ajoute la 7e (majeure ou mineure)
9e : 7e + 9e (= 2e à l'octave)
11e : 9e + 11e (= 4te à l'octave)
13e : 11e + 13e (= 6te à l'octave)
# FoxDot - Extensions d'accords # Progression jazz avec extensions p1 >> keys([ (0, 4, 7, 11), # CM7 (2, 5, 9, 0), # Dm7 (4, 7, 11, 2), # Em7 (5, 9, 0, 4) # FM7 ], dur=2) # Accords de 9e p2 >> keys([ (0, 4, 7, 11, 2), # CM9 (5, 9, 0, 4, 7) # FM9 ], dur=4) # Voicings sophistiqués p3 >> piano([ (0, 7, 11, 2, 5), # CM9 sans tierce (5, 0, 4, 7, 9) # FM6/9 ], dur=4, sus=3)
Renversements et Voicings
Un renversement change la note de basse de l'accord. Le voicing détermine comment les notes sont distribuées.
# FoxDot - Renversements et voicings # Même accord, différents renversements p1 >> keys([ (0, 4, 7), # Do majeur - position fondamentale (4, 7, 12), # 1er renversement (Mi à la basse) (7, 12, 16) # 2e renversement (Sol à la basse) ], dur=2) # Voice leading fluide p2 >> keys([ (0, 4, 7, 11), # CM7 (2, 5, 9, 11), # Dm7 (Do reste) (4, 7, 11, 14), # Em7 (Sol reste) (5, 9, 12, 16) # FM7 ], dur=2) # Drop 2 voicing (jazz) p3 >> keys([(11, 0, 4, 7)], oct=4, dur=4) # CM7 drop 2
Accords Altérés et Substitutions
♭5 / #5 : Modifie la quinte
♭9 / #9 : Ajoute tension (jazz)
#11 : Couleur lydienne
♭13 : Tension supplémentaire
# FoxDot - Accords altérés # Dominant altéré (V7alt) p1 >> keys([(7, 11, 1, 4, 6)], dur=2) # G7♭9♭13 # Substitution tritonique # G7 → D♭7 (même triton) p2 >> keys([ (7, 11, 2, 5), # G7 (1, 5, 8, 11) # D♭7 ], dur=2) # Accords de couleur p3 >> keys([ (0, 4, 6, 11), # CM7♭5 (0, 3, 6, 9) # C°7 ], dur=2)
📝 Exercice : Maîtrise des accords
1. Construisez tous les accords diatoniques dans une tonalité
2. Créez une progression utilisant uniquement des accords de 7e
3. Expérimentez avec des voicings pour créer un mouvement fluide
4. Composez en utilisant des accords altérés pour créer de la tension
Harmonie Fonctionnelle et Progressions
Les Fonctions Harmoniques
En harmonie tonale, chaque accord a une fonction qui détermine son rôle dans la progression.
Quinte descendante : Très fort (V→I)
Quarte ascendante : Fort (I→IV)
Tierce : Faible mais fluide
Seconde : Linéaire
Cadences
Les cadences sont des formules harmoniques qui ponctuent le discours musical.
Cadence Parfaite
V → I
Conclusion définitiveCadence Plagale
IV → I
"Amen", douceDemi-cadence
? → V
SuspensiveCadence Rompue
V → vi
Surprise# FoxDot - Cadences # Cadence parfaite (V7 → I) p1 >> keys([(7,11,2,5), (0,4,7)], dur=[1,3]) # Cadence plagale (IV → I) p2 >> keys([(5,9,0), (0,4,7)], dur=[2,2]) # Cadence rompue (V → vi) p3 >> keys([(7,11,2), (9,0,4)], dur=[2,2]) # ii-V-I (jazz) p4 >> keys([ (2,5,9,0), # Dm7 (7,11,2,5), # G7 (0,4,7,11) # CM7 ], dur=[1,1,2])
Progressions Harmoniques Classiques
Nom | Progression | Exemple en Do | Style |
---|---|---|---|
Anatole | I-vi-ii-V | C-Am-Dm-G | Jazz standard |
Blues 12 mesures | I-I-I-I-IV-IV-I-I-V-IV-I-I | C-C-C-C-F-F-C-C-G-F-C-C | Blues |
Progression pop | I-V-vi-IV | C-G-Am-F | Pop moderne |
Pachelbel | I-V-vi-iii-IV-I-IV-V | C-G-Am-Em-F-C-F-G | Baroque |
Cercle des quintes | I-IV-vii°-iii-vi-ii-V-I | C-F-B°-Em-Am-Dm-G-C | Classique |
# FoxDot - Progressions classiques # Anatole (Rhythm Changes) rhythm_changes = [(0,4,7), (9,0,4), (2,5,9), (7,11,2)] p1 >> keys(rhythm_changes, dur=1) # Blues 12 bars blues = [0,0,0,0, 5,5,0,0, 7,5,0,0] p2 >> bass(blues, dur=1) p3 >> keys([(n,n+4,n+7,n+10) for n in blues], dur=1) # Pop progression avec rythmique pop = [(0,4,7), (7,11,2), (9,0,4), (5,9,0)] p4 >> keys(pop, dur=P[1,0.5,0.5]) d1 >> play("x-o-", dur=0.5)
Modulation
La modulation est le passage d'une tonalité à une autre.
• Diatonique : Via un accord commun
• Chromatique : Altération progressive
• Enharmonique : Réinterprétation d'un accord
• Directe : Sans préparation
# FoxDot - Techniques de modulation # Modulation par accord pivot (Am = vi en Do, ii en Sol) p1 >> keys([ (0,4,7), # C (I en Do) (9,0,4), # Am (vi en Do / ii en Sol) (2,6,9), # D (V en Sol) (7,11,2) # G (I en Sol) ], dur=2) # Modulation chromatique p2 >> pluck([0,2,4,5,7,7.5,8], dur=0.5) # Fa# mène vers Sol # Modulation par tons entiers for i in range(6): Clock.future(i*4, lambda t=i: Scale.default.set("major", t*2))
📝 Exercice : Harmonie avancée
1. Analysez une progression de votre chanson préférée
2. Créez une progression utilisant toutes les fonctions harmoniques
3. Composez une pièce qui module vers au moins 3 tonalités
4. Réharmonisez une mélodie simple avec des accords sophistiqués
Théorie Rythmique Avancée
Divisions Rythmiques
Le rythme organise le temps musical en pulsations régulières et leurs subdivisions.
Ronde = 4 temps
Blanche = 2 temps
Noire = 1 temps
Croche = 1/2 temps
Double croche = 1/4 temps
Triple croche = 1/8 temps
# FoxDot - Divisions rythmiques # Valeurs de base p1 >> pluck(0, dur=4) # Ronde p2 >> pluck(0, dur=2) # Blanche p3 >> pluck(0, dur=1) # Noire p4 >> pluck(0, dur=0.5) # Croche p5 >> pluck(0, dur=0.25) # Double croche # Triolets (division par 3) p6 >> pluck([0,2,4], dur=2/3) # Quintolets (division par 5) p7 >> pluck(P[:5], dur=0.8) # Polyrythmie 3:4 p8 >> pluck(0, dur=4/3) p9 >> bass(0, dur=1)
Métriques et Mesures Composées
Métrique | Pulsation | Caractère | Exemple |
---|---|---|---|
2/4 | Binaire simple | Marche | Polka |
3/4 | Ternaire simple | Valse | Menuet |
4/4 | Binaire simple | Stable | Pop/Rock |
6/8 | Binaire composé | Fluide | Tarentelle |
5/4 | Asymétrique | Boiteux | Take Five |
7/8 | Asymétrique | Balkanique | Musique bulgare |
# FoxDot - Métriques diverses # 3/4 - Valse p1 >> keys([0], dur=P[1,0.5,0.5], amp=P[1,0.5,0.5]) # 5/4 - Asymétrique (3+2) p2 >> pluck([0,2,4,5,7], dur=P[0.6,0.6,0.6,0.4,0.4]) # 7/8 - Balkanique (3+2+2) p3 >> play("x--x-x-", dur=0.875) # 6/8 - Composé p4 >> bass([0,0,0,5,5,5], dur=1/3) # Polymétrie 3 contre 4 p5 >> pluck(0, dur=4/3) p6 >> play("x", dur=1)
Patterns Rythmiques du Monde
Clave Son (Cuba)
3-2 ou 2-3
X..X..X...X.X...Tresillo
Pattern africain
X..X..X.Bossa Nova
Brésil
X.XX.XX.Shuffle
Jazz/Blues
Triolets avec silence# FoxDot - Rythmes du monde # Clave son 3-2 d1 >> play("x x x x x ", dur=0.25) # Tresillo (base de nombreux rythmes latins) d2 >> play("x x x ", dur=0.375) # Bossa nova d3 >> play("x xx xx ", dur=0.25) p1 >> keys([(0,4,7), (2,5,9)], dur=P[1.5,2.5]) # Rythme euclidien africain d4 >> play("x", dur=PDur(5,8)) # Shuffle (swing feel) Clock.bpm = 120 p2 >> pluck([0,2,4,5], dur=P[0.67,0.33])
Syncope et Contretemps
Contretemps : Silence sur temps fort, note sur temps faible
Hémiole : Superposition de groupements binaires et ternaires
# FoxDot - Syncopes et contretemps # Syncope simple p1 >> pluck([0,2,4], dur=[0.5,1,0.5]) # Contretemps p2 >> pluck(P[None,0,None,2,None,4], dur=0.5) # Hémiole (3 contre 2) p3 >> pluck([0,4,7], dur=2/3) p4 >> bass([0,5], dur=1) # Décalage progressif (phasing) p5 >> pluck([0,2,4,5], dur=1) p6 >> pluck([0,2,4,5], dur=0.99)
📝 Exercice : Maîtrise rythmique
1. Créez un pattern utilisant toutes les divisions (binaire, ternaire, etc.)
2. Composez en 7/8 en groupant les temps différemment (3+4, 2+3+2, etc.)
3. Superposez deux rythmes euclidiens différents
4. Créez une polyrythmie complexe avec au moins 3 couches
Contrepoint et Conduite des Voix
Règles du Contrepoint Classique
Le contrepoint est l'art de superposer des lignes mélodiques indépendantes.
Règles de base (Fux) :
# FoxDot - Contrepoint à deux voix # Contrepoint note contre note (1:1) cantus = [0, 2, 4, 5, 4, 2, 0] counter = [7, 5, 7, 9, 7, 5, 7] p1 >> pluck(cantus, dur=1) p2 >> pluck(counter, dur=1, oct=5) # Contrepoint fleuri (valeurs variées) p3 >> pluck([0, 2, 1, 2, 4, 5, 4, 2, 0], dur=[1, 0.5, 0.5, 1, 1, 0.5, 0.5, 1, 2]) p4 >> bass([0, -3, -1, 0], dur=[2, 2, 2, 2]) # Canon (imitation) melody = [0, 2, 4, 5, 7, 5, 4, 2] p5 >> pluck(melody, dur=0.5) p6 >> pluck(melody, dur=0.5, delay=2) # Entrée décalée
Types de Mouvement
Mouvements mélodiques :
# FoxDot - Mouvements de voix # Éviter les quintes parallèles # MAUVAIS: # p1 >> keys([(0,7), (2,9)]) # Do-Sol → Ré-La # BON: Mouvement contraire p1 >> keys([(0,7), (2,5)]) # Do-Sol → Ré-Fa # Voice leading optimal (proche) progression = [ (0, 4, 7), # Do Mi Sol (0, 3, 7), # Do Mi♭ Sol (Mi descend) (-1, 3, 5), # Si Mi♭ Fa (Do descend, Sol descend) (0, 4, 7) # Do Mi Sol (retour) ] p2 >> keys(progression, dur=2)
Contrepoint Modal et Moderne
• Quartes et quintes parallèles acceptées (Debussy)
• Polytonalité (plusieurs tonalités simultanées)
• Contrepoint rythmique (Steve Reich)
• Contrepoint timbral (Ligeti)
# FoxDot - Contrepoint moderne # Contrepoint minimaliste (phasing) pattern = [0, 2, 5, 2, 7, 2, 5, 2] p1 >> pluck(pattern, dur=0.25) p2 >> pluck(pattern, dur=0.24) # Décalage progressif # Contrepoint polytonal Scale.default = "major" p3 >> keys(P[0, 2, 4, 5].every(4, "reverse"), dur=0.5) p4 >> keys(P[0, 2, 4, 5].every(4, "reverse") + 6, dur=0.5) # En Fa# # Hétérophonie (même mélodie, variations) mel = [0, 2, 4, 5, 7] p5 >> pluck(mel, dur=0.5) p6 >> pluck(mel, dur=P[0.25, 0.75], oct=5) p7 >> pluck(mel.reverse(), dur=0.5, delay=0.25)
📝 Exercice : Art du contrepoint
1. Écrivez un contrepoint à 2 voix respectant les règles classiques
2. Créez un canon à 3 voix
3. Composez un contrepoint moderne utilisant des techniques étendues
4. Réalisez une fugue simple (exposition, développement, réexposition)
Formes Musicales et Structure
Formes Binaires et Ternaires
Forme Binaire (AB)
A : Tonique → Dominante
B : Dominante → Tonique
Danses baroquesForme Ternaire (ABA)
Exposition - Contraste - Retour
Aria da capoRondo (ABACA)
Refrain alternant avec épisodes
Final de sonateVariations
Thème transformé
Goldberg, Diabelli# FoxDot - Formes musicales # Forme ABA def section_a(): p1 >> pluck([0, 2, 4, 5, 7], dur=0.5) p2 >> bass([0, 5], dur=2) def section_b(): p1 >> pluck([7, 5, 4, 2, 0], dur=0.25) p2 >> bass([4, 2], dur=2) # Structure temporelle Clock.future(0, section_a) Clock.future(8, section_b) Clock.future(16, section_a) # Rondo ABACA sections = { 'A': lambda: p1 >> keys([0, 4, 7], dur=1), 'B': lambda: p1 >> keys([2, 5, 9], dur=1), 'C': lambda: p1 >> keys([5, 9, 0], dur=1) } for i, section in enumerate(['A','B','A','C','A']): Clock.future(i*4, sections[section])
Forme Sonate
Structure complexe en trois parties avec développement thématique.
Techniques de Développement
• Augmentation : Doubler les valeurs rythmiques
• Diminution : Diviser les valeurs
• Inversion : Renverser les intervalles
• Rétrograde : Jouer à l'envers
• Fragmentation : Utiliser des portions
# FoxDot - Techniques de développement theme = P[0, 2, 4, 5, 7] # Original p1 >> pluck(theme, dur=0.5) # Augmentation p2 >> pluck(theme, dur=1) # Diminution p3 >> pluck(theme, dur=0.25) # Inversion p4 >> pluck(12 - theme, dur=0.5) # Rétrograde p5 >> pluck(theme.reverse(), dur=0.5) # Fragmentation et séquence fragment = theme[:3] p6 >> pluck(fragment + (fragment + 2) + (fragment + 4), dur=0.25)
📝 Exercice : Construction formelle
1. Composez une pièce en forme ABA avec modulation dans B
2. Créez un thème et 4 variations utilisant différentes techniques
3. Esquissez une forme sonate miniature (2-3 minutes)
Analyse Musicale Appliquée
Analyse Harmonique
Méthodologie pour analyser et comprendre une œuvre.
1. Identifier la tonalité
- Armure
- Notes finales
- Accords principaux
2. Chiffrage des accords
- Degrés romains
- Fonctions
- Inversions
3. Phrases et cadences
- Découpage
- Points de repos
- Symétrie
4. Forme globale
- Sections
- Reprises
- Développements
Exemple d'Analyse : Pachelbel Canon
# FoxDot - Analyse du Canon de Pachelbel # Basse obstinée (ground bass) bass_line = [0, -5, -3, -8, -6, -3, -6, -5] p1 >> bass(bass_line, dur=1, oct=3) # Progression harmonique dérivée chords = [ (0, 4, 7), # I - Ré majeur (9, 0, 4), # V - La majeur (11, 2, 6), # vi - Si mineur (6, 9, 2), # iii - Fa# mineur (8, 0, 3), # IV - Sol majeur (0, 4, 7), # I - Ré majeur (8, 0, 3), # IV - Sol majeur (9, 0, 4) # V - La majeur ] p2 >> keys(chords, dur=1) # Mélodie en canon (3 voix) melody = [14, 12, 11, 9, 7, 5, 7, 9] p3 >> pluck(melody, dur=1, oct=5) p4 >> pluck(melody, dur=1, oct=5, delay=2) p5 >> pluck(melody, dur=1, oct=6, delay=4) # Analyse: I-V-vi-iii-IV-I-IV-V # Mouvement par quintes descendantes # 8 mesures, forme cyclique
Analyse Rythmique et Métrique
• Métrique de base et changements
• Patterns récurrents
• Syncopes et accentuations
• Rapport mélodie/accompagnement
• Micro-timing et groove
Application au Live Coding
# FoxDot - Recréer une structure analysée # Après analyse d'un morceau pop typique # Structure: Intro(4) - Verse(8) - Chorus(8) - Verse(8) - Chorus(8) - Bridge(4) - Chorus(8) def intro(): d1 >> play("x-o-", dur=0.5) p1 >> pluck(P[0,7].palindrome(), dur=0.5, amp=0.5) def verse(): p1 >> pluck([0,2,4,2], dur=0.5) p2 >> bass([0,0,5,5], dur=1) d1 >> play("x-o-", dur=0.5) def chorus(): p1 >> keys([(0,4,7), (5,9,0), (9,0,4), (3,7,10)], dur=1) p2 >> bass([0,5,9,3], dur=1) d1 >> play("x-o-x-oo", dur=0.25) def bridge(): p1 >> pluck(P[7,5,4,2,0].stutter(2), dur=0.25) p2.stop() d1 >> play("xxxx", dur=0.25) # Timeline automatisée timeline = [ (0, intro), (4, verse), (12, chorus), (20, verse), (28, chorus), (36, bridge), (40, chorus) ] for beat, section in timeline: Clock.future(beat, section)
📝 Projet Final : Analyse et Recomposition
1. Choisissez une œuvre classique ou moderne
2. Analysez sa structure harmonique, mélodique et rythmique
3. Identifiez les techniques de composition utilisées
4. Recréez l'œuvre en live coding en ajoutant votre touche personnelle
5. Documentez votre processus d'analyse et les choix créatifs
Analyse de Morceaux Populaires
Let It Be - The Beatles
Un exemple parfait de progression I-V-vi-IV, l'une des plus utilisées dans la pop.
# Sonic Pi - Let It Be use_bpm 72 use_synth :piano # Progression d'accords chords = [ chord(:C4, :major), chord(:G4, :major), chord(:A3, :minor), chord(:F4, :major) ] # Partie piano live_loop :piano do chords.each do |c| play c, release: 2, amp: 0.8 sleep 2 end end # Mélodie vocale simplifiée live_loop :melody do use_synth :sine notes = [:G4, :G4, :A4, :G4, :F4, :E4, :E4, :C4] durations = [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 1, 1] notes.zip(durations).each do |note, dur| play note, release: dur * 0.9, amp: 0.6 sleep dur end end # Ligne de basse live_loop :bass do use_synth :fm play :C2, release: 2, amp: 0.5 sleep 2 play :G2, release: 2, amp: 0.5 sleep 2 play :A2, release: 2, amp: 0.5 sleep 2 play :F2, release: 2, amp: 0.5 sleep 2 end
• Progression utilisée dans des centaines de chansons
• Mouvement par quintes descendantes (Do→Sol, La→Fa)
• Alternance majeur/mineur crée de l'émotion
• Structure simple mais efficace
Creep - Radiohead
Utilise une progression inhabituelle avec des accords empruntés qui créent une tension unique.
Analyse : I - III - IV - iv
Le III majeur est emprunté au mode lydien, le iv mineur crée une couleur mélancolique
# Sonic Pi - Creep (Radiohead) use_bpm 92 # Progression unique avec accord emprunté define :play_creep_progression do use_synth :pluck # G majeur play_chord chord(:G3, :major), release: 1 sleep 1 # B majeur (accord emprunté - normalement Bm en Sol majeur) play_chord chord(:B3, :major), release: 1 sleep 1 # C majeur play_chord chord(:C4, :major), release: 1 sleep 1 # Cm (accord emprunté - iv mineur) play_chord chord(:C4, :minor), release: 1 sleep 1 end # Pattern arpégé caractéristique live_loop :arpeggio do use_synth :electric_guitar_clean 4.times do play_creep_progression end end # Ligne de basse live_loop :bass_line do use_synth :bass_foundation notes = [:G2, :B2, :C3, :C3] notes.each do |n| play n, release: 0.9, amp: 0.7 sleep 1 end end # Effet de distorsion sur le refrain live_loop :power_chords do sync :arpeggio sleep 16 # Attendre 4 mesures with_fx :distortion, distort: 0.7 do use_synth :saw play_chord chord(:G3, :major), release: 4, amp: 0.3 sleep 4 end end
Hallelujah - Leonard Cohen
Exemple de progression sophistiquée utilisant des accords de passage et des dominantes secondaires.
# Sonic Pi - Hallelujah use_bpm 63 # Pattern d'arpège en 6/8 define :arpeggio_pattern do |root, type| use_synth :kalimba notes = chord(root, type) # Pattern caractéristique en 6/8 play notes[0], release: 0.3, amp: 0.7 sleep 0.25 play notes[1], release: 0.3, amp: 0.5 sleep 0.25 play notes[2], release: 0.3, amp: 0.5 sleep 0.25 play notes[0], release: 0.3, amp: 0.6 sleep 0.25 play notes[1], release: 0.3, amp: 0.5 sleep 0.25 play notes[2], release: 0.3, amp: 0.5 sleep 0.25 end # Progression principale live_loop :main_progression do # "I heard there was a secret chord" arpeggio_pattern(:C4, :major) # I arpeggio_pattern(:A3, :minor) # vi arpeggio_pattern(:C4, :major) # I arpeggio_pattern(:A3, :minor) # vi # "That David played and it pleased the Lord" arpeggio_pattern(:F4, :major) # IV arpeggio_pattern(:G4, :major) # V arpeggio_pattern(:C4, :major) # I arpeggio_pattern(:G4, :major) # V # "It goes like this: the fourth, the fifth" arpeggio_pattern(:F4, :major) # IV arpeggio_pattern(:G4, :major) # V arpeggio_pattern(:A3, :minor) # vi arpeggio_pattern(:F4, :major) # IV # "The minor fall and the major lift" arpeggio_pattern(:G4, :major) # V arpeggio_pattern(:E3, :minor) # iii arpeggio_pattern(:A3, :minor) # vi arpeggio_pattern(:F4, :major) # IV end # Mélodie vocale (refrain) live_loop :chorus do sync :main_progression sleep 12 # Attendre le bon moment use_synth :sine # "Hal-le-lu-jah" 4.times do play :C5, release: 0.5, amp: 0.4 sleep 0.5 play :A4, release: 0.5, amp: 0.4 sleep 0.5 play :C5, release: 0.5, amp: 0.4 sleep 0.5 play :A4, release: 1.5, amp: 0.4 sleep 1.5 end end
• Utilise le mode 6/8 pour un feeling de valse
• Les paroles décrivent littéralement la progression ("the fourth, the fifth")
• Mélange de simplicité harmonique et de sophistication mélodique
• L'accord de Mi mineur (iii) est rare et crée une couleur particulière
Billie Jean - Michael Jackson
Un groove minimaliste construit sur seulement deux accords, démontrant le pouvoir du rythme.
# Sonic Pi - Billie Jean use_bpm 117 # Le célèbre pattern de basse live_loop :bass_line do use_synth :bass_foundation # Pattern en F#m - C#m 2.times do play :Fs2, release: 0.2, amp: 1 sleep 0.5 play :Fs2, release: 0.2, amp: 1 sleep 0.5 play :Fs3, release: 0.2, amp: 0.8 sleep 0.5 play :Fs2, release: 0.2, amp: 1 sleep 0.5 end 2.times do play :Cs2, release: 0.2, amp: 1 sleep 0.5 play :Cs2, release: 0.2, amp: 1 sleep 0.5 play :Cs3, release: 0.2, amp: 0.8 sleep 0.5 play :Cs2, release: 0.2, amp: 1 sleep 0.5 end end # Pattern de batterie iconique live_loop :drums do sample :bd_haus, amp: 1.5 sleep 0.5 sample :drum_cymbal_closed, amp: 0.5 sleep 0.5 sample :sn_dolf, amp: 1 sleep 0.5 sample :drum_cymbal_closed, amp: 0.5 sleep 0.5 end # Accords synthé (strings) live_loop :chords do use_synth :prophet # F#m play_chord chord(:Fs3, :minor), release: 3.5, amp: 0.3 sleep 4 # C#m play_chord chord(:Cs3, :minor), release: 3.5, amp: 0.3 sleep 4 end # Hi-hat pattern caractéristique live_loop :hihat do use_synth :noise 16.times do play 80, release: 0.05, amp: 0.2 if spread(7,16).tick sleep 0.125 end end
• Seulement 2 accords (i - v en Fa# mineur)
• Le groove et le rythme sont plus importants que l'harmonie
• La ligne de basse est le véritable hook du morceau
• Exemple parfait du "moins c'est plus" en composition
Autumn Leaves - Standard de Jazz
Un standard qui démontre le cycle des quintes et la modulation relative majeur/mineur.
# Sonic Pi - Autumn Leaves use_bpm 120 # Progression ii-V-I en Sol majeur puis en Mi mineur define :jazz_voicing do |root, quality| # Voicings jazz typiques (sans fondamentale pour le bassiste) case quality when :maj7 [root+3, root+7, root+11, root+14] # 3, 7, 9, 11 when :m7 [root+3, root+7, root+10, root+14] # b3, b7, 9, 11 when :dom7 [root+4, root+7, root+10, root+13] # 3, b7, 9, 13 when :m7b5 [root+3, root+6, root+10, root+15] # b3, b5, b7, 9 end end live_loop :autumn_changes do use_synth :electric_piano # Cm7 (ii en Bb) play_chord jazz_voicing(60, :m7), release: 1.8, amp: 0.7 sleep 2 # F7 (V en Bb) play_chord jazz_voicing(65, :dom7), release: 1.8, amp: 0.7 sleep 2 # BbM7 (I en Bb) play_chord jazz_voicing(58, :maj7), release: 1.8, amp: 0.7 sleep 2 # EbM7 (IV en Bb) play_chord jazz_voicing(63, :maj7), release: 1.8, amp: 0.7 sleep 2 # Am7b5 (ii en Gm) play_chord jazz_voicing(57, :m7b5), release: 1.8, amp: 0.7 sleep 2 # D7 (V en Gm) play_chord jazz_voicing(62, :dom7), release: 1.8, amp: 0.7 sleep 2 # Gm (i en Gm) play_chord chord(:G3, :minor), release: 3.8, amp: 0.7 sleep 4 end # Walking bass live_loop :walking_bass do use_synth :upright_bass # Pattern de walking bass sur les changements notes = [:C2, :E2, :F2, :A2, # Cm7 - F7 :Bb2, :D3, :Eb3, :G2, # BbM7 - EbM7 :A2, :C3, :D3, :Fs2, # Am7b5 - D7 :G2, :Bb2, :D3, :G2] # Gm notes.each do |n| play n, release: 0.4, amp: 0.8 sleep 0.5 end end # Mélodie (thème simplifié) live_loop :melody do sync :autumn_changes use_synth :soprano_sax # Phrase mélodique caractéristique play :C5, release: 0.8, amp: 0.5 sleep 1 play :D5, release: 0.8, amp: 0.5 sleep 1 play :Eb5, release: 0.8, amp: 0.5 sleep 1 play :F5, release: 2.8, amp: 0.5 sleep 3 play :Eb5, release: 0.8, amp: 0.5 sleep 1 play :F5, release: 0.8, amp: 0.5 sleep 1 play :G5, release: 3.8, amp: 0.5 sleep 4 end
• Progression ii-V-I (base du jazz)
• Modulation entre relatifs (Si♭ majeur ↔ Sol mineur)
• Voicings sophistiqués avec extensions
• Walking bass créant du mouvement
• Utilisation du cycle des quintes
Sweet Child O' Mine - Guns N' Roses
Le riff d'intro démontre comment une simple gamme pentatonique peut créer une mélodie mémorable.
# Sonic Pi - Sweet Child O' Mine (Intro) use_bpm 125 # Le célèbre riff d'intro define :intro_riff do use_synth :distorted_guitar use_synth_defaults amp: 0.3, release: 0.3 # Pattern ascendant/descendant en Ré majeur notes = [:D4, :D5, :A4, :G4, :G5, :A4, :Fs5, :A4] 2.times do notes.each do |n| play n sleep 0.25 end end # Variation notes2 = [:E4, :D5, :A4, :G4, :G5, :A4, :Fs5, :A4] notes2.each do |n| play n sleep 0.25 end notes.each do |n| play n sleep 0.25 end end # Accords de la progression (couplet) live_loop :rhythm_guitar do use_synth :fm use_synth_defaults amp: 0.4, release: 1 # D - C - G - D play_chord chord(:D3, :major) sleep 2 play_chord chord(:C3, :major) sleep 2 play_chord chord(:G3, :major) sleep 2 play_chord chord(:D3, :major) sleep 2 end # Basse live_loop :bass do use_synth :bass_highend play :D2, release: 1.8, amp: 0.8 sleep 2 play :C2, release: 1.8, amp: 0.8 sleep 2 play :G2, release: 1.8, amp: 0.8 sleep 2 play :D2, release: 1.8, amp: 0.8 sleep 2 end # Jouer le riff live_loop :lead_guitar do intro_riff sleep 8 # Pause avant de répéter end
Clocks - Coldplay
Utilisation d'arpèges en croches pour créer une texture hypnotique sur une progression simple.
# Sonic Pi - Clocks use_bpm 131 # Pattern d'arpège caractéristique du piano live_loop :piano_arpeggio do use_synth :piano # Eb - Bbm - Fm 3.times do # Eb majeur play :Eb4, release: 0.3, amp: 0.8 sleep 0.25 play :Bb4, release: 0.3, amp: 0.6 sleep 0.25 play :G4, release: 0.3, amp: 0.7 sleep 0.25 play :Bb4, release: 0.3, amp: 0.6 sleep 0.25 end # Bbm play :Bb3, release: 0.3, amp: 0.8 sleep 0.25 play :F4, release: 0.3, amp: 0.6 sleep 0.25 play :Db4, release: 0.3, amp: 0.7 sleep 0.25 play :F4, release: 0.3, amp: 0.6 sleep 0.25 # Fm 2.times do play :F3, release: 0.3, amp: 0.8 sleep 0.25 play :C4, release: 0.3, amp: 0.6 sleep 0.25 play :Ab3, release: 0.3, amp: 0.7 sleep 0.25 play :C4, release: 0.3, amp: 0.6 sleep 0.25 end end # Basse synth live_loop :bass_synth do use_synth :prophet play :Eb2, release: 3, amp: 0.5, cutoff: 80 sleep 3 play :Bb2, release: 1, amp: 0.5, cutoff: 80 sleep 1 play :F2, release: 2, amp: 0.5, cutoff: 80 sleep 2 end # Pattern de batterie live_loop :drums do sample :bd_tek, amp: 1 sleep 0.5 sample :drum_cymbal_closed, amp: 0.3 sleep 0.5 sample :sn_dolf, amp: 0.8 sleep 0.5 sample :drum_cymbal_closed, amp: 0.3 sleep 0.5 end # Pad atmosphérique live_loop :atmosphere do use_synth :hollow play_chord chord(:Eb3, :major), release: 6, amp: 0.2 sleep 6 end
• Progression I-v-ii en Mi♭ majeur
• Pattern d'arpège créant une pulsation constante
• Utilisation de la répétition pour l'hypnose
• Contraste entre mouvement (arpèges) et statisme (accords tenus)
📝 Exercice : Analyse et Reconstruction
1. Choisissez une chanson que vous aimez
2. Identifiez sa progression d'accords (utilisez votre oreille ou recherchez)
3. Analysez la structure : intro, couplet, refrain, pont
4. Recréez-la en live coding en ajoutant votre touche personnelle
5. Expérimentez : changez le tempo, la tonalité, ou le style !