Skład algorytmiczny - Algorithmic composition

Kompozycja algorytmiczna to technika wykorzystywania algorytmów do tworzenia muzyki .

Algorytmy (lub przynajmniej formalne zestawy reguł) były używane do komponowania muzyki od wieków; Na przykład procedury stosowane do fabuły głosowej w kontrapunkcie zachodnim często sprowadzają się do algorytmicznej determinacji. Terminu tego można użyć do opisania technik tworzenia muzyki, które działają bez ciągłej interwencji człowieka, na przykład poprzez wprowadzenie procedur losowych . Jednak dzięki kodowaniu na żywo i innym interaktywnym interfejsom możliwe jest w pełni zorientowane na człowieka podejście do kompozycji algorytmicznej.

Niektóre algorytmy lub dane, które nie mają bezpośredniego znaczenia muzycznego, są wykorzystywane przez kompozytorów jako twórcza inspiracja dla ich muzyki. Jako materiały źródłowe wykorzystano algorytmy takie jak fraktale , systemy L , modele statystyczne , a nawet dowolne dane (np. dane spisowe , współrzędne GIS lub pomiary pola magnetycznego ).

Modele kompozycji algorytmicznej

Algorytmy kompozycyjne są zwykle klasyfikowane według konkretnych technik programowania, których używają. Wyniki procesu można następnie podzielić na 1) muzykę skomponowaną za pomocą komputera i 2) muzykę skomponowaną za pomocą komputera. Muzykę można uznać za komponowaną przez komputer, gdy algorytm jest w stanie samodzielnie dokonywać wyborów podczas procesu tworzenia.

Innym sposobem sortowania algorytmów kompozycyjnych jest badanie wyników ich procesów kompozycyjnych. Algorytmy może albo 1) dostarczenie informacji (notacyjnych nuty lub MIDI ) dla innych instrumentów lub 2) zapewnienie niezależnego sposobu syntezy dźwięku (gra składu przez siebie). Istnieją również algorytmy tworzące zarówno dane notacyjne, jak i syntezę dźwięku.

Jednym ze sposobów kategoryzacji algorytmów kompozycyjnych jest ich struktura i sposób przetwarzania danych, jak widać w tym modelu sześciu częściowo nakładających się typów:

  • modele translacyjne
  • modele matematyczne
  • systemy oparte na wiedzy
  • gramatyki
  • podejścia do optymalizacji
  • metody ewolucyjne
  • systemy uczące się
  • systemy hybrydowe

Modele translacyjne

To podejście do syntezy muzyki, które polega na „przetłumaczeniu” informacji z istniejącego niemuzycznego medium na nowy dźwięk. Tłumaczenie może być oparte na regułach lub stochastyczne . Na przykład, podczas tłumaczenia obrazu na dźwięk, obraz jpeg linii poziomej może być interpretowany w dźwięku jako stała wysokość, podczas gdy linia pochylona w górę może być skalą rosnącą. Często oprogramowanie stara się wydobyć z medium koncepcje lub metafory (takie jak wzrost lub sentyment) i zastosować wydobyte informacje do wygenerowania utworów przy użyciu sposobów, w jakie te koncepcje zazwyczaj przedstawia teoria muzyki. Innym przykładem jest tłumaczenie tekstu na muzykę, które może zbliżyć się do kompozycji poprzez wyodrębnienie sentymentu (pozytywnego lub negatywnego) z tekstu za pomocą metod uczenia maszynowego , takich jak analiza sentymentu, i przedstawia je w kategoriach jakości akordów, takich jak molowy (smutny) lub durowy ( happy) akordy w generowanej muzycznej produkcji.

Modele matematyczne

Modele matematyczne oparte są na równaniach matematycznych i zdarzeniach losowych. Najpopularniejszym sposobem tworzenia kompozycji za pomocą matematyki są procesy stochastyczne . W modelach stochastycznych utwór muzyczny powstaje w wyniku metod niedeterministycznych . Proces kompozytorski jest tylko częściowo kontrolowany przez kompozytora poprzez ważenie możliwości zdarzeń losowych. Wybitnymi przykładami algorytmów stochastycznych są łańcuchy Markowa i różne zastosowania rozkładów Gaussa . Algorytmy stochastyczne są często używane razem z innymi algorytmami w różnych procesach decyzyjnych.

Muzyka została również skomponowana poprzez zjawiska naturalne. Te chaotyczne modele tworzą kompozycje z harmonicznych i nieharmonijnych zjawisk natury. Na przykład od lat 70. fraktale były badane również jako modele kompozycji algorytmicznej.

Jako przykład deterministycznych kompozycji za pomocą modeli matematycznych, On-Line Encyclopedia of Integer Sequences zapewnia opcję odtwarzania sekwencji liczb całkowitych jako 12-tonowej muzyki o równym temperamencie . (Początkowo jest ustawiony, aby przekształcić każdą liczbę całkowitą w nutę na 88-klawiszowej klawiaturze muzycznej przez obliczenie liczby całkowitej modulo 88 w stałym rytmie. Zatem 123456, liczby naturalne, równa się połowie skali chromatycznej.) Jako inny przykład, seria wieloprzedziałowa została wykorzystana do komputerowego wspomagania kompozycji

