Akolada, część 2 (prototyp)
W poprzednim artykule przedstawiłem zarys pomysłu na Akoladę, język opisu muzyki. Koncepcja jest ciekawa i obiecująca. Jednak oczywiście najlepiej zobaczyć ją w działaniu, obejrzeć coś gotowego. A raczej - posłuchać czegoś gotowego.
Prototyp
Prototyp istnieje. Nazywa się improvviso i jest dostępny na GitHubie: https://github.com/marcusfirmus/akolada/tree/main/prototype.
Co prawda nie jest to jeszcze pełna wersja języka Akolada, ale jest to jak najbardziej funkcjonalna implementacja. Może służyć jako proof of concept, jako przykład, jako motywacja.
Załączony tam w podkatalogu examples/
utwór whole.imp, powstał w ramach testowania kodu, w trakcie pisania. Dodawałem kolejne elementy, kolejne funkcje, aż w końcu powstał - jak już pisałem w poprzednim odcinku - całkiem fajny kawałek:
To, w jaki sposób powstawała ta muzyka, tłumaczy dziką formę, a także niedopracowanie szczegółów utworu. Jest to zapis radości, która ogarniała programistę budującego instrument muzyczny.
Załączam również plik MIDI
, który jest wynikiem działania improvviso
: whole.mid. MIDI jest produktem improvviso
, ale warstwa brzmieniowa (obecna w mp3
) jest już wynikiem zastosowania fluidsynth. Jak się używa tego toolchaina - widać w załączonym w repozytorium Makefile
.
Jak wygląda kod, o którym mówimy? Poniżej fragment, który pozwala sobie wyobrazić, jak się z tym pracuje. Solówka perkusyjna to ciągi yymm...
i y y m m ...
, a zygzaki cyferek 1
to solówki melodyczne ;-) Sama radość. Jam przy klawiaturze …
r: ins=56, type=percussion, velo={100-127}, duration=1.2
N: type=melo, chan=4, instr=32, velo={75-110}, dura=1.7
+---+---+---+---+---+---+---+---
F_
1
4
c C c C
2 B 2 B 2
bB
ymmymymmymyymmmmyyyymmmymymmmyym
W
b E
Q Q
W E
+END
+---+---+---+---+---+---+---+---
1 1
1
1 1
1 1 1 1 1
1 1 1 1 1
1
c 1 1 c 1 C1
2 11 1 B 2
1 bB
1
y y y y y y y m m m m m m m m m
W
b E
Q Q
D D D D D D D D
W E
+END
Co dalej?
W kolejnych odcinkach przedstawię problemy jakie pojawiły się podczas pisania improvviso
(może słowo problemy nie jest tu na miejscu, chodzi o pewne decyzje, które trzeba podjąć, a nie do końca wiadomo od razu - w którą stronę iść).
Akolada powstaje w stylu ekstremalnym, nie będę jej projektować odgórnie. To, co mam gotowe do tej pory, powstało właśnie tak - w wyniku eksperymentów - improvviso
jest tego śladem, zapisem i efektem.
Dalszy ciąg nastąpi.