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.