TrenAlSur (only intro part, wip)
idk what to sayyyyyyyyyyyyy...but headphones recommended (it's stereo)
#cover
Log in to post a comment.
// converted to a string the synth sample from the beginning
let sample_syn="PTSQPLGHJHECEIIKPOOQVXVRRNFEHHEB@DHGLOMOQVXURSKDDGFC?>CFGMNMNQWYUSTJBEGFC?=CCGNMLMPUXTSSIDGHGEA@EDINMLMOTVTSRKEIIHHCBFEJOMMNOSVTSSKGJJJIDDFEKOOMNPSVUTSLGLKKJEEGFLPOMOPSWVTTLIKKKJEEFFLOPNOPRWWTTMHLKKJFEFFKOONNPQWWUTNJKKKJGFDFKNPNNPQUXUSOIKKKJHEDFIMONMNPTXUSOJILJIHDBEIMOMMNOSXUSPIIKJIHDBDHLONMMOSWVRPJHKJIIDADGKONMLORWURQIIKJIIDACGKNNMLNRVWRRJHKJIJDABGKNNMKNQVVSRJHKKIIDBAFKNNLLMQUWSRKHJKJIEAAELMNMLMQUVTRLGJLJIFB@DKNNLLLPUVTRMHJLKIGCACLMNLLLPUVURMHILLIHDACKNMLLKOUVURNIILLJIDAAKMMLLKNTVURNIILMIIEABINMLLKNTWURNJHLMJIFBAIMNLLKMSWURNIILMJJGBBGMMMLKMSWUQNJILMKJGCAGLNLKKLRWURNJJLMLKHCBFLMMKKLSWVRNKJLMMJIDBFKMLJKLRWUSNKKLMNLIDBEJMMIJLRUVSOKKLMOLJEBEIMLJJLQVUTOKKLLONIFCEILMIJLQTUTOKLLMONJFCEHLLJJLPTTTOJLLLOOIFDEHLLIJLPSTTNKLLLOPKFDEGLKIJLOSTTOKLLLOQKFEEGKLIJLORTTOKLKMORLGEEFKKIJKNQTSPKMLMORNGFEEJKHIKNPTSOLLKMOROHFEEIKIIKMOTSOMLKMPRPIGEEIKHHJMOTRONLKNPQPJGEEHJHHJMOSSNOLKNPQQKGEEHKHHJLOSRNOLJNPPQLFEEHKIHJLOSRNOLJNPPQMGEEGKIHJLOSRNOLJNPOQNGEEGJIGJLPRQNOLJOPOQOHEEGIIGIMPRPNOMKNPOQPHEEGIIGILPQPNPMJOPPQPIDFGHIGHMQQOOOMKNPPQQJEEHHHFGLQPNNONKOPPPQLEEIHHGFLQQNNONKNPPQPMFEHHGFFLQQNNONKNQOPPMFEIGGFELRPNLONKNPOPPMFFHHGFDKQQNMNOLNQOPQMHEHHGEDKRPOLNNLNQOPQMHGHHHEDKRQOLMNMNQOOQMIHHHHEDKQQOMLMMNQNORMJIHHHFDJQPPMLLMNQOOQNIKHHIFDJPQPMLLLNQOOQNILHIIFEIOQPLLLLNQOOQMJLHIIFEINQPLLLKNPOOQLJMIHIFFJNQOLLLKOOOPOKLLHIHFGIOQOLLLLOONPOJLMHHHGHJOQNLLLLONNPNJLMIHHHIJNPNKLLMONNPNKMMIHHIHJOPMKLLNOMNQMKMMIGHJHJOOMKLKOOLNPMLLMIGHJIKOOLLLKOOLMOMLLMIGIKHLPNLLLKPOJLOMLLMIGILILPNKLKKPNJLMNMLLIGJLJNPMKLKLONJKMNMKLIHJKKNPLJMKLPMJKLNNKKIIKKLOPLKMKLOLJKLMNLJIIKKMPPLJNLMOKJKLMOKIIJKKNPPKJMMMNKJKKMOKIJJJKOQOLJNMNMJJKKMOKHJKJKOQOKJMNNLIJLKMOJHKKILORNKINNNLIJLKMOJHKJIKPQOKJNOOLHJLKNOJIKKILPRNKINONKHJLKMNJILJILPROKJOONKIJKLNMJJKKJLOQOKINOMKIJJLNLJKKJJMOQOKJOOMJJJJKMKJLKJKLOQOJKOOLJKKIKMKKLKJKMNPOKKONLJLKIJLKKLKJKMNPOKMONKJMLIILKKKKKLLNOOLLOMKKMLIHKKKKKLLLMOPLMNLKKMLIGKJLJKLMKMOPMMNLKLMLIGJKLJJMNKLOPMMNLLLMMIFJKLJJMNKKNPNMMKLMMMHFIKLJJNNLKNQMMLKLMMMHFJKLJJNOLKNQOLKKMMNNHGJJLJJOOKKMPOKJLMMNNHGJJMJJONKKNPOJJLNMNNGHJJLKJONJLNPOJIMNMOMHHJILKJOMJLNQPHILONOMHHJHLLKNMJMOROHIMNOPMHIJHLLLNLJMOQOGIMNOPLIIKHKLMMKJLORNGIMNPPMIIKGKLMMJIMORNHIMNPOLJJKHJMNMIJLORNHILOPOMJKKGJMOLIILPRMIILOQNMKKKHINNLIJKPQMIJKOPNMKKKGJNNLJJKPQLJJKOPNMKLJGJNMKKJKPPMJJKNONNKLJHKNLKKJKOOMKJKNNNNKLJHLNKJLKKONMLJLNMNNKLJHLNJJMKKNNMMJLNLNNKLJIMMIJMLJMNMMKLNMMNLKKJMMHJNLKLMMNJLNLMNKLKKNLGKMMJLMNNKLNLNNKKKKNLGJNMKJMNNJLOLNNJLLLNLFJNMKJLONJLNMMMJLLLOLGIMMKILPNJLOLMNILMLNLFJMLLJMQOHMOMMMIMLLNLFIMLLJMQOIKOMMMIMLLNMGILLKJNQOHLNNMKIOLKNMHIKLKKNRNILNNMJJNLKMMHIKKKLOQNILMNMJJOLJMMIIJJKMPQMJLMNMIKOLJLMJIIJKMPPMKKMNMILOMILMKIIIKNQONLJMNLJLNLJKNKIIHKOQPNLJMNLJMMLJKMKJHHKNQPOMJLMLKMMLJKMKJHHKOOQPMJKMMKNMLKKLKJHHLONQPNJKMLKNLKKKLKJHHMNNRRNKJMMKNLJKLKJIHHMMLRRNJJLLKNLKKLJJIIJNLMRSNJIMLKNLJLKJIIHJNLLSSOJJMKLNLJKLJIHHKOJLQTPKJLKKNLJLLJIHHLOKLQTQKJLJLNLKLLJHGHLOJLQTQLKKJKMLKLKJHGHMNLKPTRMKKJKMLLKKJHGILNLLOSROKKKKLLMKKIHGHLMMLORRPLJKKKMMLJIGGILMLLOQRRLJKKKLNLJHGGILMMLOPQSNILKKLNLJHGHIKMMMOOQTMJKJKLNLJHGIIJMMMONQSOKKJKLNMJHGIIJMLNPNPTOLKJKLNMKGGIIJLKNPNPRPLJJKLMLKHFJJJLKNPNORPMJJKLMLKHGJIJKJNPOOQPNKIKMLLLHFKJJKJMQPOPPOKJKMKKLHGJJJJKMPQOOQNKJKMKJLIGKJIIKLPRONPOLJKMKJLIHKKIIKLPRONPNMKKMLJLIHJKIIKKOSPNOMOLKMLJLIHJKIHJKOSQMNLOLLLLJKIIJKIIJKNRQNNKONLLLKJIIJKJHJJNRRNMKONLKLKJIJJKJIJJMRROMKNOLKMLJIJJKJIJIMPROLKNOMKMLJIJJKJJJIMPRPLKMONLMLJIIIJKIJILORPLLMNNLMLJIIIJLJJJLOROLLMMNMMMJIHIKMIJJKNROMMMMONNMJIHIKNIIKKMRNMNMLNNNNJIHHKOHILKMQMMNLLNONNJHHHKOIGLKMQMMNMLNOONKHHIKOIGLJMPLMOMLMNOOKGHILNJGLKMOLLOMLMNPOKFHILNJHKLMNLLNMMMNPPLFHJLMKHKLMMLLNMMMMPQKFHJLMKIJMMLKLNNMMMPQLFHKLLKIJMNLKKMNNMMPRLFGLLLKJINNLJKMONMLPRMFGLMKKJIMNKJKLNNNMPQMGGLMKKJIMNLIJKONNMPQMGGLMLJJJMNLJJKNNONOPMHGKMLJJJMNLIJKNNONOONHHKNLJIKLNLJIJMOONOONJIJMMJIKLNMIIJMNPOONNJJJMMJHLLMMJHIMNPPONMKJJLNIHLLMMJHILNOQONNKKJLMJHKLMNKHHLNPPNNMLLJKNJHKLMNKHHLMOQNNMLLJJMKHJKNNLGHKMOQONMMMKJMJIJKNOKHHKMOQNNMMMLKLKIJJNOLHHJMOPONNMMLKKJJIJNOKIHJLNPOONMMLLKJJIINOLIHILNOOOOMMMLJJJIINPKIHILMOPOOMMMMJHKIINPLIIIKMOPOONMMNIHJJIMPLIIIKLNPPPNMMNJGJJIMPMIIIJLNPPPOMMNJGIJILPMJIIJKNOPPOMMOKFIJJKPMIJJIKMOPPPNNOKFHJKKPMJIJIKMOPPPNMOKEGJLKONIJJHKMNPPQONNKFFIKKOMJIJIJMNPPQONOKEFILKNNJJJIJMNOPRPONKFEHLLNNKJJIJMNOOQPPNKFFGLLNNKJIJJLMNORQPNKFEGKMNMKJIJJLNNOQQQOKEEGKMNMKJIJKLMNNRQQOKFEGKNNMKJIJLLMMNQRRPKEFGKMOMKJHJLLNMNQRRPLEEGJMOMKJHIMLMMNQRRQLDEFJMOMKJHJLLNMMQQRRLEEGIMOMKJHIMMMMMPRRSMDFGIMOMKJHILMMMMPQRSMDEGHLOMKJHIMMNMMPRQTODEHGLOLKJHIMNMMMORQTODEHGLOMKJHIMNMMMNRQTPDEIFKOLKJGJMNMMMORRTPFDIFKNLLJHINNMMMNRQTPEFHFKNLLJGJMNMNMNQQTOGEHFJMLMIGJNNNMNNRQSPGFHFJLLMIFJMNNMNNQRTOIFGGIKLNIGJNNNMNNQRSOIGFGIKLMIFKMNNMNOPSSOKGFGIILNHGJMNNMNOPRSOLHDHIHLNIFKMNNMMOPRROLHEHIHLMIGJMNOMMOPRRPMIEHHGMMJGJMNONMOPRSPMHEGHFKMJHJMMONMOPQSPNIEGHFKLJHJLMPNMNPQSQNHFGHFJMKIJLMPOMNPQRRMHFGGGJLKIILMPOMMPQSRMHGGFGIMKJIKNQOMMOQRSMIGGFGILLKIKNQPMMOQSSMHHFFHIKLKHKNQPMLNQSSLIHFFHIKLLHJOQOMLNRSRMHIFEHIJMLHJOQOMKNRSRMIIEFHHJMLHJPQOMKNRSRMHIFFHIJMKHKPQOMKNRRRMIIFFHHJMKHKPPOMKNRRRMIJFFHHJLKHMPPOLKOQQQMJIFGHHJLKINQPOLKOQQPMJIGGHIJKJIOQONKLQPPPLJIGGHIJKJJOQONKMPPPOMJIHHHIJJIJQQOMKMRPOOMJHHHHIJJHLQQOMJNQPNNMJIHHIJJIHLQQOLJMRPNNLJIHHIIJIGMQQOLJNRPMNLJIHHJJKHHMQQOKKNRPMMKJJHIJIKIHMQQNLKNRQLMKJJHIJIKHHNPPOLKNQPMMKKJIIJIKHINOPOLKNPPMLJKJIIJIKHINOPOLLNPPMKJKJJIIJKIIMOOOMLNPPNKJKJJIIJKIINNOOMMMPPNJJJJKIIJKJJMNNNNMMOQMKKJKKIIJKJJMMNNNMMOPMKJIKKJHJLKJMMNNOMMOQLKJIKKIIJKKJMMNNOMMPQLKJILKIIJKKKLMNNOLMOQLKJIKKIIJLKKLMNOOLMPPLKJILKIJJKKKLMNOOKMPPMKIJLKIKJKKKLNNPNKMOPMKIILJILJKKJLNNPNKMOPNKIJLIJLKJJJLNNPMKMOPNKJILIJLJJJJLNOPMLMOPNKJJKHKLJJJJMNOPMLLNPOKJIKIKMJJIIMNOOMLLNPOJKJKIMLJJIIMNOOMKLMPOJJJKIMLJIIILOOOMKLMPOJKKJJMLIIIIMNOONKLMPOJJKKJMLIIJILOOONKLMPOKJLKKMLHHIHLONONKLNONKJLLKMLHHJILONOOKLNONKJLLKMLGIIHMNMPNKMMONKJMMKMLHIIIMNMPNLMNNNKJMMLLLGIHIMMMPNLNNNNKJMMLMKHIGINLMPMLNMMNKKMMMMJIIGJNLLPMLNMMNKKNMMMJIIFINLLOMMNMMNLLMMNMIJIFINLMNMMNMLMLLMMMMJKHFIMLMNNNNMLMLMMMNMJKHGILLMMMMNMMMLLMMMLKKHGHLLMMMMNMMMMMMMNLKKIHHKLNMMMMLMMMLMLMKLLIHIJLNMLMMMMNMMNLMKLLJHHILNNKMMMNNMMNLMKLMJIIILNNKLLMNNLMNLMKLMKHIILNOKKLNOMLNNLLKLNKIHIKNOLJKNOMLONLKKMMKIHIKMOLIJNOMMPNKKKNMLJHIKMOLIJOOLMPNKJKOMLJHHLLNMIIONLNPNJJLOLLKHILLNLIIONLOPNJILOMLLHHLKNMIINMMOPNIIMOLLLIIKKNMIIMMMOPMIJNOMLLJIKKNNIILMNOPMHJNNMLLJIKKNMJIKMOPPLHJNNMLKKJJKMNJHJMOPPLHKMNNMKKJJKMNJHJLOPOLIKMNNMKKKJJMNKHILOPNLILMNOMJKKJKMNKGILOPNLJKLMONJKLJKMNKGJLOQMLKLLNONJKKJKMMKGJLOPMMLLKNOOKKKJLMMJGJKNPLLMKKNONKKKJLNLJHIKNOLMNLIMOOKKKJMNKJIJKNOLMNKJMPOLKKJMNKJIJJMNLMOLIMPNLLKJMOJJJJJMNLMOLJLPNLLKJNNJIJJJLMLMOMJLPNLMKKNNJIJJJLMLMNMJLPOLMJKNNJIJJJKMKNNNKLONLMKLNMKIIJJKLLMMNKLOOLMKLNMKIIJKKLLMMNLMONMLKMMMLIHIKKKMMMNMMONLLLMMMLIHIKKKMLLNMMONLLLMMLLJHIJKKMLLNMMONLLMMNLLJGHJKLMKLNNNPMLLLMNLMJGHJKMLJKMNNPMKMMMNLLJFHJKNMJKNNOQMLMLMNLMKEHJJNMJKMNOQNKMLLNMMKFGJKNMJJMNOQNLMLLNMMKEGIKNMJJMNOQOLMLLMMNKEEILMMKJMNOQNMLKLMMNKEEJLKMLKMNOQONLKLMNNJEEJMJNLKLMOQOOLJKNNNKEEJMJMMLLMPQOOLJKNNMKEEKLIMNLLMPPOOMJKOMMKEEJLILNMLLPPOPMIKOMLKFEKLILNNLLPPOPMIKOMKJFEKKILNOMKPQOPMJKOMKJGFJKILMPMKPQOPLJLOLJIGGIKJLMPNKPQNPLJLOLJHHGIKJLMOOLOQOOLKMOLIHIHHKJLMOOLORNNLKNNLIGIHHKJLMOOMOROMLLNNLHFIHHKJLLNPNOQNMLLNOLHFIHIKKLLNOOOQOLLLNOLHFIHIKKLLMPOPQNLLLNOLHFHHILKLLMOOPQNLLLMOLHFHGILLLLMPOQQMLMKMOLHFGGIMLLLMOOQQNLMKLOLHFGFIMMKLNPNQRMMMKLOLIFFFHNMKLNONQQNMMKKOMIGFEIMNJLOPNPRNMNJJOMIGFEHNNKKOPNPQNMNJJOMHHFDHNPJLOPNPQNMNJINMHHFDGNOKKPPNOQOMNJHNMIHGDGNPLLPPNOQNMNJHMMIHGDGNPLKQPNOROMNJHMMIHFDFMOMKQPMOQOMMKILNIHFDGMOMLRPMOQOLMKILMIIFDGLOMLQQMNQOMLJILMIIFDGLNMMRQNNQOMLJILMIIFDHKNMMRRONQOMLJILLIIFCHKMMMRQPNPOMLJIMLIJFDIKMMMRRPNPOMLIJMLIJGCHLMMMRRPOPOMLIJMLIJGDIKLNMRRPOOOMLHJMLIJGDIKLMMRSPPONMKHJMKIJGEIKLNMQTQPNNLKHJMKIJGEIKLMMPSQPONLKHJMJIKGFIJLMMPTQPOMLKHJMJIKGFIJLMMPSRPOMLKHJLJIKGFJJKMNPSRPPMLKHJLIIKHGJJKMNOSRQPMLKIJLIIJHGKIJMNOSRPPMLKIJLIJIHHKJJMNORRPQMLLIIKIJIHHLJJMNORQPQMLLIIKIKIHILJJLNOQQPQNLLJHJJKIHILKJMNNQPPRNLLJHJJKIGJLKJLNNPPPROLLKHIJKIGJLKJMNNPOOROLLKHIKKIGJLKJMNNONORPMLKHIKKIGJLKJMNNNNNSPMLKHIJKJHJLKJMONNMNRQNLKIIJKJHJLKJLONMLMSPNKKIJJKJHJLKKLONMKMRQOKKJJJKJIJLKKLONLKMRQOKKJKJKJIJKKKLOOLJLQQOKKJKJKJIKKKJMOOKJLRQOLKKKKKKJKKJKMONJJLQQNLKLKKLJJKJJJNONJILQPNLKLKKMJJKJIJNOMIIMQPNLKMKLNJJKIIJNPMIINPONLLLKLOJIKIIKNOLHHOOOMLMLJMPKILIIKOOLHIOONMKNLJNQLIKHILOOKGIPNMLKOKJNQLIKHHMNNJGJONNLKPLJNRMJJHIMNNJGKONMKKQKJORMJJGINMMJHKNNMKLPKJPRNKIGIMMLIIKMNLJMPLKORNKHGJNMLIJKMNLJMNMKPSOLHGJMLJIKJLNKKMMMLOSPLHHJLLJILJLNKKMMNLORPLHHJKLJJLILNKLLLNMOSPMIIJJLIKKILMKMKLOMORQMJJJIKJLKILLLMKLONORPNJJJHJKLJIKKMMJLONOQPNKJIHILMIIKKNMJLONOQPOKJHHIMMHIJKOLJLONOQQPLJHGINLHIILPLJLOOOPQPLJHGJNLHIILOLJLNONPQQMIGFKNKHHHMOLJLNONPQQMIGGLNKHHIMNLKLNONPRQMIFGMMJGHJMMLKKMONPRQMIFHNMJGHJMMMKKMONPSQMIFHNMJFHKMMNLJMOMPTQMHEINMJFHLLLNLJMOMPUQMHEJNMJEHMLLNLIMOLQUPLHEKNLIEHMLKOLIMNMRUPLHGLNLIEIMLKNMILNLRUOLGGLMKHFIMLKOMIMNMSTOLHHMMJHGIMLLNMIMMMSTOKHIMMJHGILLLNMIMMMSSOKHIMLIHHJLKLNMJMMMRSNLIJMLIHHJLKLNMKMMMRRNKJJMKHHIKMKLNLKMMMRRMLKKMKIHIKLKLMLLMMMQQNLKKLJIHILLJLMMLMMMQQMLKLKIJHILLJKMMMMMMPPMLLLKIJHILLJLMMNMMNOPNKLMJIKHILLJLLMNMMNNONKKMJIJHJLKJLLNOMMNNONKKMJJJIJLJJMLNOMMNMONJKMJJJIKLIKMLOOMMNMONKKMKJIJKLHJMMOPMMNMNNJJLKKIJLLGKMMOPNMMMONJJLLKIJLKGJMMOPMMMMNNJILLKIJMLGJMNOPNLMNNMIHLMKIJMKGIMNPPNLMOOLIHLLLJKLKHIMOPPNLLOOLIGKLLKKLKHHLOPPNLLOOLIGLLLKLKJIIKPQPNLLPOKHGKLLLLKJIIKPQPMLMPPKHGKLLMLJJIIKPQOMMMOPKGHJLLMMJIJJKOROLMMPPJGHILLNMJIJJKOROLMMPPJGHHLLNNJIJKLNRNLNMPPIHHHLLNMJIJKLNQNLNNPOJIGHLKNNIHJKMOQMLNMPOJIFHKKNNIHKLMOPMLNMPOJIEHKKNOIIJLMPOLMNMPOKIEIJJOOIIJLMPNLNNMPOLIEHJJNOIJJLNQMKNNMOOMHFIIJONJKKLNQMJNNMOPMHFIIINNJKKLOQMJMNMNQNHGIHIMNKKLLOQMIMNMMQOGGIHIMNLKLLOQMILNMMQOHHHGILMLLMMNQNIKNMLQOIHHGJLMLLMMNQNHJNMMQOIIGGJKLLLNNNQNHJMMMPPJIGGJKLLLONNPNIILMNPPKIGHJKLLMPONPNIIKMNPPLIFHIKKLMPONPNIHJMOOPLIFHIKKKMPOOOOIHIMOPPMIFHIKKKMPPOONIHILPPPMIFGIKKKMPQPONIGHLPPPMIFGIKKKLPQPONIGHKOPPMJGGIKKKLPRPONIGHKOPPLJGGJKLKKPRPOMIGHKOQPLKGFJKLLKPRQOMIHHKOQPLKGFJKKLKPRQPMIGHKOQPLKGFJKKLKORQPMHGHJNQOLLGFJKKLKORQQNHGHJOQOLLGFILLLLNRQQNGFIJNPOLKHFILLLLNQQQOGFIJNPNMKGFIKLLLNQQQPGFJJMPNMKGGIKLMMMQQQPHEJIMPMMKGGJKLMMMQQQQHEJIMPMMKGGJKLMMMQQQPIFIILOMNKGHJKLMNMQQQPIFIILOMNKGHKKLLNMPQQPJFHILNMNJGHKKLLNNPRQPKGGIKMMNJFIKKLLNNPRQOLHFIKLMNJFILLLLNNORROMIFIKLMNJFIKLLLNOOQROMIEIKKMNJGILLLMMOOQRPNIEHKJMNJGIKLLMMOOQRPOJFHKJLMJHIKLMMMOPPRPOIFGKJLMJHIKLMMNNPPRQOIGGJIKMJHHKLMMNNPPRROJGGIJKMKIHKLNNNNOPRROJGGHIJLKIHJLNNNNOPRSOJGGHIJLKJHJLNNNMNPQSOJHGGIIKLKHILOONMNPRTOIHHGIIKLKHHMOONMMPRTOJIGGIIJLLIHMOONMMPRSOJIGFIIJLMHHMOONMMPRSPJJHFIIILMHHMPONMMPRROJJHGHIILMHHMPONLMQRROKJHGHHILLIINPONLMQRROKJHGHHILLHINPOMLMQQQOKJHGHHILLHJOPOMKNQQPNKJHHHHIKKHJPONLKNQPPNKJHHHHJKKHKPONLKOQPONLJIHHHJKJHLQONKKPRPONLJIIHIJJIIMQPMKKPRONNKJIIIIJKHINQPMJKPRONNKJJIIIJJGINQPMJKPRONNKJIIIJJJGJOPPMJLPRNMMKKIIJJJJGKOPOMJLPRNMMJKIIJJJJFKOPOMKLPRNMLKKIIJJJJGLNOOMKLPQNMLKKJJJJJJGLNOOMLLOQOMKKKJJJJKJHLNNONLLOPOMKKKKJIJKJHLNNNNMLOPPLKKKKJIIKKILMMNNMLNPPLKJKLKIIKKILMMNNMLNPOKKJKLKIIKKILMMNNNLNQOKLIKLJHIKKJKLMNNMLNQOKLIKLJIJKLJKLMNOMLNQOKKIKLJIJKLKKLNNOMKOQOKKIKLIJJKLJKLNNOLKOPOLJIKLIJKKKKKMNNPKKOPOLJIKLIKKJKJJMNNOKLOPOLJJLKIKLJKJJMNNOKKOPPLJJLKILKJJJJMNONKLNPPLJJLKIMKJJIJNNONKLMOQLJJKKJMKJIIKNNOMKLMOQLJJKJJNKJIHKNNONKKMOQLJKKJKNKIIHJNNONLKMOQLJKKJLMKIIIJNNNNLKMOQLJKLJLMKHIIJNONOLKMOPMJKLJMMKHIIJNONOLKMOPMJKMKLNJGJIJNNNOLKMNOMJKMLLNJGIHJNMNOLKMNOMJKMLLNJHIHKNMNOLLMMOMJKNLLMIHIGKNLOPLLMMNMJLNLMMIIHGLNKOOKMNMNMJLNLMMIJGGLNKOOLMNMNMJMMLNLIJGGLNKNNLMNLMMKMMMNLJKGGLNKNNMMNLMMLMMMNLJJGGLMKNMMMMLMMLMMMNKKJGHKMLMMMMMLMMLLMMNKKJHHJLMMMMMMLMMMMMMMKLJHHJLMMMMMMMMNLMMMMKLKIIIKMNMLMLMMNLMMMMKMKIIIKMNMKMLMNMLNMLLKMLIIIKMOMKLLNNMLNMLLKMMIHIJMOMJKLNNLMOMLKKMMJHIJLOMJJLOOLMOMLKLNMKIHJLNNJILONLNOLKJLNMKIHJLNNJILPMLNOLKJMNLLJGJLMNJHLPMLOOLJJNOLLJGKLLNKHKOMMOOLIJNNLLKGJLLNKHKNMNOOLIKOOLLLHJLLNLHJMMNOOKHKONLLLIJKLNLIJLMOPOKHLONLLLJJKKNLIILMPPOKHLNNMLKKJKKNLIIKMPPOJHLNNNLKKJJKNLIHJMPONJILNNNLKKKJKNMIHJMPPNKILMNNLJLKJKMMIGJMPPMKJLMNOMJLKJKMMIGJLPOLKKLLNOMJLKJLMMIGKMPOLLLKLNONJLKJMMLIGJLONLLMKKOONKLKJMMKIHJLONLMNJKNPNKKKJNMJIIJKNNLMNJJNPNLLKJNMJJIJKNMKNNKJNPNLLJKNMIJJJKMMLNOKJNPMLLJKOMIJJJJMMLNOLJNPMMMJLOMIJJJJLLKNNLJMPMMMJLNMIIJJJLLLNNMJMPMMMJMNMJIJJJKLLMNMKMONLMKMMMJIIJJKKMMMMLMONLMLMMMKIHJKKKMLMMLNONLLLNMLKIHIKKKMLMMMNONLLLNMLLIHIKKLMKLNMNOMLLMNMLLIGIJKLLKLNNOOLLMMNMLLIGIJKMLJLNNOPLLMMNMLLIFIJKNKJLNNOPLLMLNNLMIEHJKNKJLNNPPLLMLMNLMIEHJKNLJKNNPPMLMLMMMMIEHJLNLJKMNPQNLLLMNNMIDGJLMMJKMNPPNMLLMNNMHEFKLLNKKMNPPNMLKLNNNHEFLLKNKKMNPPNNKKLNNNHEFLKJNLLLNPPOOKJLNMMIDFLKJNMLLNPPOOKILOMMIDFLKJMNMLNPPOOLILOMLIDFLJJMNNLMQPOPLIMOLKIEGLJJMNOLMQPOOLIMOLJIFGKJJLNOLLQPOOKJMOLJHGGJJJLNPMLQPOOKKNOKIHHGJKJLNPNLQQNNKLNNKHHIGIJJLMPNLPQNNKLNNKHGIHIKJLMOOMPQNMKLNNKGGIHIKJLMOONPQNLLMNNKGGIHIKKLLNPNPQNLLLNNKGFIHJKKLLNPOQQNLMLNNKGFHHJKKLLNPOQQMLLLNOKFFHGJLKLLNPOQPMLLKNOKGFGGJMLLLNPOQQMMMKMOKHFGGJMLKLNOORQMMMKLOKHFFGJNMKLNONQQMMMJLOLHFFFJNMKLOPNQQMMMJKOLHGEEJNNJLOPNQQNMMJKOLHGFEJNNJMPPNPQNMMIJOLHHFDINOKLPPNPQNMNJJNLIHFDIOOKLQONOQNMNJINMIHFDHNOLLQONORNMMJIMMIHFDGNOLLRONOQNMMJIMMIHFDHNOLLRPMOQOMMJILMIHFDHMOMMRQMOQOMLJILMIIFDHLNMMRQNOQOMLJILLIIFDHLNMNRQNNQOMLJILLIIFDIKNMNRQONPOMLJJMLIJFDILMMNRRPNPOMKIJMLIJFDIKMMMRRPOPNMKIJMLIJFDIKMMMRRPOONLKIJMKIJGDIKLMMRSPOONLKHJMKIJFEIKLMMRSPPNNLKHJMJIJFEIKLMMQSQPONLKHJMJIJFFIKLMMQTQPOMLKHKMJIKGFJJLMNQSRPOMLKHJLIIKGGJJKMNPSRPOMLKHJLIIJGGKJKMNPSRQPMLKHJKIIJHHKJJMNPSRQPMLKHJKIJIHHLJJMNORQQPMLKIIKIJIHILJJMNORQQQMLLIIJIKIHILJJMNOQPPQMLLIHJJKHHJLJJMNOQPPQNLLJHJJKHHJLJJMNOPPPRNLLJHIKKHGKLKJMNNPOPROLLJHIKKHGKLKJMNNONOROMLJHIKKIGKLKJMNNNNOROMLJHIJKIHJLKKMNNNMORPMLJHJJKIHJLKKMONMLNRPNKKIJJKIIJLKKMONMKNRPNKKIJJKJIJLKKMONLKNRQNKKJKJKJIKKKKMONKJNRQNKKJKJKJIKKJKMONJJMRPNKKKKKKJJKKJKNONJJMRPNKKKKKLJJKJIKNOMIINQPNLKLKLMJJKJIKOOLIINQONLKLKLNIJKIIKOOLHIOPONLLLKMOJJKIILOOKHIOONMLLLKNPJJKHILOOKHJPONMLNKKNPJIKHILONJGJPNNLLOKKOQKIJHIMNNJGKONNKLPKKORLJJGIMNMIHKNNMKLPKKPRLJIGJMMMIILNNMJMPKKPRMJIGJNMLIJLMNLJMOLKPRNKHGJNMKIKKMNKJNNLKPRNKHGJMLJIKKMNKKMMMLPROKHHJLLJJLJLMJLMMMLPROKHIJKLIKKJMMKMLMNLPRPLIJJJKJKKILMKMKMOMORPLIJJIKJLKILLLMJMOMORPMJJIIJKLJIKLMMJLONOQPMJJIHJLLIIKLNLJLONOQPNKJHHJMLIIJLOLJLONOPQOLJHGJNLHIILOKJLOOOPQPLJHGJNLHIIMOKJLNOOPQQMIGGKNKHHIMOKJLNONPQQMIGGLNKHHIMNLJLNONPRQMIFGMMJGHJNNLKKNONPRQMHEHNMIGHKMMMKKMOMQSQMHEIOMIFHLMMMKJNOMQTQMHEJOMIEHMMLMLJMOMQUQLHEKNLIEHMLLNLIMOLQUPLGFLNLIEHMLKOLIMNMRUPLGGLNKIFIMLKOLIMNLRUOKGHMMKHFIMLKOMIMMMSTOKHIMMJHGIMLKOMIMMMSTOKHIMLJHHJMKLNMJMMMSSNKHJMLIHHJLKLNMJMMMSSNKIJMLIHHJLKLNMKMMMRRNKJKMKHHIKLKLNMKMMMRRMKJKMJHHIKLKLNMLMMMQQMKKKLJIHILLKLMMLMMMQQMKKLLIJHILLJLMMMMMMPPMKKMKIJHILLJLMMNMMNOOMKKMKIJHILLJLLMNMMNNONKKMJIJIJLKJLLNOMMNNONKKMJIJIJLJJLLNOMMNMONKKMJJIIKLIJMLNOMMNMNNJKMKJIIKLHJMLNPMMNMNNJJLKKIJLLHJMMOPNLMMNNJJLLKIJLLHJMMOPNLMMNMJILLKIJMLGJMNOPNLMNNMJILMLIJLKHIMNPPNLMNOLJHLMLJKLKHIMOPPNLLOOLIHKLLKKLKHHLPPPNLLOOLIGKLLKKKKIIKPQPNLMOOKHGKLLLLKJIIKPQOMLMPOKHHJLLMLJJIIKPQOMMMOPKGHJLLMMJIJJKOQOLMMOPJGHILLNMJIJJLOROLNMOPJGHHLLNNJIJKLNROLNMOPJHGHLLNNJHJKLNQNLNNPOJHGHKKNNJHJKMOQNLNMPOJIFHKKNNJHJLMOPMLNMPOJIEHKKNOJIJLMPOMMNMPOKIEHKJNOJIJLMPNLMNMPOLIEHJJNOJJJLNQNKNNMOPMIEIJINOJJKLNQMJNNMOPNHFIIINOJJKLNQMJMNMNQOHGIHIMNKJLLNQMILOMMQOHGHHIMNKKLLNQNILNMMQOHHHGILMLLMMNQNIKNMMQPIHHGJLMLLMMNQNIJNMMQOIIGGJKLLLNNNQOIJMNMQPJIGGJKLLLNNNPOIILNNPPKIGHJKLKLONNPNIHKMNPPLIFHIKKKMPONPOIHJMOOPLIFGHKMNPRRRTURQSUUTTQJCBACEFHIHGEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBCCCCCDDDDEEEFFFGGGHHIIIJJJKKKKKLLLLLLLLLLL";
sample_syn=sample_syn.split("").map(x=>(x.charCodeAt()-76)/128);
let lerp=(a,b,x)=>a+(b-a)*x
let fract=x=>x-Math.floor(x)
let play_sample=(x,sample)=>{
i=x/4;
p=15333/4;
i=i>p?p+Math.abs((i-p)%(32768/4)-(16384/4)):i;
return sample[i|0]
}
let chords_ = [
[57,64,69,72],
[53,60,65,0xFF]
];
// rvb from https://dittytoy.net/ditty/cfd7da1d77
// it's extremely minified because it's reused from a schroeder algorithm I had made. also, some of the implementations
// might be wrong
class CircularBuffer{constructor(size){this.buffer=Array(size).fill(0);this.bufferLength=size;this.head=this.tail=0}cubicInterpolation(y0,y1,y2,y3,mu){var a0=0;var a1=0;var a2=0;var a3=0;var mu2=mu*mu;a0=-.5*y0+1.5*y1-1.5*y2+.5*y3;a1=y0-2.5*y1+2*y2-.5*y3;a2=-.5*y0+.5*y2;a3=y1;return a0*mu*mu2+a1*mu2+a2*mu+a3}getSample(inValue){this.tail=this.head-inValue;if(this.tail>this.bufferLength-1){this.tail-=this.bufferLength}else if(this.tail<0){this.tail+=this.bufferLength}return this.buffer[this.tail]}write(inValue){this.head=(this.head+=1)%this.bufferLength;this.buffer[this.head]=inValue}readCubic(index){var mu=index-Math.floor(index);return this.cubicInterpolation(this.getSample(Math.floor(index)+1),this.getSample(Math.floor(index)),this.getSample(Math.floor(index)-1),this.getSample(Math.floor(index)-2),mu)}}
class AllPass{constructor(inValue,inG,sr){this.delayLength=inValue;this.g=inG;this.delayedSample=this.feedForwardSample=0;this.buffer=new CircularBuffer(sr)}process(sample){this.delayedSample=this.buffer.readCubic(this.delayLength);this.buffer.write(sample+this.delayedSample*this.g);this.feedForwardSample=sample*-this.g;return this.delayedSample+this.feedForwardSample}setFeedback(i){this.g=i}}
class Reverb {
constructor (SR,delays,decay=.5,dry=1.,wet=.5,enableLowpass=true,cutoff=.4) {
this.SR = SR;
this.options = {decay:decay,dry:dry,wet:wet};
this.t = Array(delays.length).fill(0);
this.bufs = delays.map(x=>Array(x).fill(0));
this.alls = delays.map(x=>new AllPass(x,Math.random()/4+.25 ,SR))
this.eLP = enableLowpass;
this.l = 0;
this.rl = 0
this.cutoff = cutoff;
}
changeOptions (opt) {
for (let i=0;i<Object.values(opt).length;i++) {
this.options[Object.keys(opt)[i]] = Object.values(opt)[i];
}
}
process (x) {
for (let i=0;i<this.bufs.length;i++) {
this.t[i] = (this.t[i]+1)%this.bufs[i].length;
this.bufs[i][this.t[i]] = (i==0?x:this.bufs[i-1][this.t[i-1]])+this.alls[i].process(this.bufs[i][this.t[i]]*(this.options.decay))||0
}
let o;
if (this.eLP) {
this.l = this.bufs[this.bufs.length-1][this.t[this.bufs.length-1]]*this.cutoff+this.l*(1-this.cutoff);
this.rl = x*this.cutoff+this.rl*(1-this.cutoff);
o = this.l;
}
else {
o=this.bufs[this.bufs.length-1][this.t[this.bufs.length-1]]-x;
}
return (o-(this.eLP?this.rl:0))*this.options.wet+x*this.options.dry
}
}
let StereoReverbPreset = filter.def(class {
constructor (options) {
this.SR = 48e3;
this.eff = [new Reverb(48e3,[5481,9547,12287,13256],.5,1.,.1,true,.2),new Reverb(48e3,[5485,9549,12288,13257],.5,1.,.1,true,.2)];
this.x = [0,0]; // i'm adding a hp filter because it's really unstable sometimes
}
process (input,options) {
let unFiltOut = [this.eff[0].process(input[0]),this.eff[1].process(input[1])];
// there might be a quicker method for this but idrk
unFiltOut.forEach((x,i)=>{
this.x[i] += (x - this.x[i])/80;
})
return this.x.map((x,i)=>x-unFiltOut[i]);
}
}
)
let sharedRV = StereoReverbPreset.createShared();
const osc = synth.def( (phase, env, tick, options) => {o=play_sample(phase*169,sample_syn) * env.value*2;return [o,o*.5]} );
const sine_ = synth.def( (phase, env, tick, options) => {o=Math.sin(phase * 8 * Math.PI)/6 * env.value;return [o*.5,o]} );
// https://dittytoy.net/syntax#envelopes
const sinenv = env.def(
class {
constructor(options) {
}
duration(options) {
return options.duration;
}
value(tick, options) {
return 1.+ .2 * Math.cos(tick / options.duration * 32 * Math.PI);
}
},
{ duration: 1, name: 'sinenv' }
);
const bas = synth.def( (phase, env, tick, options) => Math.sin(phase/4 * Math.PI+Math.sin(phase/4*Math.PI)) * env.value );
const drum = synth.def(
class {
constructor(options) {
this.phase = 0;
}
process(note, env, tick, options) {
this.phase += 1;
let o = 0;
let t = this.phase;
if (note == 40) {
o += Math.sin(Math.sin(Math.sqrt(t)**.1*128+t*Math.PI/1024)+((Math.random()-.5)*.1**(t/200)))*.1**(t/9900);
}
if (note == 41) {
o += Math.tanh(2*(((Math.random()-.5)*.1**(t/3000))+Math.sin(t/ditty.sampleRate*110*Math.PI*2-50/(t/44))/2*.4**(t/2200)));
}
return o * env.value;
}
}
);
const guitar = synth.def(
class {
constructor (options) {
this.size = 1920*4;
this.buf = Array(this.size).fill(0).map(x=>Math.random()*2-1)
this.t = 0;
this.x = 0;
this.lp = 0;
}
process (note,env,tick,options) {
this.t++;
this.r = ditty.sampleRate/(midi_to_hz(note));
let a = this.buf[(this.t-(this.r|0)+this.size)%this.size];
let b = this.buf[(this.t-(this.r|0)-1+this.size)%this.size];
this.x = lerp(a,b,fract(this.r));
this.lp += (this.x-this.lp)*options.amp/1.3;
this.x = this.lp;
this.buf[this.t%this.size] = this.x;
return this.x*env.value/2;
}
}
)
ditty.bpm = 180;
loop( () => {
osc.play(c4, { attack: 0., release: 0.8, duration: 4 });
sleep(4);
osc.play(d3, { attack: 0., release: 0.8, duration: 1 });
sleep(1);
osc.play(e3, { attack: 0., release: 0.8, duration: 1 });
sleep(1);
osc.play(f3, { attack: 0., release: 0.8, duration: 1 });
sleep(1);
osc.play(c4, { attack: 0., release: 0.8, duration: 2 });
sleep(2);
osc.play(a3, { attack: 0., release: 0.8, duration: 3 });
sleep(3);
osc.play(d3, { attack: 0., release: 0.8, duration: 1 });
sleep(1);
osc.play(e3, { attack: 0., release: 0.8, duration: 1 });
sleep(1);
osc.play(f3, { attack: 0., release: 0.8, duration: 1 });
sleep(1);
osc.play(e4, { attack: 0., release: 0.8, duration: 1 });
sleep(1);
}, { name: 'synth1' });
loop( (loopCount) => {
if (loopCount >= 4) {
drum.play(40, { attack: 0., release: 0.25, duration: 1 });
sleep(1);
drum.play(41, { attack: 0., release: 0.25, duration: 1 });
sleep(.5);
drum.play(40, { attack: 0., release: 0.25, duration: 1 });
sleep(1.5);
drum.play(41, { attack: 0., release: 0.25, duration: 1 });
sleep(1);
}
else if (loopCount == 3) {
sleep(3)
drum.play(41, { attack: 0., release: 0.25, duration: 1 });
sleep(1)
}
else {
sleep(4);
}
}, { name: 'drums' });
// https://dittytoy.net/ditty/220e9dcde7
class Smoother {
// We feed values to this object, and it smoothes them out
constructor(v, dur) {
this.v = v;
this.a0 = clamp01(ditty.dt / dur);
}
update(target) { // should be called once per sample
return this.v += this.a0 * (target - this.v);
}
}
loop( (loopCount) => {
if (loopCount >= 8) {
const note_smoother = new Smoother(c4, 0.01);
const q = sine_.play( (tick, options) => note_smoother.update(options.target), { duration: 16, target: c4, env: sinenv } );
sleep(4);
q.options.target = d3;
sleep(1);
q.options.target = e3;
sleep(1);
q.options.target = f3;
sleep(1);
q.options.target = c4;
sleep(2);
q.options.target = a3;
sleep(3);
q.options.target = d3;
sleep(1);
q.options.target = e3;
sleep(1);
q.options.target = f3;
sleep(1);
q.options.target = e4;
sleep(1);
}
else {
sleep(4);
}
}, { name: 'flute (?)' });
loop( (loopCount) => {
if (loopCount >= 8) {
bas.play(a4, { attack: 0.01, release: 0.01, duration: 1 });
sleep(1.5);
bas.play(a4, { attack: 0.01, release: 0.01, duration: 1 });
sleep(1);
bas.play(g4, { attack: 0.01, release: 0.01, duration: .5 });
sleep(0.5);
bas.play(a4, { attack: 0.01, release: 0.01, duration: .5 });
sleep(1);
bas.play(f4, { attack: 0.01, release: 0.01, duration: 1 });
sleep(1.5);
bas.play(f4, { attack: 0.01, release: 0.01, duration: .5 });
sleep(1);
bas.play(f4, { attack: 0.01, release: 0.01, duration: .5 });
sleep(.5);
bas.play(g4, { attack: 0.01, release: 0.01, duration: .5 });
sleep(1);
}
else if (loopCount==7) {
sleep(2.5)
bas.play(e4, { attack: 0.01, release: 0.01, duration: .5 });
sleep(.5)
bas.play(f4, { attack: 0.01, release: 0.01, duration: .5 });
sleep(.5)
bas.play(g4, { attack: 0.01, release: 0.01, duration: .5 });
sleep(.5)
}
else {
sleep(4);
}
}, { name: 'bass' });
let o = [];
for (let i = 0; i< chords_[0].length; i++) {
o.push(Math.random());
loop( (loopCount) => {
if (loopCount>=8) {
if (chords_[loopCount/2&1][i]!=0xFF) {
sleep(.5);
guitar.play(chords_[loopCount/2&1][i], { attack: 0., release: 0.1, duration: .1, amp:.3, pan: i/7 });
sleep(.25);
guitar.play(chords_[loopCount/2&1][i], { attack: 0., release: 0.1, duration: .1, amp:.3, pan: i/7 });
sleep(.25);
guitar.play(chords_[loopCount/2&1][i], { attack: 0., release: 0.3, duration: .4, pan: i/7 });
sleep(.5);
guitar.play(chords_[loopCount/2&1][i], { attack: 0., release: 0.2, duration: .4, pan: i/7 });
sleep(.5);
}
else {
sleep(2)
}
}
else {
// "prep" the delays
sleep(4+(i)/512);
}
}, { name: 'guitar(?) n'+(1+i) }).connect(sharedRV);
}