Przygotowanie krótkiego utworu (~1min) w środowisku Sonic Pi, spełniającego następujące wymagania:
Plik: 08.rb
Za tworzenie i wysyłanie komunikatów MIDI odpowiada rodzina funkcji midi*.
Każda z nich akceptuje parametr port:, który pozwala na wybranie docelowego portu.
Domyślną wartością jest * wysyłająca na wszystkie porty.
midi :c4.
Przyjmuje dodatkowe parametry vel odpowiadające za „siłę uderzenia w klawisz” (0-127) oraz sustain określające długość wciśnięcia klawisza.velmidi_note_on vel: 010.times do |i|
midi :c4, vel: i * 10, sustain: 1
sleep 1
end
use_real_time
in_thread do
use_midi_defaults port: "timidity_timidity_port_0_136_0"
midi_pc 24 # AcousticGuitarNylon
loop do
midi scale(:c4, :major).tick
sleep 1
end
end
in_thread do
use_midi_defaults port: "timidity_timidity_port_1_136_1"
midi_pc 19 # Church Organ
loop do
midi scale(:c2, :major).tick
sleep 4
end
end
Najprostsza metoda - zwiększenie liczby portów tworzonych automatycznie przez ALSA:
# echo "options snd-seq-dummy ports=4" > /etc/modprobe.d/more-midi-ports.conf
# reboot