Przygotowanie koncepcji utworu zaliczeniowego (np. fragment planowanego utworu, ogólny pomysł w liście kroków, pomysł). Zaprezentowana koncepcja nie jest zobowiązaniem - można ją zmienić.
Na kolejnych zajęciah (2024-12-18) będzie można zaprezentować koncepcję (dowolnie skomplikowaną) oraz wykorzystać wiedzę muzyczno-programistyczną osób prowadzących do ewaluacji pomysłu, porad, szukania rozwiązań itp.
Prawdopodobny termin: 2025-01-31 (do potwierdzenia).
Wymagania kompozycji zaliczeniowej:
Utwór można:
Podobny mechanizm do OSC, można odebrać komunikaty typu note_on
, note_off
, control_change
, ...
Specyfikacja: /midi:nazwa_portu:nr_kanału/typ_komunikatu
live_loop :receive_midi do
use_real_time
note, velocity = sync "/midi:*:*/note_on"
synth :blade, note: note, amp: velocity / 127.0
end
Akordeon Laptopowy. W opisie link do artykułu wprowadzającego urządzenie, polecam przeczytać!
Przykład w którym wykorzystywany jest Sonic Pi do realizacji argumentów sortujących, w celu prezentacji algorytmu w formie muzycznej. W celu wizualizacji graficznej wykorzystuje dodatkowy program stworzony w języku Python. Inspirowane „The Sound of Sorting - "Audibilization" and Visualization of Sorting Algorithms”, zapraszam do zapoznania się z artykułem jak i kodem programu, który jest dostępny do pobrania.
Wymagania wstępne: interpreter języka Python 3, pip
pip3 install pygame python-osc
python3 osc.py
use_bpm 520
use_synth :tri
sort_array("Bitonic Sort",
method(:bitonic_sort),
(1..128).ring.reverse.to_a)
Prezentacja wszystkich zaimplementowanych sortowań:
use_bpm 520
use_synth :tri
sort_array("Insertion Sort (linear lookup)",
method(:insertion_sort_linear),
(1..100).ring.reverse.to_a)
sleep 1
sort_array("Radix Sort (Least Significant Digit)",
method(:radix_sort_lsd),
(1..256).ring.shuffle.to_a)
sleep 1
sort_array("Bitonic Sort",
method(:bitonic_sort),
(1..128).ring.shuffle.to_a)
sleep 1
sort_array("Coctail Shaker Sort",
method(:coctail_shaker_sort),
(1..64).ring.shuffle.to_a)
sleep 1
sort_array("Selection Sort",
method(:selection_sort),
(1..64).ring.shuffle.to_a)
sleep 1
with_fx :lpf, cutoff: :c8 do
sort_array("Bubble Sort",
method(:bubble_sort),
(1..64).ring.shuffle.to_a)
end