Atelier : document final
This commit is contained in:
@ -6,6 +6,20 @@ export const atelier = (application: Editor): string => {
|
|||||||
return `
|
return `
|
||||||
# Atelier (06 mars 2024)
|
# Atelier (06 mars 2024)
|
||||||
|
|
||||||
|
Bonjour tout le monde ! Nous sommes :
|
||||||
|
|
||||||
|
- [Rémi Georges](https://remigeorges.fr) : musicien, réalisateur en informatique musicale.
|
||||||
|
- [Agathe Herrou](https://www.youtube.com/@th4music) : musicienne, chercheuse.
|
||||||
|
- [Raphaël Forment](https://raphaelforment.fr) : musicien, doctorant.
|
||||||
|
|
||||||
|
Nous pratiquons le [live coding](https://livecoding.fr). Nous utilisons notre ordinateur comme un instrument de musique, nous programmons de la musique devant notre public. Nous pouvons faire plein de choses comme :
|
||||||
|
|
||||||
|
- créer des instruments de musique, des synthétiseurs, des boîtes à rythme.
|
||||||
|
- jouer des échantillons, charger des images, des vidéos, créer des animations.
|
||||||
|
- contrôler d'autres instruments, jouer avec d'autres musiciens.
|
||||||
|
|
||||||
|
Topos est un instrument de musique. On peut l'utiliser depuis n'importe quel ordinateur, sans avoir à installer quoi que ce soit. Nous l'avons fabriqué pour que tout le monde puisse jouer facilement de la musique.
|
||||||
|
|
||||||
|
|
||||||
## Découverte
|
## Découverte
|
||||||
|
|
||||||
@ -19,6 +33,8 @@ beat(2)::sound('snare').out()
|
|||||||
beat(.5)::sound('hh').out()
|
beat(.5)::sound('hh').out()
|
||||||
`, true,)}
|
`, true,)}
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
- Qu'est-ce qu'il se passe si je change un nombre ?
|
- Qu'est-ce qu'il se passe si je change un nombre ?
|
||||||
- Qu'est-ce qu'il se passe si je change un nom ?
|
- Qu'est-ce qu'il se passe si je change un nom ?
|
||||||
- Essayez par exemple <ic>"sid"</ic> ou <ic>"trump"</ic>.
|
- Essayez par exemple <ic>"sid"</ic> ou <ic>"trump"</ic>.
|
||||||
@ -42,6 +58,8 @@ beat([0.25,0.5].beat(1))::sound("pluck")
|
|||||||
.note([40,45].beat(2)).out()
|
.note([40,45].beat(2)).out()
|
||||||
`, true,)}
|
`, true,)}
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
- Qu'est-ce que le son <ic>"pluck"</ic> ?
|
- Qu'est-ce que le son <ic>"pluck"</ic> ?
|
||||||
|
|
||||||
- Que signifie <ic>.note([40,45].beat(2))</ic> ?
|
- Que signifie <ic>.note([40,45].beat(2))</ic> ?
|
||||||
@ -71,12 +89,16 @@ beat([0.25,0.5].beat())::sound("pluck")
|
|||||||
.out()
|
.out()
|
||||||
`, true,)}
|
`, true,)}
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
Ici, on ajoute une nouvelle mélodie mais il s'agit aussi d'un nouvel instrument. C'est pour cela que le code est plus long. Quand on fait du <em>live coding</em>, on code tout en même temps : notes, rythmes, mélodies, sons. C'est beaucoup de choses ! C'est pour cela que le code est court, on essaie de tout taper très vite en jouant !
|
Ici, on ajoute une nouvelle mélodie mais il s'agit aussi d'un nouvel instrument. C'est pour cela que le code est plus long. Quand on fait du <em>live coding</em>, on code tout en même temps : notes, rythmes, mélodies, sons. C'est beaucoup de choses ! C'est pour cela que le code est court, on essaie de tout taper très vite en jouant !
|
||||||
|
|
||||||
- Que signifie selon vous <ic>vib</ic>, <ic>delay</ic>, <ic>room</ic> ou <ic>size</ic> ?
|
- Que signifie selon vous <ic>vib</ic>, <ic>delay</ic>, <ic>room</ic> ou <ic>size</ic> ?
|
||||||
|
|
||||||
- Que se passe-t-il si je change les valeurs dans <ic>vib</ic>, <ic>delay</ic>, <ic>room</ic> ou <ic>size</ic> ?
|
- Que se passe-t-il si je change les valeurs dans <ic>vib</ic>, <ic>delay</ic>, <ic>room</ic> ou <ic>size</ic> ?
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
**Exercices :**
|
**Exercices :**
|
||||||
|
|
||||||
- Transformer <ic>vib(8)</ic> en <ic>vib([2,4,8].beat(1))</ic>.
|
- Transformer <ic>vib(8)</ic> en <ic>vib([2,4,8].beat(1))</ic>.
|
||||||
@ -100,11 +122,15 @@ rhythm(0.5, 2, 8)::sound('sd').out()
|
|||||||
|
|
||||||
Nous allons créer un nouvel instrument à partir d'un son de base. Voici un premier son :
|
Nous allons créer un nouvel instrument à partir d'un son de base. Voici un premier son :
|
||||||
|
|
||||||
${makeExample("Notre son de base", `beat(2)::sound('sine').note(50).ad(0, .5).out()`, true)};
|
${makeExample("Notre son de base", `beat(2)::sound('sine').note(50).ad(0, .5).out()`, true)}
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
Ce son est assez ennuyeux. Nous allons ajouter quelques paramètres :
|
Ce son est assez ennuyeux. Nous allons ajouter quelques paramètres :
|
||||||
|
|
||||||
${makeExample("Beaucoup mieux !", `beat(2)::sound('sine').note(50).fmi(2).fmh(2).ad(0, .5).out()`, true)};
|
${makeExample("Beaucoup mieux !", `beat(2)::sound('sine').note(50).fmi(2).fmh(2).ad(0, .5).out()`, true)}
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
Nous allons aussi ajouter quelques effets intéressants :
|
Nous allons aussi ajouter quelques effets intéressants :
|
||||||
|
|
||||||
@ -113,6 +139,8 @@ ${makeExample("Ajout d'un écho", `beat(2)::sound('sine').note(50)
|
|||||||
.delay(0.5).delayt(0.75).out()`,
|
.delay(0.5).delayt(0.75).out()`,
|
||||||
true)}
|
true)}
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
Nous pouvons utiliser plusieurs techniques pour rendre le son plus dynamique :
|
Nous pouvons utiliser plusieurs techniques pour rendre le son plus dynamique :
|
||||||
- générer des valeurs aléatoires pour les paramètres
|
- générer des valeurs aléatoires pour les paramètres
|
||||||
- utiliser des générateurs de valeurs (comme <ic>usine</ic>)
|
- utiliser des générateurs de valeurs (comme <ic>usine</ic>)
|
||||||
@ -124,6 +152,7 @@ beat(2)::sound('sine').note([50,55,57,62,66, 69, 74].mouseX())
|
|||||||
.ad(1/16, 1.5).delay(0.5).delayt(0.75)
|
.ad(1/16, 1.5).delay(0.5).delayt(0.75)
|
||||||
.out()`, true)}
|
.out()`, true)}
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
Un exemple final, le plus complexe jusqu'à présent :
|
Un exemple final, le plus complexe jusqu'à présent :
|
||||||
|
|
||||||
@ -134,6 +163,30 @@ beat(2)::sound('triangle')
|
|||||||
.ad(1/16, 1.5).delay(0.5).delayt(0.75)
|
.ad(1/16, 1.5).delay(0.5).delayt(0.75)
|
||||||
.room(0.5).size(8).lpf(usine(1/3)*4000)`, true)}
|
.room(0.5).size(8).lpf(usine(1/3)*4000)`, true)}
|
||||||
|
|
||||||
|
## Compléments
|
||||||
|
|
||||||
|
${makeExample("Quelques échantillons", `
|
||||||
|
ab ade ades2 ades3 ades4 alex alphabet amencutup armora arp arpy auto
|
||||||
|
baa baa2 bass bass0 bass1 bass2 bass3 bassdm bassfoo battles bd bend
|
||||||
|
bev bin birds birds3 bleep blip blue bottle breaks125 breaks152
|
||||||
|
breaks157 breaks165 breath bubble can casio cb cc chin circus clak
|
||||||
|
click clubkick co coins control cosmicg cp cr crow d db diphone
|
||||||
|
diphone2 dist dork2 dorkbot dr dr2 dr55 dr_few drum drumtraks e east
|
||||||
|
electro1 em2 erk f feel feelfx fest fire flick fm foo future gab
|
||||||
|
gabba gabbaloud gabbalouder glasstap glitch glitch2 gretsch gtr h
|
||||||
|
hand hardcore hardkick haw hc hh hh27 hit hmm ho hoover house ht if
|
||||||
|
ifdrums incoming industrial insect invaders jazz jungbass jungle juno
|
||||||
|
jvbass kicklinn koy kurt latibro led less lighter linnhats lt made
|
||||||
|
made2 mash mash2 metal miniyeah monsterb moog mouth mp3 msg mt mute
|
||||||
|
newnotes noise noise2 notes numbers oc off outdoor pad padlong pebbles
|
||||||
|
perc peri pluck popkick print proc procshort psr rave rave2 ravemono
|
||||||
|
realclaps reverbkick rm rs sax sd seawolf sequential sf sheffield
|
||||||
|
short sid sine sitar sn space speakspell speech speechless speedupdown
|
||||||
|
stab stomp subroc3d sugar sundance tabla tabla2 tablex tacscan tech
|
||||||
|
techno tink tok toys trump ul ulgab uxay v voodoo wind wobble world
|
||||||
|
xmas yeah`, true)}
|
||||||
|
|
||||||
|
|
||||||
`
|
`
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user