Jakiś czas temu (raczej dawno) natknąłem się w internetach na wywiad z George'm R.R. Martin'em - pisarzem, autorem m.in. Gry o tron. Martin wspomniał, że swoje powieści pisze w systemie MS-DOS, w programie WordStar 4.0. Być może dzisiaj, dla wielu osób, nie jest to oczywiste, więc wyjaśnię, że zarówno system operacyjny MS-DOS, jak i edytor tekstu WordStar to oprogramowanie tyleż leciwe co, porównując do dzisiejszych standardów, prymitywne.
George R.R. Martin korzysta z systemu z interfejsem tekstowym - bez grafiki, bez ikon, bez kursora myszy, bez klikania. Tylko tekst - czarne tło, białe komunikaty i komendy. Ms-DOS trafił na rynek w 1981 roku, jego ostatnia samodzielna wersja (6.22) ukazała się w roku 1994 (od wersji 7 DOS był tylko częścią systemów Windows) a ostatnia wersja, w ogóle, ukazała się w 2000 roku, jako część systemu Windows Me.
Dlaczego George R.R. Martin wybiera tak przestarzałe oprogramowanie? Pisarz wyjaśnił, że takie środowisko pracy go nie rozprasza i nie realizuje rzeczy niepotrzebnych (np. nie sprawdza pisowni i nie próbuje poprawiać autora). Stary program w starym systemie operacyjnym nie robi niczego innego jak tylko to, do czego został stworzony.
Rzeczywiście, dzisiaj większość oprogramowania jest przeładowana zbędnymi, z punktu widzenia użytkownika, funkcjami. Pamiętam, że już Word 97 pozwalał na tworzenie stron internetowych. Dzisiaj za pomocą Worda możemy stworzyć stronę, skonwertować dokumenty, rozpoznać tekst na skanie, przeprowadzić kontrolę wersji i pewnie damy radę zrobić jeszcze milion innych rzeczy, przy okazji pooglądamy reklamy. Przeglądarki internetowe już dawno nie są tylko narzędziem do przeglądania treści, obecnie to wielozadaniowe kombajny, które mają własne ekosystemy aplikacji (Google Chrome została wręcz rozbudowana do formy samodzielnego systemu operacyjnego). Same witryny internetowe też stały się ociężałymi kolosami, głównie za sprawą ilości skryptów analitycznych i frameworków. W zeszłym roku naukowcy z CERN odtworzyli pierwszą przeglądarkę www i zrobili to w JavaScript, czyli... jako element strony internetowej[1] (ujmując to jaśniej - w przeglądarce możemy otworzyć witrynę, która uruchomi kod JavaScript, który uruchomi przeglądarkę, która pozwoli... przeglądać strony). Żeby sięgnąć po powszechnie znany przykład - Google Docs to właściwie cały pakiet biurowy działający wewnątrz przeglądarki - będący w zasadzie witryna internetową.
Dość zabawny w tej sytuacji jest fakt, że w większości przypadków, komputery od prawie czterdziestu lat (a może i dłużej - dla uproszczenia myślę o dacie wydania pierwszego MS-DOS'a) realizują te same zadania. Dzisiaj Microsoft regularnie publikuje aktualizacje do Windows 10 a każda z nich waży po kilka gigabajtów. Tymczasem użytkownicy tego systemu wykorzystują swoje komputery do takich samych celów jak w czasach Windowsa 3.11 (system wydany pod koniec 1993 roku) a nawet DOS'a.
Sam pamiętam, że gdy używałem systemów Windows 95 i 98 miałem zbiór dyskietek z kolekcją oprogramowania użytkowego do MS-DOS. W nierzadkich (zwłaszcza w Windows 98) przypadkach, gdy system ulegał awarii mogłem uruchomić MS-DOS i korzystać z komputera przy pomocy oprogramowania o bardziej prymitywnym (niż windowsowy) interfejsie. Ponadto, w razie awarii sprzętowej mogłem zawsze rozejrzeć się za jakimś starym komputerem z procesorem np. 386 (które wtedy były warte tyle ile ważyły na skupie złomu) i na nim stworzyć sobie alternatywne środowisko pracy. Umiejętność radzenia sobie z prymitywnym interfejsem dawała więc pewną niezależność od kosztownej technologii.
Po obejrzeniu wywiadu z George'm R.R. Martin'em zacząłem się zastanawiać, czy mógłbym pójść tym tropem - doprowadzić cyfrowy minimalizm do ekstremum i znaleźć (lub stworzyć) narzędzie do komponowania muzyki, które wykorzystywałoby absolutne minimum zasobów systemowych i mogłoby działać na nawet najtańszym sprzęcie komputerowym? Początkowo brałem pod uwagę też stary sprzęt i własnie MS-DOS'a, ale fakty są takie, że stare komputery, które oryginalnie funkcjonowały pod DOS'em i kiedyś były bezwartościowe, dzisiaj mają status sprzętu kolekcjonerskiego i są raczej drogie.
Uznałem więc, że najtańsza maszyna jaką dzisiaj jestem w stanie zdobyć to Raspberry Pi Zero - jednopłytowy komputer, który nowy kosztuje od 30 złotych (wersja podstawowa, bez pinów) do 80 złotych (wersja z WiFi, Bluetooth i z pinami). Urządzenie to w zupełności wystarczy do uruchomienia współczesnego systemu operacyjnego z graficznym interfejsem, jednak aby narzędzie kompozytorskie było rzeczywiście minimalistyczne powinno funkcjonować w trybie tekstowym, bez serwera graficznego.
Eksperyment przeprowadziłem na standardowej dystrybucji systemu Raspbian - kompilacji Linux'a Debian na Raspberry Pi. Dystrybucja ta posiada domyślnie uruchamiany menedżer okien, ale wyłączyłem tryb graficzny i pracowałem w trybie tekstowym.
Pod Linux'em istnieje prawdopodobnie wiele terminalowych programów umożliwiających tworzenie muzyki, mi zależało na tradycyjnym, nutowym, zapisie, więc wybrałem LilyPond. Pod tą nazwą funkcjonuje język, w pewnym stopniu przypominający język programowania, oraz kompilator tego języka. Praca polega więc na tym by napisać "kod" definiujący strukturę partytury a następnie ów "kod" skompilować. W wyniku kompilacji powstaje plik .pdf, zawierający już standardową partyturę, czytelną dla muzyka. Opcjonalnie LilyPond może też wytwarzać pliki MIDI - czyli partyturę przetłumaczoną na zestaw sygnałów - plik ten można odtworzyć, można też go przekazać do programowego syntezatora, by za pomocą czcionek dźwiękowych wytworzyć "symulację" instrumentalnego brzmienia utworu.
Zanim jednak możliwe będzie odtworzenie muzyki napisanej w LilyPond, niezbędny jest edytor tekstu. Właściwie może być dowolny. Co jak co, ale w tekstowych systemach operacyjnych nie brakuje edytorów.
Ja jednak oczekiwałem czegoś więcej, chciałem by edytor stanowił centrum mojego środowiska pracy i umożliwiał sterowanie innymi programami, aby wygodnie, bez wychodzenia z edytora kompilować kod, włączać odsłuch, renderować pliki muzyczne. Początkowo próbowałem to osiągnąć w edytorze Nano - jest on wygodny i umożliwia ustawianie własnych kombinacji klawiszowych. Jednak nie potrafiłem sobie poradzić z odseparowaniem konfiguracji edytora, dostosowującej go do pracy z LilyPond od ogólnej konfiguracji (nie udało mi się uruchomić edytora z odrębnym plikiem konfiguracyjnym).
Ponieważ nie bardzo potrafiłem posługiwać się edytorem Vim, znalazłem program Micro - bardziej przyjazny procesor tekstu. Bez problemu napisałem własną konfigurację do Micro - przypisałem klawisz F5 do komendy uruchamiającej kompilację aktualnie otwartego pliku w LilyPond, klawisz F6 uruchamiał terminalową przeglądarkę .pdf i wczytywał plik wygenerowany w procesie kompilacji. Klawisz F7 uruchamiał (i zatrzymywał) odsłuch pliku midi, F8 zaś wydawał polecenie wygenerowania pliku muzycznego w formacie Wave. Ostatecznie jednak opanowałem obsługę Vim'a i analogiczną konfigurację napisałem też dla tego edytora.
Wspomniana, terminalowa, przeglądarka pdf to program Green. Ciekawym doświadczeniem było skonfigurowanie odtwarzania midi i renderowania dźwięku do pliku muzycznego. Oba zadania przejął program Timidity ++ - syntezator, któremu podpiąłem soundfont (czcionkę dźwiękową) złożony z zestawu darmowych sampli instrumentów symfonicznych VSCO2: Community Edition.
Mając te wszystkie elementy złożone w całość mogłem przystąpić do pisania muzyki, co okazało się raczej trudnym zadaniem. Prosty utwór, złożony z osiemdziesięciu taktów, trzech akordów o podstawowej konstrukcji harmonicznej ma dwieście-dwadzieścia linii kodu (!). Mimo, że programowanie (czynność chyba najbardziej podobna do pracy w LilyPond) jest jedną z moich pasji, pisanie tej niewielkiej kompozycji było dla mnie wyzwaniem.
Utwór, który powstał, z zamysłu nawiązujący do założeń muzycznego Minimalizmu, opublikowałem, razem z plikami źródłowymi, na licencji Creative Commons. Można go więc bezpłatnie pobrać, modyfikować i w sposób dowolny wykorzystać we własnych projektach, również tych komercyjnych. W najbliższej przyszłości ma on być częścią kolekcji bezpłatnych utworów ilustracyjnych, nad którą pracuję, eksplorując niestandardowe narzędzia i techniki kompozytorskie.
Jeśli kogoś interesuje dokładny opis konfiguracji oprogramowania lub sam utwór - wszystko opisałem i podlinkowałem w artykule na mojej stronie internetowej. Tam też, w pierwszej kolejności będę opisywał wyniki kolejnych eksperymentów.
====
[1]https://worldwideweb.cern.ch/
[…] ← Previous […]
OdpowiedzUsuń