Sonic Pi est un logiciel gratuit qui permet de coder de la musique.
Il est possible de l’installer pour Windows / Linux / mac OS.
Le logiciel inclut une documentation en français idéale pour démarrer. Elle est très complète et intégrée au logiciel, ce qui permet d’apprendre en s’amusant en recopiant les nombreux exemples disponibles.
L’esprit du logiciel est :
Libérez votre créativité
Apprenez en vous amusant
Profitez de vos erreurs pour créer des possibles musicaux
Quelques ressources sympas :
Notation anglaise des notes de musique
# La :A Si :B Do :C Ré :D Mi :E
# Dièse s (sharp) - Bémol b
play :Ab4
sleep 1
play :A4
sleep 1
play :As4
sleep 1
play :B4
sleep 1
play :C5
sleep 1
play :Cs5
sleep 1
play :D5
sleep 1
# Au clair de la lune
# Création d'un tableau circulaire des notes
notes = (ring :C4, :C4, :C4, :D4, :E4, :D4,
:C4, :E4, :D4, :D4, :C4)
# Création d'un tableau circulaire des durées
durees = (ring 1, 1, 1, 1, 2, 2,
1, 1, 1, 1, 4)
live_loop :slow do
# Choix de la vitesse en bpm: battement par minute
use_bpm 100
# tick renvoie un compteur d'itération de la boucle
t = tick
print t # affichage dans le journal à droite ->
# On joue les notes
play notes[t], release: durees[t]
sleep durees[t]
end
# Utilisation d'un sample en local (dans mon C:)
omg1 = "/Dev/SonicPi/samples/voice_omg_male.wav"
omg2 = "/Dev/SonicPi/samples/voice_omg_butt_female.wav"
live_loop :test do
v_rate = rrand(0.5,2.0) # * choose([-1, 1])
sample omg1, rate: v_rate
print v_rate
sleep 0.765*(sample_duration omg1, rate: v_rate)
end
# Montée et descente de gamme
# Note midi : 60 = Do4 = C4
n_depart = 60 # note de départ
n_fin = 72 # note de fin
dir = 1 # direction
n = n_depart
live_loop :montee do
use_bpm 200
play n, attack: 0.025, release: 1
if n<n_depart or n>n_fin
dir = -dir
end
n = n + dir
sleep 1
end
# Petite boucle Gilles
use_bpm 80
live_loop :batterie do
if one_in(2)
sample :drum_snare_soft
else
sample :drum_bass_soft
end
sleep 0.5
end
live_loop :bass do
use_synth :blade
play choose([:E2, :G2, :A2, :E3]), release: 0.25, amp: rrand(0.5, 1.0)
sleep choose([0.5, 0.25, 0.5])
end