Systemy oparte na wiedzy

Jednym ze sposobów tworzenia kompozycji jest wyizolowanie kodu estetycznego określonego gatunku muzycznego i wykorzystanie tego kodu do tworzenia nowych, podobnych kompozycji. Systemy oparte na wiedzy opierają się na gotowym zestawie argumentów, które można wykorzystać do skomponowania nowych dzieł tego samego stylu lub gatunku. Zwykle odbywa się to za pomocą zestawu testów lub reguł wymagających spełnienia, aby kompozycja była kompletna.

Gramatyka

Muzyka może być również rozpatrywana jako język z charakterystycznym zestawem gramatycznym . Kompozycje powstają poprzez skonstruowanie gramatyki muzycznej, z której następnie powstają zrozumiałe utwory muzyczne. Gramatyki często zawierają zasady komponowania na poziomie makro, na przykład harmonie i rytm , a nie pojedyncze nuty.

Metody optymalizacji

Podczas generowania dobrze zdefiniowanych stylów muzyka może być postrzegana jako problem optymalizacji kombinatorycznej, w którym celem jest znalezienie właściwej kombinacji nut, tak aby zminimalizować funkcję celu. Ta funkcja celu zazwyczaj zawiera reguły określonego stylu, ale można się jej nauczyć za pomocą metod uczenia maszynowego, takich jak modele Markowa. Naukowcy stworzyli muzykę przy użyciu niezliczonej liczby różnych metod optymalizacji, w tym programowania liczb całkowitych, wyszukiwania zmiennych sąsiedztwa i metod ewolucyjnych, jak wspomniano w następnym podrozdziale.

Metody ewolucyjne

Ewolucyjne metody komponowania muzyki oparte są na algorytmach genetycznych . Kompozycja budowana jest w procesie ewolucyjnym . Poprzez mutacje i dobór naturalny ewoluują różne rozwiązania w kierunku odpowiedniego utworu muzycznego. Iteracyjne działanie algorytmu wycina złe rozwiązania i tworzy nowe z tych, które przetrwały proces. Nad rezultatami procesu czuwa krytyk, istotna część algorytmu kontrolującego jakość tworzonych kompozycji.

Podejście Evo-Devo

Metody ewolucyjne w połączeniu z procesami rozwojowymi stanowią podejście evo-devo do generowania i optymalizacji złożonych struktur. Metody te zostały również zastosowane do kompozycji muzycznej, gdzie struktura muzyczna jest uzyskiwana w procesie iteracyjnym, który przekształca bardzo prostą kompozycję (złożoną z kilku nut) w złożony, pełnoprawny utwór (czy to partyturę, czy plik MIDI ).

Systemy, które się uczą

Systemy uczenia się to programy, które nie mają żadnej wiedzy na temat gatunku muzyki, z którym pracują. Zamiast tego samodzielnie zbierają materiał do nauki z przykładowego materiału dostarczonego przez użytkownika lub programistę. Materiał jest następnie przetwarzany na utwór muzyczny podobny do materiału przykładowego. Ta metoda kompozycji algorytmicznej jest silnie powiązana z algorytmicznym modelowaniem stylu, improwizacją maszynową oraz takimi badaniami, jak kognitywistyka i badanie sieci neuronowych . Assayag i Dubnov zaproponowali model Markowa o zmiennej długości do nauki o różnej długości kontynuacji motywów i fraz. Marchini i Purwins przedstawili system, który za pomocą nienadzorowanego grupowania i łańcuchów Markowa o zmiennej długości uczy się struktury nagrania dźwiękowego rytmicznego fragmentu perkusyjnego i syntetyzuje z niego wariacje muzyczne.

Systemy hybrydowe

Programy oparte na jednym modelu algorytmicznym rzadko osiągają zadowalające pod względem estetycznym rezultaty. Z tego powodu algorytmy różnego typu są często używane razem, aby połączyć mocne strony i zmniejszyć słabości tych algorytmów. Tworzenie hybrydowych systemów do komponowania muzyki otworzyło pole kompozycji algorytmicznej, a także stworzyło wiele zupełnie nowych sposobów algorytmicznego konstruowania kompozycji. Jedynym poważnym problemem związanym z systemami hybrydowymi jest ich rosnąca złożoność oraz zapotrzebowanie na zasoby do łączenia i testowania tych algorytmów.

Innym podejściem, które można nazwać kompozycją wspomaganą komputerowo , jest algorytmiczne tworzenie pewnych struktur dla finalnych „ręcznie wykonanych” kompozycji. Już w latach 60. Gottfried Michael Koenig opracował programy komputerowe Project 1 i Project 2 do muzyki aleatorycznej , których dorobek sensownie ustrukturyzowano „ręcznie” za pomocą instrukcji wykonawczych. W 2000 roku Andranik Tangian opracował algorytm komputerowy do określania struktur zdarzeń czasowych dla kanonów rytmicznych i rytmicznych fug, które następnie zostały opracowane w kompozycjach harmonicznych Eine kleine Mathmusik I i Eine kleine Mathmusik II ; partytury i nagrania zob.

Zobacz też

Bibliografia

Źródła

Artykuły

Dalsza lektura

Linki zewnętrzne