Rubriky
Výukové programy

Sonic Pi

Program ve kterém se můžete učit programovat tím, že vytváříte hudbu. V Raspbianu je už předinstalovaný, ale nemá ikonu na ploše. Najít ho můžete v nabídce pod záložkou vzdělávání.

Sonic Pi ikona
Sonic Pi ikona

Celý program se skládá ze tří tlačítek (Přehrát, Zastavit, Uložit) a tří oken (Okno pro psaní kódu, Výpis průběhu přehrávání, Výpis chyb). Z toho plyne opravdu jednoduché ovládání. Napíšete požadovaný kód a spustíte přehrávání. Pro zápis not se používá MIDI a k dispozici je 5 druhů zvuků.

dull_bell, pretty_bell, fm, beep, saw_beep
Sonic Pi
Sonic Pi

Na stránkách projektu je k dispozici dokumentace a výukové materiály. Mezi nimi lze najít i následující Demo Program. Původní anglické komentáře jsem se pokusil přeložit do češtiny.

# Sonic Pi Demo Program
# Pro spuštění stiskněte Play a pro zastavení Stop

# Nastavení tempa
with_tempo 350

# Následující sekvence se přehraje dvakrát se základním druhem zvuku
2.times do
	play_pattern [40,25,45,25,25,50,50]
	play_pattern [25,50,25,30,35,40,45,50]
	play_pattern [25,50,25,30,35,40,45,50].reverse
end

# Následující sekvence se přehraje dvakrát a použije se zvuk saw_beep
2.times do
	with_synth "saw_beep"
	play_pattern [25,50,25,30,35,40,45,50].shuffle
	play_pattern [25,50,25,30,35,40,45,50].reverse
end

# Ukázka hraní několika zvuků v jednu chvíli.
# Jednotlivá vlákna hrají současně.

# Trvale běžící zvuk na pozadí, který se mění
# podle toho jak hýbete myší. Běží dokud nestisknete
# tlačítko Stop.
play_pad "saws", 3

# Nové vlákno, které bude hrát zvuk saw_beep.
# Desetkrát náhodně přehraje notu 37 nebo 49
# s dvouvteřinovou pauzou.
in_thread do
	with_synth "saw_beep"
	10.times do
		if rand < 0.5
			play 37
		else
			play 49
		end
		sleep 2
	end
end

# Nové vlákno, které bude hrát zvuk pretty_bell.
# Dvacetkrát přehraje notu 49 s jednovteřinovou pauzou.
in_thread do
	with_synth "pretty_bell"
	20.times do
		play 49
		sleep 1
	end
end

# Výsledkem bude, že každou vteřinu zahraje nota 49
# z druhého vlákna a každou druhou vteřinu se k tomu
# přidá nota 49 nebo 37 z prvního vlákna.