You are hereGenerator muzykiTen program służy do generowania fraz muzycznych. Program jest zdolny do generowania melodii oraz progresji akordów. Program zakłada aktywne uczestnictwo użytkownika w generowaniu kolejnych pokoleń fraz. Użytkownik ocenia, które frazy mu się podobają, co decyduje o cechach kolejnych pokoleń fraz. Użytkownik może ewoluować frazy, aż nie uzyska rezultatów, które go satysfakcjonują. Aby skorzystać z aplikacji, wybierz język klikając jeden z poniższych przycisków: Interfejs użytkownikaPanel użytkownika składa się z dwóch sekcji. Pierwsza sekcja zawiera parametry ewolucji oraz parametry generowanych fraz muzycznych. Druga sekcja składa się z wygenerowanych fraz, które można oceniać, odtwarzać oraz pobrać w formacie midi. ParametryRozmiar populacji – reguluje ilość osobników w populacji Szansa mutacji – szansa na wystąpienie losowej mutacji osobnika w kolejnej generacji Tempo – reguluje tempo fraz (w efekcie prędkość odtwarzania) Złożoność akordów – ten parametr steruje poziomem skomplikowania harmonii wewnątrz akordu Min. długość nuty – minimalna długość nut występujących w ramach frazy Max. długość nuty – maksymalna długość nut występujących w ramach frazy Liczba nut w akordzie – ilość nut, z których budowane są akordy – ustawienie tego parametru na wartość 1 spowoduje, że generator będzie działał jako generator melodii Długość frazy – reguluje ogólną długość tworzonych progresji Dodatkowo użytkownik ma dostęp do dwóch guzików: ZACZNIJ OD NOWA oraz KOLEJNE POKOLENIE: ZACZNIJ OD NOWA – resetuje frazy i wraca do generacji zerowej KOLEJNE POKOLENIE – powoduje przejście do kolejnej generacji FrazyFrazy przedstawione są za pomocą zapisu midi. Kliknięcie na frazę spowoduje jej odtworzenie. W górnym lewym rogu każdego graficznego przedstawienia frazy widnieje ikonka, której kliknięcie powoduje pobranie frazy w formacie midi. Jak używać programuNajpierw należy dobrać parametry ewolucji oraz parametry generowanie fraz. Wartości domyślne zapewnią całkiem ciekawe akordy, ale możesz na początek zmniejszyć liczbę nut w akordzie. Następnie należy ocenić frazy słuchając ich, a następnie ustawiając im ocenę za pomocą guzików ze strzałkami umieszczonych po prawej stronie każdej frazy. Po ocenieniu należy kliknąć KOLEJNE POKOLENIE. Proces ten należy powtarzać aż uzyskamy frazę, która nas zainteresuje, zainspiruje albo będzie satysfakcjonująca. Część technicznaPierwsze pokoleniePierwsze pokolenie fraz jest generowana w sposób zupełnie losowy. Najpierw generowany jest rytm frazy. Generowanie odbywa się poprzez losowe wybieranie długości nut z predefiniowanej tablicy. Wybór ten jest ograniczony przez parametry Min. długość nuty oraz Max. długość nuty. W wyniku tego procesu powstaje tablica długości, których suma jest równa parametrowi Długość frazy. Następnie dobierana jest skala. Obecnie wspierane są jedynie 12 skal durowych/molowych. Następnie dla każdej długości z tablicy długości wybierana jest bazowa nuta i z niej budowany jest akord. Budowa akordu polega na dobieraniu harmonii według predefiniowanej tabeli wszystkich harmonii durowych oraz molowych. Liczba nut w akordzie jest zależna od parametru Number of Notes, a skomplikowanie harmonii zależna jest od parametru Złożoność akordów. Kolejne generacjeOcenaTworzenie kolejnej generacji rozpoczyna się od oceny fraz przez użytkownika. Ocena to wartość z przedziału od 0 do 10. Każda fraza zaczyna z oceną 1. Ustawienie oceny 0 spowoduje, że fraza nie będzie brała udziału w tworzeniu kolejnego pokolenia. SelekcjaPopulacja nowej generacji jest generowana poprzez krzyżowanie wybranych osobników oraz mutacje. Selekcja osobników do krzyżowania wybierana jest metodą ruletkową. KrzyżowanieKrzyżowanie zaczyna się od uzgodnienia skali. Skala obu rodziców jest sprowadzana do skali pomiędzy oryginalnymi skalami rodziców. Następnie następuje tworzenie rytmu potomka. Rytm potomka jest tworzony z początków oraz końców nut/akordów rodziców. Dla każdej długości z nowo powstałego rytmu określana jest pula bazowych nut, które występują w danym przedziale czasowym u rodziców. Z tej puli wybierana jest nuta bazowa dla danej długości z rytmu potomka. Dla tej noty bazowej budowana jest reszta akordów na podobnych zasadach co podczas budowy akordów w pierwszej generacji. Główna różnica polega na tym, że zamiast wybierać nuty z tabeli harmonii, nuty akordu są dobierane ze zbioru nut akordu, które występują w danym przedziale czasowym u rodzica i również bazuje na parametrze Złożoność akordów. MutacjePrawdopodobieństwo mutacji zależy od parametru Szansa mutacji. W programie istnieją 3 rodzaje mutacji: Mutacja skali – transpozycja całej progresji w górę lub w dół o jeden półton. Mutacja rytmu – skracanie akordu i tworzenie nowego w powstałe puste miejsce lub łącznie akordów z dwóch istniejących. Mutacja melodii – zastępowanie istniejącego akordu nowo wygenerowanym.
Alternatywna, starsza implementacja tego pomysłu w javie jest tutaj. |