Jouer des notes

Play

Revenons une nouvelle fois à notre exemple. Nous avions utilisé l’instruction play dont vous aurez, sans équivoque possible, deviné la fonction :


play :c4


Play joue une note. Nous n’avons pas jusqu’à présent précisé de paramètre particulier. Sonic-Pi utilisera donc les paramètres par défaut et aura ce comportement pour toutes les instructions qui comportent des paramètres accessibles. Dans l’idée de vous mâcher le travail, Sonic-Pi est même allé plus loin en assignant un synthétiseur par défaut, beep, que vous avez entendu jusqu’à présent. Il aura également choisi :

  • une vélocité
  • une durée
  • une enveloppe

et d’autres paramètres accessoires. Tout ceci est bien entendu modifiable au cours de la performance, et les options sont nombreuses. Pressez F1 pour vous en faire une idée. Voici quelques paramètres en guise d’illustration :


play :c4, amp: 0.5, attack: 0.1, pan: 0, sustain: 0 sleep 2 play :c4, amp: 0.5, attack: 0.5, pan: 1, sustain: 0.9


Il y aura toujours beaucoup plus de paramètres que vous ne pourrez en contrôler. Il s’agira donc de se familiariser avec la terminologie anglaise relative au contrôle des notes et aux synthétiseurs. Ce n’est pas nécessairement complexe, c’est relativement intuitif, et si vous souhaitez faire de la musique électronique ou utiliser un ordinateur pour produire de la musique, vous n’y couperez pas. Internet parle anglais, les synthétiseurs parlent anglais. La fonction des différents paramètres est généralement assez facile à deviner :

– amp : amplification (volume).
– attack : vitesse d’attaque d’une note (du silence à son amplitude maximale).
– pan : panoramisation (gauche, centre, droite, quelque part entre ces coordonnées).
– sustain : soutien de la note (le temps qu’elle met à mourir).

Pour connaître les différents paramètres qu’il est possible de contrôler, placez vous en fin de ligne derrière le nom de votre note et entrez une virgule. L’auto-complétion du texte — sous la forme d’une petite boîte — se chargera de vous présenter les différentes options offertes. Il est possible d’utiliser les raccourcis claviers pour sélectionner une option, ce qui vous sauve quelques précieuses secondes.

Dérivés de play

Je ne conseille pas leur utilisation. Je ne conseille pas non plus de trop s’attarder à leur utilisation. Vous rencontrerez même quelques problèmes lorsque vous chercherez à contrôler dans le détail les notes jouées. Il existe pourtant deux membres supplémentaires de la famille play : play_pattern et play_pattern_timed.

Le premier vous permet de jouer une série de notes, chacune séparée par un sleep 1 implicite :


play_pattern [:c3, :f3, :bb3]

Quelle tristesse…

play_pattern_timed ajoute l’option supplémentaire de contrôle du sleep implicite mais rencontre des difficultés avec la gestion du sustain :


play_pattern_timed [:c3, :f3, :bb3], [0.25, 0.125, 0.3]

Vous les rencontrerez parfois dans les exemples mais vous aurez tôt fait de les oublier dans votre pratique musicale quotidienne. Préferez-leur play et un contrôle précis.

Play better sounds

Le son de beep est intriguant mais rapidement lassant. Changez de synthétiseur :


use_synth :fm play :c4, amp: 0.5, attack: 0.1, pan: 0, sustain: 0 sleep 0.25 use_synth :dsaw play :c4, amp: 0.5, attack: 0.5, pan: 1, sustain: 0.9


Vous venez d’en utiliser deux différents, à savoir :fm (pour frequency modulation) et :dsaw (pour detuned_saw). L’auto-complétion vous en suggère plus d’une vingtaine suite à l’utilisation de l’instruction use_synth. Vous avez déjà beaucoup d’options sonores à votre portée, d’autant plus si vous ajoutez consécutivement l’option suivante :


use_synth :fm use_synth_defaults divisor: 4 play :c4, amp: 0.5, attack: 0.1, pan: 0, sustain: 0 sleep 0.5 use_synth_defaults divisor: 2 play :c4, amp: 0.5, attack: 0.1, pan: 0, sustain: 0 sleep 0.5 use_synth :dsaw play :c4, amp: 0.5, attack: 0.5, pan: 1, sustain: 0.9


used_synth_defaults vous permet de modifier les paramètres de votre synthétiseur. Pressez Ctrl + I sur le nom d’un synthétiseur pour ouvrir la fenêtre d’aide qui vous présentera tout les paramètres qu’il est possible de contrôler. Il y en a généralement suffisament pour obtenir des résultats vraiment intéressants dès lors qu’on s’y intéresse. Je consacrerai ultérieurement un article à la synthèse sonore dans Sonic-Pi.

Essayez de modifier les paramètres au cours d’une exécution. Les synthétiseurs sont intéressants car leurs caractéristiques sonores peuvent évoluer au cours du temps : leurs timbres sont évolutifs.

Nous allons très rapidement voir comment automatiser les changements de paramètres, et comment les contrôler avec une plus grande aisance sans avoir à changer chaque valeur individuellement, à la main. Recevez de ma part ce conseil : si votre code demande trop de travail pour être rapidement mis à jour, quelque chose cloche. Cherchez ce qui ne va pas, automatisez. Être flegmatique est un trait de caractère enviable dès lors qu’on écrit du code.

Ne confondez pas :

  • les caractéristiques sonores de votre synthétiseur (la machine que vous contrôlez).
  • les paramètres de l’instruction play (votre musicien).

Play chords please

Sonic-Pi peut aussi jouer rapidement des accords. Il suffit de substituer l’instruction play à play_chord et de suivre la syntaxe suivante :


live_loop :accord do use_synth :hoover use_synth_defaults release: 0.5, attack: 0.1 play_chord (chord :c4, :M7), attack: 0 sleep 2 play_chord (chord :d4, :M7), attack: 0 sleep 2 end

Voilà comment reproduire cette progression d’accords house aussi répandue que la misère dans le monde. Si vous avez l’oeil, vous aurez remarqué que la syntaxe est étonnament redondante. Pourquoi indiquer deux fois chord ? La raison est simple :

play_chord indique qu’il s’agit de jouer plusieurs notes (polyphonie).
(chord :c4, :M7) indique qu’il faut jouer la collection de note correspondant à un accord basé sur la fondamentale de Do, quatrième octave, et la suite de tierces permettant de créer un accord majeur septième.

Si vous ne connaissez rien à la théorie musicale, jouez avec les différents accords disponibles, suggérés par l’auto-complétion. Familiarisez vous à leur son et à leurs propriétés acoustiques. Encore mieux, apprenez la notion de renversement grâce à Sonic-Pi :


use_synth :piano use_synth_defaults release: 0.5, attack: 0.1 play_chord (chord :c4, :M7), attack: 0 sleep 1 play_chord (chord :c4, :M7, invert: 1), attack: 0 sleep 1 play_chord (chord :c4, :M7, invert: 2), attack: 0 sleep 1 play_chord (chord :c4, :M7, invert: 3), attack: 0 sleep 1

Nous verrons très rapidement plus d’options dès lors que vous saurez que Sonic-Pi considère les accords comme des listes et des anneaux. De fait, si jusqu’à présent, la musique que vous produisiez avec Sonic-Pi était, je le reconnais, d’une certaine tristesse, les anneaux et les listes vont réllement vous permettre de dépasser ce cap.

Nous en aurons également terminé avec le premier exemple que nous explorons depuis le début de ce guide.