diff --git a/src/automaton.json b/src/automaton.json index 1e33aac..ada928e 100644 --- a/src/automaton.json +++ b/src/automaton.json @@ -1 +1 @@ -{"version":"4.1.1","resolution":100,"curves":[{"nodes":[[0,1,0,0,0.16140350877192983],[1,0,-0.47719298245614045]]},{"nodes":[[0,0,0,0,0.1],[0.3747555183012014,1,-0.1,0,0.1],[1.3333333333333333,0,-0.1]]},{"nodes":[[],[0.6666666666666666,1,-0.4560629631300563,-0.1852941176470587],[0.6666666666666666,0,0,0,0.26644908616188,0.1029411764705882],[2,1.1900000000000002,-0.1],[2,0.00686274509803933,0,0,0.10652741514360319],[2.6666666666666665,0.7000000000000001],[2.6666666666666665,0,0,0,0.1391644908616188,0.5215686274509802],[3.333333333333333,0.9,-0.5014360313315928,-0.22647058823529403],[3.333333333333333,0,0,0,0.3974946346535474,0.10043744264185422],[4.666666666666666,1.2000000000000002,0,0,0.1],[4.666666666666666],[5.333333333333333,0.7000000000000001,-0.24079400848586707,-0.49736814906842436],[5.333333333333333],[6,0.8,-0.4356422056174482,-0.17156862745098037],[6,0,0,0,0.32852235276081576,0.05490196078431372],[7.333333333333333,1.1441176470588237,-0.1,0,0.1],[7.333333333333333],[8,0.3333],[8,0,0,0,0.08806743643105143,0.4254901960784307],[8.666666666666666,0.9,-0.3995834676293276,-0.08230605476940031],[8.666666666666666],[9.4,1.1,-0.2785205844025618,-0.17156862745098012,0.2785205844025618,0.17156862745098012],[10,1.3],[10],[10.666666666666666,0.6000000000000001,-0.11225401796276425,-0.5783350570563074]],"fxs":[{"def":"repeat","params":{"interval":0.2299999999999996},"time":7.333333333333333,"length":0.6666666666666667}]},{"nodes":[[0,0,0,0,0.12284595300261082,0.061764705882352944],[0.6666666666666666,0.4,-0.1],[0.6666666666666666,0.06568627450980391],[2,0.2],[2.236344893790143,0.4,-0.1,0,0.1],[2.6666666666666665,0,-0.34575086532310695,0,0.04271204452939744],[2.769918291305192,0.1,-0.05130523784998782,0,0.09999999999999999],[3.333333333333333,0.1],[3.6666666666666665,0.32774323388394533],[4.666666666666666,0.30000000000000004],[4.666666666666666,0.023323265139934546],[5.333333333333333,0.1],[5.333333333333333],[6,0.30000000000000004],[6,0.02745098039215696,0,0,0.09974597868276715,-0.006845312262542842],[7.333333333333333,0.1,-0.1],[7.333333333333333,0.7000000000000001],[8.666666666666666,0.7000000000000001],[8.666666666666666,1],[10,0.1],[10.666666666666666]]},{"nodes":[[0,0,0,0,0.1],[0.3333333333333333,1,-0.1,0,0.1],[0.6666666666666666,0,-0.1],[1.9166666666666665,1,-1.0007832898172324,0,0.06],[2],[2.025071712633245,1,-0.044516971279373374,0,0.1],[2.1623944411350506,0.5,-0.07221383357420871,0.2738348538091391,0.07221383357420871,-0.2738348538091391],[2.6666666666666665,0,-0.1,0,0.1],[3,1,-0.2864316909347707,0,0.24406085208595923],[3.333333333333333,0,-0.036443741726782705,0.4106336078810942],[3.6666666666666665,0.7544057184393509,-0.08631141286229893,-0.07178801363349067,0.13346814639852406,0.11100980502520727],[4.666666666666666,1,-0.33942558746736295,-0.018347344929083464,0.09208797505724492,-0.3264027483296351],[4.851079899134173,0.30000000000000004,-0.07486057061026631,-0.013179150760383026,0.1],[5.0444017511428605,0.9656862745098039,-0.1,0,0.1],[5.333333333333333,0.044689231228471016,-0.1,0,0.1],[5.666666666666666,1,-0.1,0,0.1],[6,0,-0.1],[7.333333333333333,1,-1.0426547051383652,0,0.1],[7.621393263296473,0.331783725954214,-0.1,0,0.1],[8,1],[8,0,-0.1,0,0.1],[8.166666666666666,1,-0.099988538641853,-0.006965859231865531],[8.489362746562259,1,0,0,0.09998887794379856,-0.006861981819672439],[8.666666666666666,0,-0.11262160793957762,0.041182622607896624],[8.9,1,-0.11617352813418727,-0.020588235294117612,0.11617352813418727,0.020588235294117612],[9.04400609908224,0.15784313725490162,-0.0988340957186134,-0.027450980392156817,0.0988340957186134,0.027450980392156817],[9.3,1,-0.09200304954112025,-0.041176470588235224,0.09200304954112025,0.041176470588235224],[9.5,0.2,-0.09449923761471994,-0.06176470588235285,0.09449923761471994,0.06176470588235285],[9.666666666666666,1,-0.08899847522943988,-0.027450980392156817,0.08899847522943988,0.027450980392156817],[10,0.30000000000000004,-0.06149466330303955,-0.06176470588235285,0.06149466330303955,0.06176470588235285],[10,1,-0.1,0,0.1],[10.666666666666666,0.1,-0.1,0,0.1]],"fxs":[{"def":"repeat","params":{"interval":0.2490000000000001},"time":2,"length":0.6666666666666665},{"def":"sine","params":{"amp":0.26,"freq":8.590000000000002,"offset":0},"time":3.934411837854859,"length":0.7322548288118069},{"def":"sine","params":{"amp":0.4400000000000004,"freq":5.889999999999998,"offset":0},"time":10.234266741175261,"length":0.4323999254914046},{"def":"hermitePatch","params":{},"time":3.821100533282267,"length":0.12610951070520438,"row":1},{"def":"hermitePatch","params":{},"time":10.18270758125172,"length":0.09198590579094379,"row":1}]},{"nodes":[[],[0.5,0.5,0,0,0.3072250626170559,0.32683448369273865],[1.3333333333333333,1.5]]},{"nodes":[[0,0.2,0,0,0.18674781789871728,2.609799325705191],[0.6666666666666666,0.1,-0.3546547911950566,0.44607843137254866]]},{"nodes":[[0,0.15115889256979576,0,0,0.1],[1.3333333333333333,0.7344636184844164,-0.8192982456140352,-0.01372549019607843]],"fxs":[{"def":"sine","params":{"amp":0.42000000000000004,"freq":9.43,"offset":0},"time":0.5833333333333333,"length":0.75},{"def":"hermitePatch","params":{},"time":0.5,"length":0.16666666666666663,"row":1}]},{"nodes":[[0,0,0,0,0.1],[0.6666666666666666,1,-0.1],[0.6666666666666666,0.04000000000000001],[2,0.019999999999999997],[2,0.4],[2.6666666666666665],[3.333333333333333,0.2,-0.1],[3.333333333333333,0.5],[4.666666666666666,0.6000000000000001],[4.666666666666666,0.059594068084455554],[5.333333333333333],[6,0.1],[7.333333333333333,0,-1.3219093627620064,-0.061764705882352944],[8],[8,0.8],[10,0.8],[10,0.1],[10.666666666666666]]},{"nodes":[[0,0,0,0,0.11631853785900784,0.15784313725490196],[0.3333333333333333,0.2,-0.1,-0.06862745098039215],[0.3333333333333333,0,0,0,0.10652741514360313,0.034313725490196074],[0.6257615317667536,0.4,-0.035197899213743125,-0.1178437887562426,0.05762038784328031,0.19291505927163513],[1.5833333333333333,1.6588235294117648,-0.14423846823324632,-0.08235294117647059],[1.5833333333333333,0,0,0,0.0706266318537859,0.12352941176470589],[1.8333333333333333,0.6000000000000001,-0.07923141560987097,-0.16655319476142408,0.05223508415950609,0.10980392156862741],[2,0.8,-0.07771415202426331,-0.04117647058823528]]},{"nodes":[[0,0.7000000000000001,0,0,0.14895561357702347,-0.7343137254901958],[0.6666666666666666,0.01999999999999999,-0.07958650842810296,0.0005266470222471706,0.7602446192333546,-0.005030759268204068],[2,0.2,-0.175065274151436,-0.0480392156862745]]},{"nodes":[[0,0.264705882352941,0,0,0.2664490861618798,-0.3705882352941175],[2,0,-0.1]]},{"nodes":[[0,0,0,0,0.1],[0.3333333333333333,0.9460784313725474,-0.1,0,0.1],[1.3333333333333333,0.3627450980392144,-0.11276290315437737,0.31798356313506776,0.058202350589290165,-0.16412659044332573],[1.6666666666666665,1,-0.1,0,0.1],[1.75,-0.5431372549019617,-0.1,0,0.1],[2,0,-0.07062663185378593,-0.25392156862745086]],"fxs":[{"def":"sine","params":{"amp":0.3999999999999999,"freq":17.779999999999987,"offset":0},"time":0.6103133159268926,"length":0.7230200174064406},{"def":"hermitePatch","params":{},"time":0.5580939947780674,"length":0.08289817232376029,"row":1},{"def":"hermitePatch","params":{},"time":1.2836814621409922,"length":0.11631853785900792,"row":1}]}],"channels":[["Glitch/amp",{"items":[{},{"time":10.666666666666666,"length":1,"curve":0},{"time":256}]}],["PixelSorter/amp",{"items":[{},{"time":15.666666666666666,"length":1.666666666666666,"curve":1}]}],["Music/NEURO_TIME",{"items":[{"time":42.666666666666664,"length":10.666666666666664,"curve":2},{"time":53.33333333333333,"length":8.666666666666671,"curve":2},{"time":62,"length":1.999999999999993,"curve":9},{"time":63.99999999999999,"length":10.666666666666664,"curve":2},{"time":74.66666666666666,"length":8.666666666666671,"curve":2},{"time":83.33333333333333,"length":1.999999999999993,"curve":9}]}],["Music/NEURO_DETUNE",{"items":[{"time":42.666666666666664,"length":10.666666666666664,"curve":3},{"time":53.33333333333333,"length":8.666666666666671,"curve":3},{"time":62,"length":1.999999999999993,"curve":10},{"time":63.99999999999999,"length":10.666666666666664,"curve":3},{"time":74.66666666666666,"length":8.666666666666671,"curve":3},{"time":83.33333333333333,"length":1.999999999999993,"curve":10}]}],["Music/NEURO_DETUNE_PHASE",{"items":[{"time":42.666666666666664,"length":10.666666666666664,"curve":8},{"time":53.33333333333333,"length":8.666666666666671,"curve":8},{"time":62,"length":1.999999999999993,"curve":11},{"time":63.99999999999999,"length":10.666666666666664,"curve":8},{"time":74.66666666666666,"length":8.666666666666671,"curve":8},{"time":83.33333333333333,"length":1.999999999999993,"curve":11}]}],["Music/NEURO_WUB_AMP",{"items":[{"time":42.666666666666664,"length":10.668578038364203,"curve":4},{"time":53.33524470503087,"length":8.664755294969133,"curve":4},{"time":62,"length":2.0038227433950624,"curve":12},{"time":64.00382274339506,"length":10.668578038364203,"curve":4},{"time":74.67240078175926,"length":8.660932551574064,"curve":4},{"time":83.33333333333333,"length":2.0038227433950624,"curve":12}]}],["Music/NEURO_WUB_FREQ",{"items":[{"time":42.666666666666664,"length":2,"value":1},{"time":44.666666666666664,"length":0.6666666666666643,"value":0.49999999999999967},{"time":45.33333333333333,"length":0.6666666666666714,"value":1},{"time":46,"length":1.3333333333333286,"value":2},{"time":47.33333333333333,"length":0.6666666666666714,"value":2.5},{"time":48,"length":0.6666666666666643,"value":1},{"time":48.666666666666664,"length":1.3333333333333357,"value":1},{"time":50,"length":0.6666666666666643,"value":2},{"time":50.666666666666664,"length":2,"value":1},{"time":52.666666666666664,"length":0.6666666666666643,"value":2},{"time":53.33333333333333,"length":0.6666666666666714,"value":1},{"time":54,"length":1.3333333333333286,"value":2.1000000000000014},{"time":55.33333333333333,"length":0.6666666666666714,"value":0.5},{"time":56,"length":0.6666666666666643,"value":7},{"time":56.666666666666664,"length":1.3333333333333357,"value":3},{"time":58,"length":0.6666666666666714,"value":1},{"time":58.66666666666667,"length":0.6666666666666714,"value":3},{"time":59.33333333333334,"length":2,"value":6},{"time":61.33333333333334,"length":0.6666666666666572,"value":1},{"time":62,"length":1.3333333333333428,"value":4.1},{"time":63.33333333333334,"length":0.6666666666666572,"value":4.109999999999999},{"time":64,"length":2,"value":1},{"time":66,"length":0.6666666666666643,"value":0.49999999999999967},{"time":66.66666666666666,"length":0.6666666666666714,"value":1},{"time":67.33333333333333,"length":1.3333333333333286,"value":2},{"time":68.66666666666666,"length":0.6666666666666714,"value":2.5},{"time":69.33333333333333,"length":0.6666666666666643,"value":1},{"time":70,"length":1.3333333333333357,"value":1},{"time":71.33333333333334,"length":0.6666666666666643,"value":2},{"time":72,"length":2,"value":1},{"time":74,"length":0.6666666666666643,"value":2},{"time":74.66666666666666,"length":0.6666666666666714,"value":1},{"time":75.33333333333333,"length":1.3333333333333286,"value":2.1000000000000014},{"time":76.66666666666666,"length":0.6666666666666714,"value":0.5},{"time":77.33333333333333,"length":0.6666666666666643,"value":7},{"time":78,"length":1.3333333333333357,"value":3},{"time":79.33333333333334,"length":0.6666666666666714,"value":1},{"time":80.00000000000001,"length":0.6666666666666714,"value":3},{"time":80.66666666666669,"length":2,"value":6},{"time":82.66666666666669,"length":0.6666666666666572,"value":1},{"time":83.33333333333334,"length":1.3333333333333428,"value":4.1},{"time":84.66666666666669,"length":0.6666666666666572,"value":4.109999999999999}]}]],"labels":{"zero":0},"guiSettings":{"snapTimeActive":true,"snapTimeInterval":0.1,"snapValueActive":true,"snapValueInterval":0.1,"snapBeatActive":true,"bpm":180,"beatOffset":0,"useBeatInGUI":true,"minimizedPrecisionTime":3,"minimizedPrecisionValue":3}} \ No newline at end of file +{"version":"4.1.1","resolution":100,"curves":[{"nodes":[[0,1,0,0,0.16140350877192983],[1,0,-0.47719298245614045]]},{"nodes":[[0,0,0,0,0.1],[0.3747555183012014,1,-0.1,0,0.1],[1.3333333333333333,0,-0.1]]},{"nodes":[[],[0.6666666666666666,1,-0.4560629631300563,-0.1852941176470587],[0.6666666666666666,0,0,0,0.26644908616188,0.1029411764705882],[2,1.1900000000000002,-0.1],[2,0.00686274509803933,0,0,0.10652741514360319],[2.6666666666666665,0.7000000000000001],[2.6666666666666665,0,0,0,0.1391644908616188,0.5215686274509802],[3.333333333333333,0.9,-0.5014360313315928,-0.22647058823529403],[3.333333333333333,0,0,0,0.3974946346535474,0.10043744264185422],[4.666666666666666,1.2000000000000002,0,0,0.1],[4.666666666666666],[5.333333333333333,0.7000000000000001,-0.24079400848586707,-0.49736814906842436],[5.333333333333333],[6,0.8,-0.4356422056174482,-0.17156862745098037],[6,0,0,0,0.32852235276081576,0.05490196078431372],[7.333333333333333,1.1441176470588237,-0.1,0,0.1],[7.333333333333333],[8,0.3333],[8,0,0,0,0.08806743643105143,0.4254901960784307],[8.666666666666666,0.9,-0.3995834676293276,-0.08230605476940031],[8.666666666666666],[9.4,1.1,-0.2785205844025618,-0.17156862745098012,0.2785205844025618,0.17156862745098012],[10,1.3],[10],[10.666666666666666,0.6000000000000001,-0.11225401796276425,-0.5783350570563074]],"fxs":[{"def":"repeat","params":{"interval":0.2299999999999996},"time":7.333333333333333,"length":0.6666666666666667}]},{"nodes":[[0,0,0,0,0.12284595300261082,0.061764705882352944],[0.6666666666666666,0.4,-0.1],[0.6666666666666666,0.06568627450980391],[2,0.2],[2.236344893790143,0.4,-0.1,0,0.1],[2.6666666666666665,0,-0.34575086532310695,0,0.04271204452939744],[2.769918291305192,0.1,-0.05130523784998782,0,0.09999999999999999],[3.333333333333333,0.1],[3.6666666666666665,0.32774323388394533],[4.666666666666666,0.30000000000000004],[4.666666666666666,0.023323265139934546],[5.333333333333333,0.1],[5.333333333333333],[6,0.30000000000000004],[6,0.02745098039215696,0,0,0.09974597868276715,-0.006845312262542842],[7.333333333333333,0.1,-0.1],[7.333333333333333,0.7000000000000001],[8.666666666666666,0.7000000000000001],[8.666666666666666,1],[10,0.1],[10.666666666666666]]},{"nodes":[[0,0,0,0,0.1],[0.3333333333333333,1,-0.1,0,0.1],[0.6666666666666666,0,-0.1],[1.9166666666666665,1,-1.0007832898172324,0,0.06],[2],[2.025071712633245,1,-0.044516971279373374,0,0.1],[2.1623944411350506,0.5,-0.07221383357420871,0.2738348538091391,0.07221383357420871,-0.2738348538091391],[2.6666666666666665,0,-0.1,0,0.1],[3,1,-0.2864316909347707,0,0.24406085208595923],[3.333333333333333,0,-0.036443741726782705,0.4106336078810942],[3.6666666666666665,0.7544057184393509,-0.08631141286229893,-0.07178801363349067,0.13346814639852406,0.11100980502520727],[4.666666666666666,1,-0.33942558746736295,-0.018347344929083464,0.09208797505724492,-0.3264027483296351],[4.851079899134173,0.30000000000000004,-0.07486057061026631,-0.013179150760383026,0.1],[5.0444017511428605,0.9656862745098039,-0.1,0,0.1],[5.333333333333333,0.044689231228471016,-0.1,0,0.1],[5.666666666666666,1,-0.1,0,0.1],[6,0,-0.1],[7.333333333333333,1,-1.0426547051383652,0,0.1],[7.6000000000000005,0.7000000000000001,-0.1,0,0.1],[8,1],[8,0,-0.1,0,0.1],[8.166666666666666,1,-0.099988538641853,-0.006965859231865531],[8.489362746562259,1,0,0,0.09998887794379856,-0.006861981819672439],[8.666666666666666,0,-0.11262160793957762,0.041182622607896624],[8.9,1,-0.11617352813418727,-0.020588235294117612,0.11617352813418727,0.020588235294117612],[9.04400609908224,0.15784313725490162,-0.0988340957186134,-0.027450980392156817,0.0988340957186134,0.027450980392156817],[9.3,1,-0.09200304954112025,-0.041176470588235224,0.09200304954112025,0.041176470588235224],[9.5,0.2,-0.09449923761471994,-0.06176470588235285,0.09449923761471994,0.06176470588235285],[9.666666666666666,1,-0.08899847522943988,-0.027450980392156817,0.08899847522943988,0.027450980392156817],[10,0.30000000000000004,-0.06149466330303955,-0.06176470588235285,0.06149466330303955,0.06176470588235285],[10,1,-0.1,0,0.1],[10.666666666666666,0.1,-0.1,0,0.1]],"fxs":[{"def":"repeat","params":{"interval":0.2490000000000001},"time":2,"length":0.6666666666666665},{"def":"sine","params":{"amp":0.26,"freq":8.590000000000002,"offset":0},"time":3.934411837854859,"length":0.7322548288118069},{"def":"sine","params":{"amp":0.4400000000000004,"freq":5.889999999999998,"offset":0},"time":10.234266741175261,"length":0.4323999254914046},{"def":"hermitePatch","params":{},"time":3.821100533282267,"length":0.12610951070520438,"row":1},{"def":"hermitePatch","params":{},"time":10.18270758125172,"length":0.09198590579094379,"row":1}]},{"nodes":[[],[0.5,0.5,0,0,0.3072250626170559,0.32683448369273865],[1.3333333333333333,1.5]]},{"nodes":[[0,0.2,0,0,0.18674781789871728,2.609799325705191],[0.6666666666666666,0.1,-0.3546547911950566,0.44607843137254866]]},{"nodes":[[0,0.15115889256979576,0,0,0.1],[1.3333333333333333,0.7344636184844164,-0.8192982456140352,-0.01372549019607843]],"fxs":[{"def":"sine","params":{"amp":0.42000000000000004,"freq":9.43,"offset":0},"time":0.5833333333333333,"length":0.75},{"def":"hermitePatch","params":{},"time":0.5,"length":0.16666666666666663,"row":1}]},{"nodes":[[0,0,0,0,0.1],[0.6666666666666666,1,-0.1],[0.6666666666666666,0.04000000000000001],[2,0.019999999999999997],[2,0.4],[2.6666666666666665],[3.333333333333333,0.2,-0.1],[3.333333333333333,0.5],[4.666666666666666,0.6000000000000001],[4.666666666666666,0.059594068084455554],[5.333333333333333],[6,0.1],[7.333333333333333,0,-1.3219093627620064,-0.061764705882352944],[8],[8,0.8],[10,0.8],[10,0.1],[10.666666666666666]]},{"nodes":[[0,0,0,0,0.11631853785900784,0.15784313725490196],[0.3333333333333333,0.2,-0.1,-0.06862745098039215],[0.3333333333333333,0,0,0,0.10652741514360313,0.034313725490196074],[0.6257615317667536,0.4,-0.035197899213743125,-0.1178437887562426,0.05762038784328031,0.19291505927163513],[1.5833333333333333,1.6588235294117648,-0.14423846823324632,-0.08235294117647059],[1.5833333333333333,0,0,0,0.0706266318537859,0.12352941176470589],[1.8333333333333333,0.6000000000000001,-0.07923141560987097,-0.16655319476142408,0.05223508415950609,0.10980392156862741],[2,0.8,-0.07118673688066018,-0.08235294117647059]]},{"nodes":[[0,0.7000000000000001,0,0,0.14895561357702347,-0.7343137254901958],[0.6666666666666666,0.01999999999999999,-0.07958650842810296,0.0005266470222471706,0.7602446192333546,-0.005030759268204068],[1.75,0.2,-0.175065274151436,-0.0480392156862745],[2,1,-0.1]]},{"nodes":[[0,0.264705882352941,0,0,0.2664490861618798,-0.3705882352941175],[1.75,0,-0.1,0,0.1],[2,1,-0.1]]},{"nodes":[[0,0,0,0,0.1],[0.3333333333333333,0.9460784313725474,-0.1,0,0.1],[1.3333333333333333,0.3627450980392144,-0.11276290315437737,0.31798356313506776,0.058202350589290165,-0.16412659044332573],[1.6666666666666665,1,-0.1,0,0.1],[1.7304177545691903,0.1,-0.1,0,0.1],[2,1.4000000000000001,-0.05099116999738633,-0.5930547707442783]],"fxs":[{"def":"sine","params":{"amp":0.3999999999999999,"freq":17.779999999999987,"offset":0},"time":0.6103133159268926,"length":0.7230200174064406},{"def":"hermitePatch","params":{},"time":0.5580939947780674,"length":0.08289817232376029,"row":1},{"def":"hermitePatch","params":{},"time":1.2836814621409922,"length":0.11631853785900792,"row":1}]},{"nodes":[[0,1,0,0,0.06843643544269563,-0.8715686274509801],[0.6666666666666666,0,-0.47719298245614045]]}],"channels":[["Glitch/amp",{"items":[{},{"time":42.666666666666664,"length":1,"curve":0},{"time":45.33333333333333,"length":1,"curve":0},{"time":48,"length":1,"curve":0},{"time":50.666666666666664,"length":1,"curve":0},{"time":53.33333333333333,"length":1,"curve":0},{"time":56,"length":1,"curve":0},{"time":58.666666666666664,"length":1,"curve":0},{"time":61.33333333333333,"length":1,"curve":0},{"time":64,"length":1,"curve":0},{"time":66.66666666666666,"length":1,"curve":0},{"time":69.33333333333333,"length":1,"curve":0},{"time":72,"length":1,"curve":0},{"time":74.66666666666666,"length":1,"curve":0},{"time":77.33333333333333,"length":1,"curve":0},{"time":80,"length":1,"curve":0},{"time":82.66666666666666,"length":1,"curve":0},{"time":256}]}],["PixelSorter/amp",{"items":[{},{"time":42.666666666666664,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":45.33333333333333,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":48,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":50.666666666666664,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":53.33333333333333,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":56,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":58.666666666666664,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":61.33333333333333,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":64,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":66.66666666666666,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":69.33333333333333,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":72,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":74.66666666666666,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":77.33333333333333,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":80,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004},{"time":82.66666666666666,"length":0.6666666666666643,"curve":13,"speed":1.0000000000000004}]}],["Music/NEURO_TIME",{"items":[{"time":42.666666666666664,"length":10.666666666666664,"curve":2},{"time":53.33333333333333,"length":8.666666666666671,"curve":2},{"time":62,"length":1.999999999999993,"curve":9},{"time":63.99999999999999,"length":10.666666666666664,"curve":2},{"time":74.66666666666666,"length":8.666666666666671,"curve":2},{"time":83.33333333333333,"length":1.999999999999993,"curve":9}]}],["Music/NEURO_DETUNE",{"items":[{"time":42.666666666666664,"length":10.666666666666664,"curve":3},{"time":53.33333333333333,"length":8.666666666666671,"curve":3},{"time":62,"length":1.999999999999993,"curve":10},{"time":63.99999999999999,"length":10.666666666666664,"curve":3},{"time":74.66666666666666,"length":8.666666666666671,"curve":3},{"time":83.33333333333333,"length":1.999999999999993,"curve":10}]}],["Music/NEURO_DETUNE_PHASE",{"items":[{"time":42.666666666666664,"length":10.666666666666664,"curve":8},{"time":53.33333333333333,"length":8.666666666666671,"curve":8},{"time":62,"length":1.999999999999993,"curve":11},{"time":63.99999999999999,"length":10.666666666666664,"curve":8},{"time":74.66666666666666,"length":8.666666666666671,"curve":8},{"time":83.33333333333333,"length":1.999999999999993,"curve":11}]}],["Music/NEURO_WUB_AMP",{"items":[{"time":42.666666666666664,"length":10.668578038364203,"curve":4},{"time":53.33524470503087,"length":8.664755294969133,"curve":4},{"time":62,"length":2.0038227433950624,"curve":12},{"time":64.00382274339506,"length":10.668578038364203,"curve":4},{"time":74.67240078175926,"length":8.660932551574064,"curve":4},{"time":83.33333333333333,"length":2.0038227433950624,"curve":12}]}],["Music/NEURO_WUB_FREQ",{"items":[{"time":42.666666666666664,"length":2,"value":1},{"time":44.666666666666664,"length":0.6666666666666643,"value":0.49999999999999967},{"time":45.33333333333333,"length":0.6666666666666714,"value":1},{"time":46,"length":1.3333333333333286,"value":2},{"time":47.33333333333333,"length":0.6666666666666714,"value":2.5},{"time":48,"length":0.6666666666666643,"value":1},{"time":48.666666666666664,"length":1.3333333333333357,"value":1},{"time":50,"length":0.6666666666666643,"value":2},{"time":50.666666666666664,"length":2,"value":1},{"time":52.666666666666664,"length":0.6666666666666643,"value":2},{"time":53.33333333333333,"length":0.6666666666666714,"value":1},{"time":54,"length":1.3333333333333286,"value":2.1000000000000014},{"time":55.33333333333333,"length":0.6666666666666714,"value":0.5},{"time":56,"length":0.6666666666666643,"value":7},{"time":56.666666666666664,"length":1.3333333333333357,"value":3},{"time":58,"length":0.6666666666666714,"value":1},{"time":58.66666666666667,"length":0.6666666666666714,"value":3},{"time":59.33333333333334,"length":2,"value":6},{"time":61.33333333333334,"length":0.6666666666666572,"value":1},{"time":62,"length":1.3333333333333428,"value":4.1},{"time":63.33333333333334,"length":0.6666666666666572,"value":4.109999999999999},{"time":64,"length":2,"value":1},{"time":66,"length":0.6666666666666643,"value":0.49999999999999967},{"time":66.66666666666666,"length":0.6666666666666714,"value":1},{"time":67.33333333333333,"length":1.3333333333333286,"value":2},{"time":68.66666666666666,"length":0.6666666666666714,"value":2.5},{"time":69.33333333333333,"length":0.6666666666666643,"value":1},{"time":70,"length":1.3333333333333357,"value":1},{"time":71.33333333333334,"length":0.6666666666666643,"value":2},{"time":72,"length":2,"value":1},{"time":74,"length":0.6666666666666643,"value":2},{"time":74.66666666666666,"length":0.6666666666666714,"value":1},{"time":75.33333333333333,"length":1.3333333333333286,"value":2.1000000000000014},{"time":76.66666666666666,"length":0.6666666666666714,"value":0.5},{"time":77.33333333333333,"length":0.6666666666666643,"value":7},{"time":78,"length":1.3333333333333357,"value":3},{"time":79.33333333333334,"length":0.6666666666666714,"value":1},{"time":80.00000000000001,"length":0.6666666666666714,"value":3},{"time":80.66666666666669,"length":2,"value":6},{"time":82.66666666666669,"length":0.6666666666666572,"value":1},{"time":83.33333333333334,"length":1.3333333333333428,"value":4.1},{"time":84.66666666666669,"length":0.6666666666666572,"value":4.109999999999999}]}]],"labels":{"zero":0},"guiSettings":{"snapTimeActive":true,"snapTimeInterval":0.1,"snapValueActive":true,"snapValueInterval":0.1,"snapBeatActive":true,"bpm":180,"beatOffset":0,"useBeatInGUI":true,"minimizedPrecisionTime":3,"minimizedPrecisionValue":3}} \ No newline at end of file diff --git a/src/config-hot.ts b/src/config-hot.ts index a2da13f..f156c4a 100644 --- a/src/config-hot.ts +++ b/src/config-hot.ts @@ -2,7 +2,7 @@ export const RTINSPECTOR_MULTIPLE = false, RTINSPECTOR_CAPTURE_NAME: string | null = null, // RTINSPECTOR_CAPTURE_NAME: string | null = 'light1/shadowMap', - // RTINSPECTOR_CAPTURE_NAME: string | null = 'EnvironmentMap/swap1', + // RTINSPECTOR_CAPTURE_NAME: string | null = 'CameraEntity/cameraTarget', RTINSPECTOR_CAPTURE_INDEX = 0, COMPONENT_UPDATE_BREAKPOINT: string | null = null, // COMPONENT_UPDATE_BREAKPOINT: string | null = 'EnvironmentMap/quadIntegrate', diff --git a/src/entities/Raymarcher.ts b/src/entities/Raymarcher.ts index f2a28ee..20a60e3 100644 --- a/src/entities/Raymarcher.ts +++ b/src/entities/Raymarcher.ts @@ -8,6 +8,7 @@ import quadVert from '../shaders/quad.vert'; import raymarcherFrag from '../shaders/raymarcher.frag'; import { Lambda } from '../heck/components/Lambda'; import { randomTexture, randomTextureStatic } from '../globals/randomTexture'; +import { auto } from '../globals/automaton'; export class Raymarcher { public materials: MaterialMap<'deferred' | 'shadow'>; @@ -45,10 +46,14 @@ export class Raymarcher { 'Matrix4fv', event.projectionMatrix.multiply( event.viewMatrix ).inverse!.elements ); + + material.addUniform( 'deformAmp', '1f', auto( 'Music/NEURO_WUB_AMP' ) ); + material.addUniform( 'deformFreq', '1f', auto( 'Music/NEURO_WUB_FREQ' ) ); + material.addUniform( 'deformTime', '1f', auto( 'Music/NEURO_TIME' ) ); } }, active: false, - name: process.env.DEV && 'Raymarcher/setCameraUniforms', + name: process.env.DEV && 'Raymarcher/updater', } ) ); this.mesh = new Mesh( { diff --git a/src/scene.ts b/src/scene.ts index bdc160f..5fbb23a 100644 --- a/src/scene.ts +++ b/src/scene.ts @@ -73,7 +73,7 @@ class EntityReplacer { // -- bake ----------------------------------------------------------------------------------------- const ibllut = new IBLLUT(); -// dog.root.children.push( ibllut.entity ); +dog.root.children.push( ibllut.entity ); // -- "objects" ------------------------------------------------------------------------------------ // const replacerSphereParticles = new EntityReplacer( () => new SphereParticles() ); @@ -90,12 +90,12 @@ const ibllut = new IBLLUT(); // } ); // } -// const replacerRings = new EntityReplacer( () => new Rings() ); -// if ( process.env.DEV && module.hot ) { -// module.hot.accept( './entities/Rings', () => { -// replacerRings.replace(); -// } ); -// } +const replacerRings = new EntityReplacer( () => new Rings() ); +if ( process.env.DEV && module.hot ) { + module.hot.accept( './entities/Rings', () => { + replacerRings.replace(); + } ); +} // const replacerCube = new EntityReplacer( () => new Cube() ); // if ( process.env.DEV && module.hot ) { @@ -104,19 +104,19 @@ const ibllut = new IBLLUT(); // } ); // } -// const replacerFlickyParticles = new EntityReplacer( () => new FlickyParticles() ); -// if ( process.env.DEV && module.hot ) { -// module.hot.accept( './entities/FlickyParticles', () => { -// replacerFlickyParticles.replace(); -// } ); -// } +const replacerFlickyParticles = new EntityReplacer( () => new FlickyParticles() ); +if ( process.env.DEV && module.hot ) { + module.hot.accept( './entities/FlickyParticles', () => { + replacerFlickyParticles.replace(); + } ); +} -// const replacerRaymarcher = new EntityReplacer( () => new Raymarcher() ); -// if ( process.env.DEV && module.hot ) { -// module.hot.accept( './entities/Raymarcher', () => { -// replacerRaymarcher.replace(); -// } ); -// } +const replacerRaymarcher = new EntityReplacer( () => new Raymarcher() ); +if ( process.env.DEV && module.hot ) { + module.hot.accept( './entities/Raymarcher', () => { + replacerRaymarcher.replace(); + } ); +} // -- things that is not an "object" --------------------------------------------------------------- const swapOptions = { @@ -135,16 +135,16 @@ const swap = new Swap( } ), ); -// const light = new LightEntity( { -// root: dog.root, -// shadowMapFov: 90.0, -// shadowMapNear: 1.0, -// shadowMapFar: 20.0, -// namePrefix: process.env.DEV && 'light1', -// } ); -// light.color = [ 40.0, 40.0, 40.0 ]; -// light.entity.transform.lookAt( new Vector3( [ -1.0, 2.0, 8.0 ] ) ); -// dog.root.children.push( light.entity ); +const light = new LightEntity( { + root: dog.root, + shadowMapFov: 90.0, + shadowMapNear: 1.0, + shadowMapFar: 20.0, + namePrefix: process.env.DEV && 'light1', +} ); +light.color = [ 30.0, 1.0, 5.0 ]; +light.entity.transform.lookAt( new Vector3( [ -1.0, 2.0, 8.0 ] ) ); +dog.root.children.push( light.entity ); // const light2 = new LightEntity( { // root: dog.root, @@ -157,83 +157,83 @@ const swap = new Swap( // light2.entity.transform.lookAt( new Vector3( [ -4.0, -2.0, 6.0 ] ) ); // dog.root.children.push( light2.entity ); -// const cubemapCamera = new CubemapCameraEntity( { -// root: dog.root, -// lights: [ -// light, -// // light2 -// ], -// } ); -// dog.root.children.push( cubemapCamera.entity ); +const cubemapCamera = new CubemapCameraEntity( { + root: dog.root, + lights: [ + light, + // light2 + ], +} ); +dog.root.children.push( cubemapCamera.entity ); -// const environmentMap = new EnvironmentMap( { -// cubemap: cubemapCamera.target, -// } ); -// dog.root.children.push( environmentMap.entity ); +const environmentMap = new EnvironmentMap( { + cubemap: cubemapCamera.target, +} ); +dog.root.children.push( environmentMap.entity ); -// const camera = new CameraEntity( { -// root: dog.root, -// target: swap.o, -// lights: [ -// light, -// // light2 -// ], -// textureIBLLUT: ibllut.texture, -// textureEnv: environmentMap.texture, -// } ); -// camera.camera.clear = [ 0.0, 0.0, 0.0, 0.0 ]; -// camera.entity.components.unshift( new Lambda( { -// onUpdate: ( event ) => { -// const t1 = 0.02 * Math.sin( event.time ); -// const s1 = Math.sin( t1 ); -// const c1 = Math.cos( t1 ); -// const t2 = 0.02 * Math.cos( event.time ); -// const s2 = Math.sin( t2 ); -// const c2 = Math.cos( t2 ); -// const r = 5.0; +const camera = new CameraEntity( { + root: dog.root, + target: swap.o, + lights: [ + light, + // light2 + ], + textureIBLLUT: ibllut.texture, + textureEnv: environmentMap.texture, +} ); +camera.camera.clear = [ 0.0, 0.0, 0.0, 0.0 ]; +camera.entity.components.unshift( new Lambda( { + onUpdate: ( event ) => { + const t1 = 0.02 * Math.sin( event.time ); + const s1 = Math.sin( t1 ); + const c1 = Math.cos( t1 ); + const t2 = 0.02 * Math.cos( event.time ); + const s2 = Math.sin( t2 ); + const c2 = Math.cos( t2 ); + const r = 5.0; -// camera.entity.transform.lookAt( new Vector3( [ -// r * c1 * s2, -// r * s1, -// r * c1 * c2 -// ] ) ); -// }, -// visible: false, -// name: process.env.DEV && 'main/updateCamera', -// } ) ); -// dog.root.children.push( camera.entity ); + camera.entity.transform.lookAt( new Vector3( [ + r * c1 * s2, + r * s1, + r * c1 * c2 + ] ) ); + }, + visible: false, + name: process.env.DEV && 'main/updateCamera', +} ) ); +dog.root.children.push( camera.entity ); -// swap.swap(); -// const bloom = new Bloom( { -// input: swap.i, -// target: swap.o -// } ); -// dog.root.children.push( bloom.entity ); +swap.swap(); +const bloom = new Bloom( { + input: swap.i, + target: swap.o +} ); +dog.root.children.push( bloom.entity ); -// swap.swap(); -// const glitch = new Glitch( { -// input: swap.i, -// target: swap.o, -// } ); -// dog.root.children.push( glitch.entity ); +swap.swap(); +const glitch = new Glitch( { + input: swap.i, + target: swap.o, +} ); +dog.root.children.push( glitch.entity ); -// swap.swap(); -// const pixelSorter = new PixelSorter( { -// input: swap.i, -// target: swap.o, -// } ); -// dog.root.children.push( pixelSorter.entity ); +swap.swap(); +const pixelSorter = new PixelSorter( { + input: swap.i, + target: swap.o, +} ); +dog.root.children.push( pixelSorter.entity ); -// swap.swap(); -// const post = new Post( { -// input: swap.i, -// target: canvasRenderTarget -// } ); -// dog.root.children.push( post.entity ); +swap.swap(); +const post = new Post( { + input: swap.i, + target: canvasRenderTarget +} ); +dog.root.children.push( post.entity ); -// if ( process.env.DEV ) { -// const rtInspector = new RTInspector( { -// target: canvasRenderTarget -// } ); -// dog.root.children.push( rtInspector.entity ); -// } +if ( process.env.DEV ) { + const rtInspector = new RTInspector( { + target: canvasRenderTarget + } ); + dog.root.children.push( rtInspector.entity ); +} diff --git a/src/shaders/flicky-particles-render.frag b/src/shaders/flicky-particles-render.frag index 24e973e..c080db6 100644 --- a/src/shaders/flicky-particles-render.frag +++ b/src/shaders/flicky-particles-render.frag @@ -177,7 +177,7 @@ void main() { } #ifdef FORWARD - fragColor = vec4( 1.0 ); + fragColor = vec4( 0.2 ); #endif #ifdef DEFERRED diff --git a/src/shaders/music.vert b/src/shaders/music.vert index 92db011..9253916 100644 --- a/src/shaders/music.vert +++ b/src/shaders/music.vert @@ -372,7 +372,7 @@ vec2 mainAudio( vec4 time ) { // -- snare -------------------------------------------------------------------------------------- if ( inRange( time.w, SECTION_NEURO, SECTION_PORTER_FUCKING_ROBINSON ) ) { float t = mod( time.y - 2.0 * BEAT, 4.0 * BEAT ); - dest += 0.12 * snare( t ); + dest += 0.1 * snare( t ); } // -- neuro bass --------------------------------------------------------------------------------- @@ -398,7 +398,7 @@ vec2 mainAudio( vec4 time ) { sum += 0.3 * ( 2.0 * fbm( uv ) - 1.0 ); } - dest += mix( 0.0, 1.0, sidechain ) * 0.2 * aSaturate( sum ); + dest += mix( 0.0, 1.0, sidechain ) * 0.27 * aSaturate( sum ); dest += mix( 0.0, 1.0, sidechain ) * 0.2 * sin( n2f( -36.0 ) * TAU * t ); } @@ -519,7 +519,7 @@ vec2 mainAudio( vec4 time ) { t += 1.0 * inRangeInteg( time.z, 28.0 * BEAT, 31.75 * BEAT, 50.0 ); float freq = n2f( chordsB[ progB ] ) * 0.125; float fadetime = max( 0.0, time.w - SECTION_AAAA + 8.0 * BEAT ); - dest += 0.1 * exp( -1.0 * fadetime ) * mix( 0.1, 1.0, sidechain ) * superbass( t, freq, exp( -2.0 * fadetime ) ); + dest += 0.08 * exp( -1.0 * fadetime ) * mix( 0.1, 1.0, sidechain ) * superbass( t, freq, exp( -2.0 * fadetime ) ); } // -- choir -------------------------------------------------------------------------------------- @@ -542,7 +542,7 @@ vec2 mainAudio( vec4 time ) { sum += 0.3 * mix( 0.2, 1.0, sidechain ) * choir( t * rate * 0.5 ); } - dest += 0.12 * aSaturate( sum ); + dest += 0.1 * aSaturate( sum ); } // -- harp --------------------------------------------------------------------------------------- @@ -562,7 +562,7 @@ vec2 mainAudio( vec4 time ) { float rev = 0.3; float rate = n2r( float( notes[ prog ] ) ); - dest += 0.1 * exp( -0.5 * fi ) * mix( 0.2, 1.0, sidechain ) * harp( t * rate * 0.5 ); + dest += 0.08 * exp( -0.5 * fi ) * mix( 0.2, 1.0, sidechain ) * harp( t * rate * 0.5 ); } } @@ -595,7 +595,7 @@ vec2 mainAudio( vec4 time ) { sum += 0.1 * mix( 0.2, 1.0, sidechain ) * phase; } - dest += 0.15 * aSaturate( sum ); + dest += 0.12 * aSaturate( sum ); } // -- deepkick ----------------------------------------------------------------------------------- diff --git a/src/shaders/raymarcher.frag b/src/shaders/raymarcher.frag index c9b4819..c9ac080 100644 --- a/src/shaders/raymarcher.frag +++ b/src/shaders/raymarcher.frag @@ -5,7 +5,7 @@ precision highp float; #define saturate(x) clamp(x,0.,1.) #define linearstep(a,b,x) saturate(((x)-(a))/((b)-(a))) -const int MARCH_ITER = 50; +const int MARCH_ITER = 90; const int MTL_UNLIT = 1; const int MTL_PBR = 2; const int MTL_GRADIENT = 3; @@ -24,6 +24,9 @@ in vec2 vUv; out vec4 fragColor; #endif +uniform float deformAmp; +uniform float deformFreq; +uniform float deformTime; uniform float time; uniform vec2 resolution; uniform vec2 cameraNearFar; @@ -39,10 +42,40 @@ vec3 divideByW( vec4 v ) { return v.xyz / v.w; } +mat2 rot2d( float t ) { + float c = cos( t ); + float s = sin( t ); + return mat2( c, -s, s, c ); +} + +#pragma glslify: noise = require( ./-simplex4d ); #pragma glslify: distFunc = require( ./-distFunc ); +float box( vec3 p, vec3 s ) { + vec3 d = abs( p ) - s; + return min( 0.0, max( d.x, max( d.y, d.z ) ) ) + length( max( vec3( 0.0 ), d ) ); +} + float fDistFunc( vec3 p ) { - return distFunc( p, time ); + float distSlasher; + + if ( length( p ) > 2.0 ) { return length( p ) - 1.8; } + + p += 0.5 * deformAmp / deformFreq * noise( vec4( deformFreq * p.xyz, 4.0 * deformFreq * deformTime ) ); + + { + vec3 pt = p; + + pt.xy = rot2d( 0.5 ) * pt.xy; + pt.yz = rot2d( 0.5 ) * pt.yz; + + pt.y = mod( pt.y - 0.02, 0.04 ) - 0.02; + distSlasher = box( pt, vec3( 1E1, 0.015, 1E1 ) ); + } + + float dist = distFunc( p, time ); + + return max( distSlasher, dist ); } vec3 normalFunc( vec3 p, float dd ) { @@ -65,18 +98,19 @@ void main() { float dist; for ( int i = 0; i < MARCH_ITER; i ++ ) { - dist = distFunc( rayPos, time ); - rayLen += 0.7 * dist; + dist = fDistFunc( rayPos ); + rayLen += 0.5 * dist; rayPos = rayOri + rayDir * rayLen; if ( abs( dist ) < 1E-3 ) { break; } + if ( rayLen > cameraNearFar.y ) { break; } } if ( 0.01 < dist ) { discard; } - vec3 normal = normalFunc( rayPos, 1E-4 ); + vec3 normal = normalFunc( rayPos, 1E-2 ); vec4 color = vec4( 0.4, 0.7, 0.9, 1.0 ); vec4 projPos = projectionMatrix * viewMatrix * vec4( rayPos, 1.0 ); // terrible @@ -87,7 +121,7 @@ void main() { fragPosition = vec4( rayPos, depth ); fragNormal = vec4( normal, 1.0 ); fragColor = color; - fragWTF = vec4( vec3( 0.2, 0.9, 0.0 ), MTL_PBR ); + fragWTF = vec4( vec3( 0.9, 0.2, 0.0 ), MTL_PBR ); #endif #ifdef SHADOW diff --git a/src/shaders/sphere-particles-render.vert b/src/shaders/sphere-particles-render.vert index 46d76bc..74cdd4d 100644 --- a/src/shaders/sphere-particles-render.vert +++ b/src/shaders/sphere-particles-render.vert @@ -79,7 +79,7 @@ void main() { // == compute size =============================================================================== vPosition = vec4( tex0.xyz, 1.0 ); - float size = vDice.x * 0.08; + float size = vDice.x * 0.05; size *= sin( PI * saturate( vLife ) ); vec3 shape = position * size;