Forum
    • Categories
    • Register
    • Login

    Browsable Snippet: [Clocksynced Arpeggiator]

    Scheduled Pinned Locked Moved Presets / Scripts / Ideas
    14 Posts 7 Posters 1.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • CyberGenC
      CyberGen @CyberGen
      last edited by CyberGen

      @CyberGen said in Browsable Snippet: [Clocksynced Arpeggiator]:

      Found one solution to this question:

      Regarding the octave range, is it possible to make it go negative?

      • First, customize the min, max and middlePosition for the octave knob properties:
       // The number of octaves. This will create octaved copies of the currently held notes
       const var numOctaves = Content.addKnob("Octaves", X_OFFSET + 0, Y_OFFSET + 60);
       numOctaves.set("min", -4);
       numOctaves.set("max", 4);
       numOctaves.set("middlePosition", 0);
       numOctaves.set("stepSize", 1);
      
      • Then make changes to the rebuildSortedList function to:
        Calculate absolute value of the octave range knob.
        Add if statement to discern upwards from downwards transposition.
       
       inline function rebuildSortedList()
       {
       	// Clear the sorted list
       	sortedList.clearQuick();
       
       	// Sort the notes before stacking them up in the octaves
       	activeNotes.sort();
       
       	// for each octave, insert the sorted list into the note array
       	for(i = 0 ; i < Math.abs(numOctaves.getValue()) + 1; i++)
       	{	
      		for(s in activeNotes)
       		{
       			// Copy all relevant properties (currently we don't)
       			// use the velocity property at all, but that can be
       			// used for further customization
       			if (numOctaves.getValue() >= 0) scratch.noteNumber = s.noteNumber + i * 12;
       			else scratch.noteNumber = s.noteNumber + i * -12;
       			scratch.id = s.id;
       			scratch.velocity = s.velocity;
       			sortedList.insert(scratch);
       		}
      	}
       };
      
      1 Reply Last reply Reply Quote 0
      • ulrikU
        ulrik @M_Holloway
        last edited by

        @M_Holloway said in Browsable Snippet: [Clocksynced Arpeggiator]:

        Is the reason you can only have one Tempo value because you can only have one transport handler? Is there any possible way to enable all parameters to be set on a per instance basis?

        I think you can have several arps running in different tempos with Christophs "Clocksynced Arpeggiator" if you have them set per/voice source.
        I haven't tried this but I managed to do it in this experiment where I built an arp using the Transport Handlers setEnableGrid() function

        Take a look in the snippet and maybe you can find a way to do it in your project
        Remember this is only a test and I know nothing about the performance or any complications that can come from it, but so far so good.

        VIDEO

        HiseSnippet 5024.3oc6c07baibkmz1zyPLalJIURp4TpdTkYVRKZIBRJJY63nussrkL4XRqY7NwUJHhljvBDfF.TVzSTsmx+Q49tG2C6gs1+BxdYq83bbOs69dc2.nAIHErj+Ja.mQjn+926i985tQ+looicGpqqsSlr4aOdHMS1+tbsFa40e69ZFVY1aGLisG45YOfroyvLaMdnlqKUOS1rW89XMxl+ZYXe9w02RyTypCMLqLYNz1nCceiAFdg41biGYXZdOMcZaiAR0t1F60w1ZaaS6Q.ZtZtxYFp04XsdzGqgU6J4xj856pa3Y6zxSyi5lI601xVebq91uxhW+CMbMNxjhITyzB5Hd12y1TGQL9bls6aXp2zmpcy.cZyPdvU47feQtCLzMBxOjW7SYEPBagL+H6UhBuqFAdpxvqrD7hARYkfz03P5mkqUGGigdgkf34yxsmkG0oqFv1kgButYx9OmaaanBVdKMP6X58bfDAMnP8xkKQfuJdmtir53YXaQrsdrsGsgUghJ+fRdkyTHSVT2twVFNLN1llTmXKFkzNyqgErFM3HpSIxIZlinAUDH+n7zbylmJKx6voZoJZasmkgWigTQ5o45YDrJ3omt2NZdZnfPjGTugTGOCDBY2gdBnUyEK4ysC08XO6gfd8TxLPawVejolWTUHbdin.fGDQtgBGKWCuwxyqlTu5ZISuJTsOVpMgv8mkqogWm9wi2qDCdAt16Z7Jlk9Sxsa2tzNdgf8Z4t22M2oju0gxmygxmkqkgEkY3jAjeEKM4a0NgRtO0h5fLU04X87eKoVOGlXqmM53ACeaGMK2g1tQ53VzAFsssPNRXlO0ELPPe4SPorb9aaq4DaQ+352CHxXaSKMuQNL0kMGXOxxKh5wUm2T5YZEO5rFIY37EVYu16Jy6WKYlhNGuOxl5yMOS8eRNv+KIpNziGMnkogN0oI3oDYkYuJx74F+uRwhAV+codOfZzquWA05f8dEkkugR918MbIZPmB+.5NcM5MxgpS5Z6PF4ZX0i7.CWJgdJzC.EP7nCFZqj2nKYr8n+dGJwx1STQu9ZdXtj9nBumMwgNvFepOkz0vw0irBzPnWNk5RLrHO9v8ssO9oCa44fM+qCx.HH.QNZicUxqYoSzLcsI.3Ise.RC6ZoAb366XnWvyYDsDQcsh2A5PWOplNwtKGiDv6FHmHUppbikUVd47.PoL+JtDSXXFML+Mm5iBvA.bNAxtK46WXskUWnDYg57epw+oJ+mJ3OKnxSntbkcD+tPIE3mZ9Iay+sFO60DYWSj8Z7rUqKxeMQ9p04ET0uaUqKJopX.p6OBU8Gh507Ko8BOGjyQoJj8BjzZfa+RjZkHUKQp.LQ3gkgT.PKoTc40vmpheUCSpVGej80ZX5pXKVVk+ccLm571x9tJqKTqv5jZrughUTW9V0Q3.Bi6F4Cwko+hqzinC9bI2cxO9jvi2gULYWqdfUmk53PgogaZo+DZOCP96DNQ.qXATK2m3eyZoZXK2+MqkUJFKI1wFTJsfogtSScgjWq8aBij+DVMc8vNuvBrhAILrfMjvjlVGtxDX0cCdXqFONn13hnVnOaZ+B2lTqbIH4.CK34aBBKLg1oPB9y.4LrkwqoPFpKwppNsq1HSuCwINPtkWprxYHAx58kbncoNssYzMW1TTRca9DygADyJIgZN7bnF0PZQsxpIhXpWKfZNbJp4vInl8mO0re.0nVNIjy9mC4TVhblfX.YfZrhlUEDy9SQL66SLfdolooz7MWA8AMoEZUfIWKwEdk3TcnEjV.HbixDdjk8QEVfU.P9UTSlton9QI+UXz7qLz85yDhRbiJgbipURjrUsturU.8gTv6UDnus8fir2x9T.NXg9vOIZihFDE+UiC+SBq.UNVWf8egEL.GVH2KpamkdgsgUgE98VKTThLnubDEVf3LoDQ49DyZIgXBZyEfdPluDatAr929vJBh.usF44YCjhnPeropl.vEzl2brUlqXX3df8.XDzbFCY1EVLAUFw6aCNchEtXI.VqVKY5z7p+tBl2GmwFONYE4CzpI.ohF7NEp39RhyRQPg9.tdRALuQIwjgsNB1Edrsy.MSvHgdSpSGDu8vNHFpZkHpvrcLEqYNQQ9PWs7JIPA1uMI1X2Mkr1w8PanqaRaZCawF1zCaV2JuYdq4TFeSCwqDwKCnrZ0Sl5teCdWoE01wnWu4ZNQtF9.OIp+Qa2ac7O0R+hr5ORGv+6Qni2XVFXz0DFWGcWxQBg3LZjgkIdlCRmsFWP4eBaA.Q9P1NlN1UG1B6RcLoZNE.hfk0q5SsLAqZfepfBNCDP972dTus86t.EhhHaWLZaKn0BSfBTJOCxykuDijSdrkRLWpC2JaAWyg3dNwk4TTIedHI22KekP7ymXA+VMOxjuzkYPkxfI1sAfjHzQDWlVcBIQgt5bIRC2v4JrbmGM3q7OCpH53MK53tDSlqyjREn+w4SBcIE9RQx7P53TKyC+KVuITOMoV875iBVtz9XTVGsNrBC6xgib6W3XrKOaNLJlO8YvkjnmXXQ.c4XfmSQTkYEGZOhOHv0aCKt1OqPrJU.67RfzkEIkDyLSN7r6fpug0Zno1XXEjryPQtubEEDqDk3wOjPGu9ZVf+FGxL1kZ6GL4lga62xGvaIJpT3GVSqwVcN.bHW.R1jsmjcOE1yrklo+APUoJdzSrCqfvOVI9AHE8HmHhitgxN7Gck7EfoPNdT.O3A6vKleDTShFvjqEgSSfR.EXZD00vwzgNzg5BBZ7PdX.PAzu1KxQaAPge1VSAHARPMM7HxTxiH2B2kgmMoCLd8P7.CCjTcsRjvSxhAbKrOUxO2CA6nw7yPyGArSQSI+JDoSQyquMPPhiK6FKqLiyHqR03L5R5A0Pf0fopm2TYrW2l0lBcP8Ufzb5Ug8c0fIxb683zIlayBEI+w+HL8NX9GeFK4q+ZxWF+bYb9pC0aji0cPoB1mxp0Rcfg6Nzt.B0KDnfWTXAIHCPiMtVCbfJj04yjH2lfrJzHSjpFZ74Lef7kIbHEyPi1g3DRVAkXi2yYcL1y.8qYRrNApfjRv2y2nXHi7lpXS3UV3sjuwbo5bmv9a68ar8i3rvPjcW1PCTNqTnCXBRfCDjFMn.sxOsvpir7bcgUmaKMD3747Lk9A3gzaGpz7JCSSXFDsyHXxJJsQyHr2BIXJXa1nCsBZMrYTvF6XhtwI7iRGmEfJ+AmeKof0IEIKSviSjTf8sgXp.dF1Z37a9j47GQ6nMxkeDzydhQzCLF5C7rlgYsPQJ4goTLYNmS7U3fStA4V0KhbwxBgdnz.3UGn40eotl11NhFcCNJKtLh6uhKzD9xf4iPmCdatIaEAcM0PyzhUSxc0ECqGm0D3If4XKXlR9PzPeI.FnU96uuf+jOYGo9Ehc+d.enMXkq.i1VXavNk9BX2+CQcrB8LaPYYKFMCzoE6UegKQW79iUKQNlrH+XMwAfehYLpXSuBHenn3nllYokYfMeddWawe4y6PAEYp9Vi28Dv58dvrP8R9djvNRavPvw68rc9lQZfoVms.mTtbAWM3O9AjE+HVTLdruPFDaumRLe95H3jtf16I1a9LnSVGunZfnWLB7gfMFrNf2w9TJvDYuxU7c7MA4c.LUxnEEbFqGCMdiZ.Wi0ggLuyTDecFWvS4ZWLhfSB3Qf.h0umubiuBeVXi742IrVVfxgeMKvppfrln1JuuTKdOqUnLOcB4YC9ZDbF1MIGOgRkr.+RKuuQvwiHCoIUBjD+bI2hglf5zmh1ekLDguSPvv8IP6QigL6Rd1IvtD2mvu6tA1IQqeL09apVrXfwjXVGKjqzxXYfEwKKODrm4ujxFVRq.gaDOLiIWkC6Ua5JLxMwFKmZkMxFKY9pYKmQ1bJtTZIKghJA6mDlADtkBLkKrHuHNhQmL98.TkWgR6YY+U3Vg4KagmNbgaibmif0ZerPnwKYGvXNuLbDcnmPcb4d+iq1b64ynqd5PPMMr+XjnA.W06PLH+VoY32DyYwE4JuHMwoalwimyGZVtQQC1dPAtilWArzYAQD..N7o3KEJllkjPProaGjWPc6HghHN9jFwik7WbInaJaL27MXHCFv.EsKCIaxVHFrzroX8kmj0Gx3+g.6YFfSfJ7EDA1SH.DrjcSFu.R1C3DR2J9NCmnkKV44xtzXNxPCX155uOFuy7cB.Co3xMTgXpA6AEWZku2gv9k76HU48Lic9BN67EvXWA9wW8ULn1CKHiSt8FrnyUlMOy.oxxOnxx4HIOKz0fcvqbP3cPrs.d178eHdOBQW0Q3dOLbsn8zPO13t0lpt.LKC6XisquaG5wUYZkC1tWzNxMtALTcY9aF.OYKI.sNAWCTACbwh2fnVAP.t9uvLtSfxmEf.0JqgqjvBWEQYAaUvJ3hSqfUzfabVxDmnVXw7MDgnisxAfg5uH.h23gT2Idep3cthw+EdIKwb6VR3hsjr+wRxtoJEwcQoHVxKoD0tZoolyhuY8fE.D4UAGAWS7lfmw8zkcvDScrKBkjCnttZ8nKYzyx1gxVfLaoSEirkQKTv4WUnOvt+wrqjavguhm5YzSAXhiugKgrJhB4HG1pUj8cF+pGke0LSr95oV1n+g0L0pFOmwXBJn3r5W+MHyVdNxLFMnoCEuzcOBnK9djUYaEOldji1vytcRXlGWJqGrP9HGARA9Z0YJ1y4VWOWIcxjjmqXjaRbRAYXt2QhOOWVTYjEMiyvHghhy9.cMyu9aqqY94bShCtx4Y+IBDBPwicKP+4haAZ3cMJigNdMPYadNCi.BuVsKsAd64xj86yUu1Rua9vQaxf3gw.wLYhBwVasI78d6.e8hlvWMwzVO.R2sOl9gSj9.L8qePz5yZ+IrzP+8l.w8iAhkj4hlOyr1sZWckuY0w6C+SC7wEa16k2esseRuWNtgmd6Gr3qghVcrwVe6nFMd3QqcquCZ0pauqm9qafsZQVZimY9rSa.Pr6hxbwqxg3mGAhB3wNV2IgW4Mlpw+TQi8uGP9MGO43ootj0bkb99flrG9w0mI54uZdV6ymSLOdZMfjz7qmCMNbwZ6mjichHuAMVhq+Y4BNNkKVG.DNeYHWLv+o43V1uXs9yyI6BMl93hDTKnYIwqDExNQFlNEuF533M1+A9Ur.Z+0KHfx.VnOb8+q+W9mAZmhI+BeyDRW5BYJv+RuLg9X.9TRjUon3qx7vWV+jb78ONW70bi3vWHH1CWR.NjY4Bz.X+IIxRUTXqGKrmDXcYe9OiCDWYBPnbt1hXM6eWVtFG8J3bWIJmiHRxtcMXFmJxHjFpLWlKyx2jJhy01WT3VwGK4x9EyGG+54hiRavVldlrmjaskUUpC+UC9qJ7WE3OU1eU1A+RAu++3CswmTvq8O9.lZME1s8GepM6QE1k7m8Xa1yJr61O6w1rmYe0NhH6SSlI7nLhlgLh7IiQHH3mlis8HkmNTA2.iRvthTB1RjR39gTB2Ljh7NgThtMnHzy0SfCknDiUxnfjMHB2NrQncVI072ZifuyonCwu9MeHTRjKrnCyukYVS91DFpU+WV2cT2tFmhKS8qxfWhRLB1h6RTdwmA+WVOYTPnOzn32XN3++d84XJ5+IpSlqkbSQISpF30lg2+02IZNS3aO5HkTEnOdiO0XCLtqzbpPSGL0YfuIucsNgZBqcgg2eNrXElBmetQCQtCrsrG121xni7RIdB0CYnTGY5HVhaSOOzUbPN+hMdB0jpIGOk+lM12vhp4b.ahyr4KWMYapLYwCdrxtuHGGtD1cv9ipXL9S3vVI2gfPpCN5Hf+kAIIAji54i1m5RaqwfSnHcOP763gMJLucncLNhZFUvLc.JegELuUBh5q92lAQ8SrGg29tCzfYhnAMLVVsGANZv2lqE0z0eYphzk8sp1hZoyRfV0EEp5uvZrPU+BunApckORBTaX6CeLEn1ILfma.yCOwf9pyw990939+rajfXwtxaPrX+uTXNwhcZDJmFgxoQnbZDJmFgxoQnbZDJmFgxoQnbZDJmFgxoQnbZDJmFgxoQnbZDJmFgxoQn7++OBkA98zSLC3Whf9wvsoHnawYkQhVW1rlvxiD1PS1M7wcptGZDfxzPkNMToSCU5zPkNMToSCU5zPkNMToSCU5zPkNMToSCU5zPkNMToSkkogJcZnRmFpzogJcZnRmFpzu29+HWW1vidUQf89mxcq5K8g9ykMPp+w+IIh4jiWr0Vcrdw2t2KF7xUOt4So0e1Vu5wsGs2qWzVaPyAmNhtUmU5s8Cew9s6X0rgcs9acr6yZ7v1O5jCratoYki25Uc+FsGty20XM6li6W1ZqZs1avCewK7bF1Dzpe4Vad+MG+vWeqlZuDZuq2V6sR0ags+gNMurgbcDIyAi2eaVHVu51.e5jvPptNFB0d7zHKTTd6pqrIODraAM5UM9GLe18VzBp5pFu796dZCnk6IGB1wl14965s5X81UOswkI3rW6xEb1pW5fyNyF+sXvYuw+wq+yqmFb1mevO+AH3rku+BSLQI.2e1e8Dz1Igb9zOTAycR.WZPdmFj2oA4cZPdmFj2oA48kMHuu3QY2ENvtqjFX2+UcfcWIMvtSCr62NA186iwXfVGG6+PG9l6vIqeJKGftszXAzctCvzD0o2NG3Cy3OzoSztZpFV4h1vpWzFV6h1vUtnMr9EsgqdQa3ZmeCwfIeyQd1C3SYyj4fl6x19c1r7a9Fa1Ql+OPAy6jD
        

        Hise Develop branch
        MacOs 15.6.1, Xcode 16.2
        http://musikboden.se

        M_HollowayM 1 Reply Last reply Reply Quote 2
        • M_HollowayM
          M_Holloway @ulrik
          last edited by

          @ulrik Thanks for this, definitely a pointer in the right direction. I'll have a proper play around with it tomorrow :)

          1 Reply Last reply Reply Quote 0
          • OrvillainO
            Orvillain
            last edited by

            Heya!

            I modified the clocksynced arpeggiator example slightly for my own needs.

            But I am wondering - what advantage does it have over just using the Arpeggiator midi processor???

            Musician - Instrument Designer - Sonic Architect - Creative Product Owner
            Crafting sound at every level. From strings to signal paths, samples to systems.

            DanHD 1 Reply Last reply Reply Quote 0
            • DanHD
              DanH @Orvillain
              last edited by

              @Orvillain I couldn't get this working nicely - the sliderpacks would never recall the settings properly. Does it work ok your end?

              DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
              https://dhplugins.com/ | https://dcbreaks.com/
              London, UK

              OrvillainO 1 Reply Last reply Reply Quote 0
              • OrvillainO
                Orvillain @DanH
                last edited by

                @DanH said in Browsable Snippet: [Clocksynced Arpeggiator]:

                @Orvillain I couldn't get this working nicely - the sliderpacks would never recall the settings properly. Does it work ok your end?

                I'm not using slider packs. I'm using custom drawn script panels, and I save the step data into the panel value field for preset store/recall.

                I don't really like slider packs, and I try to avoid them at all costs. Coz they're ugly and mean.

                Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                Crafting sound at every level. From strings to signal paths, samples to systems.

                DanHD HISEnbergH 2 Replies Last reply Reply Quote 0
                • DanHD
                  DanH @Orvillain
                  last edited by

                  @Orvillain Yes I agree.

                  DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                  https://dhplugins.com/ | https://dcbreaks.com/
                  London, UK

                  1 Reply Last reply Reply Quote 0
                  • HISEnbergH
                    HISEnberg @Orvillain
                    last edited by

                    @Orvillain Indeed, as far as UI components go the sliderpack is a bit of an ugly duck. It's much nicer with the new CSS facelift:

                    https://docs.hise.dev/ui-components/plugin-components/sliderpack.html

                    Just curious do you have an example of a using a panel to control an arpeggiator?

                    Sonic Architect && Software Mercenary

                    OrvillainO 1 Reply Last reply Reply Quote 0
                    • OrvillainO
                      Orvillain @HISEnberg
                      last edited by

                      @HISEnberg said in Browsable Snippet: [Clocksynced Arpeggiator]:

                      Just curious do you have an example of a using a panel to control an arpeggiator?

                      I'll have to put one together, because the one I have is the clients.

                      But basically I did a piano roll kind of interface, where I can specify pitch and length, in a grid. Then an extra velocity lane below. I draw a grid according to the steps count, centre lane across the middle, +12 and -12 range below. So it's a load of squares in a grid. Each cell can be clicked on and off, and when you click it off, you can drag the right-most edge to change the size of the note.

                      It's all pretty straight forward graphics context drawing to be honest; tied in with Christoph's arp snippet.

                      Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                      Crafting sound at every level. From strings to signal paths, samples to systems.

                      HISEnbergH 1 Reply Last reply Reply Quote 1
                      • HISEnbergH
                        HISEnberg @Orvillain
                        last edited by

                        @Orvillain All good it was simple enough! I will have to run some experiments with Chritsoph's snippet as well.

                        If I recall correctly, the reasoning behind Christoph's example was because there was no free-time (milliseconds) setting for the Arpeggiator midi processor. Sounds counter-intuitive given that the snippet is "Clocksynced" but I believe it was so users can create their own Arps as they see fit.

                        For anyone interested, here is a panel controlling the Arpeggiators Sliderpacks:

                        HiseSnippet 3005.3oc4ZrsbaabEz1HMVtNwN0yzYZdYidvCYLCMI0EKaEmn6Vp1Rh0T1IY7n5ADXA4VChkA.zRrI5eqeJc5WP9CZOmcwkE2nnniepvyHSr6dtec2Ec73lTeetmVkENYxHpVk+nd2ItAC1dfAyU6fczpnquo2HsslLxv2mZoUox0eFNUkadCMwyu88aY3X3ZRSFRS60blI8ErgrfjQ6rwyYNN6YXQOgMTY0KuwAlb2s4N7w.abc8lZiLLemQe5QF3xtlt19F9Czp705qtVulO5w1qY2lR60y7wFVMWgRMW0nWuG0znUaKa5ZVqrzRZU9jcsXAbutAFATesJ2XKt0jtC3m4JIvqY9rdNT7kVZcAJKGdOtiEJh3nZaOf4X0IR+3qAXoSh155Rs08zOjYwhGOQqcGwDjDHTUfUtVZ165oXuVprWSE1q.V5ZJrzMjrzc06Z5wFEjLCxO2R+.2.pmsAXmTYE4Z0t1+4K02lCqvMnwPi2Q2yCdIFhpK2rYcxJMaVa8EV.rU9Aj2a3Q.+BZ+9LCPRZQdJQ32znOMHkJo5hpKaQ.CoPfJbccXVTuNfweJPq.dGCWpCR4HNGvw17gi3tvKUWTNcFXRngO.3aJFxjEszh0pu.ormKC5VePP2dwZmVBuWtPmh3.zO7gjmQCT.kXYDXP389GTy.eRZiwQ7.5N3zOEeKsIoJX7AlNM.ul5vMYASJEnVYs2uf51OXPoqusjHHaKLeD.XaV+wdFALtqJ0O5UG91tmramt.dZspJUvQe6ObvNmrOLU6l4lZ+cO3Y6eBL2pol6kG+CISsVto51YysO3nmgTqoTudfKKfY3v9mTxHAuJzri73indALJnbkdfMvwa3NdX2.5HzqKl0WO0J7go+AlUv.LlHVFxul8or9CBhVjjkSuJywddf2.ROXYeSqzyNf+dpG0pjY8oNfmA0pigGj9ER..qITfwTzdDeyAzgzPOnzjEmGEvE9EgWeOvh12iO105Ijlmu2dsLv+IiHPA4Xaa4DKIdTlvUNdyl11qsVx36ibtbpUDOxoF4XLY.0HjJ11KCOxYBnmGDMJ9HG0ie1KL5Qc7kSsl3YgKVOzsKRty35oJoihVjHIh.o+BwEF5IjEwfnEqSFx.g3aZuL7KiyeBA+g+XaaF76EAgYQxE0SCWTrTDrMCgrU6Go.JBGIMfxPpbfkFnENUJdcgjARu0DG0HQymBIPLbb3msM7Wz54CXcwscXvupSDZex8I63Y.Ijc6i4WTgjOx3mGihdf2XZ5rtX79wgob.ElRpl5YSiTOcVhSirJL2.xK4iCXtTEpJFOb3p1icMQaU090hbAQhaAjLX.yWX5VWLr3O8aXC8iroiSUqPW2FIdr0TVXjWAP+y7EiXCwAUA2HQrA5OQ9VxRhe7fGTKz7Dm3G4gIvJwk80jpJ4YdfZlkPJFAAyeSPXdO8kBpHI1SIV4iOUfK9G.GivkHNwyzG0ZxdsppRhuWDJz1.+GQFWzV7nfdoB6k.4q9FvMaRcoZExfKRaUsVckjnmNE9xAi9JjkhsDwwnonOrv83XYtM8fLufqVqz7mkmwYm.w7.dRBQeCfqSafAK0IuYEfuA8N7eqBhP6lkwlfS9YhbN9BiMJnnALdIBO.eYJTvEP7quELOQo4kCE6Mj1iHxFetnRCvNBvAeCKkh.OfnJaQffyiV.LL5borzFDFE.idQVl3zznH0Kg8FDVs.PuyXJw1iOLa6B43BWt2PQkOqWK.RThPcQLaB3dsC0FhKsppD9KLF0pklQ9kbMIgDAr.QXOKBPeNwbBSPF0TD7BO.BFyjwWH+xyKOUio92HQTCH6ZMxCIUCey37TyLK37PCnOWOC29zpYlrNl1tUFjbwTsbhx2EDfq5nHKXiZfvnpvpt4sUROYbkpcGb+6SlRdmKyFVJGHJjLyxpZ5gXTlQUojYJJ.o1zc7k1jdFd4TEYsaeGo4L4tB3Jtyrr33qSEStdYvmKvF9iJffGWLUxDyGOdAd24Fn7h.o8TbCqDrp3o.ebE8dH6OG9vbOHWSolbj9KKdxYywr8or44igJjhPN5dSghw5.r6wbDMeInlExXhxP65BMJQaXwGCam+Dd2.OnuIYv1CvNzZBkLir1Yyh2ZkSuDgY6vD2Q8+RXtVLSbmxSI9VYuAWpacgZkHpUn6PrI4MX5wVg9wKkRzvQRWjBFY4SqmqdWhyyEEViVFaYw7QVRTQ1P3JShy2uP55QId5Plszo59tmlJLOes5vEWVEIH1Im5n7pVoncMLJKekdQ4XzKBnVw9QprT8nL0sANoMhwZhjGYaCRtmf0mszsx8fgOkmu8MY5ADL6q0TZ2WB9+GsR1trtZgawgRwpCHh4pRRo6yEKbQ3IhbHerOkXFtIGhx9IDyDs6mjMTPeODxLSap.czDqtgItsIpE4W+Uhb.PT5mayA.2H8JEMFa3ZIRQkZm.x8YHZdv1gy8Bw+DrYjR2LQlcSfwZ+HfEInmKzX4WQZxHg4g46JsnVlQ4FYTLNJpuAXOQ3O8ihuheQsQ4RC5rJ7nH.7dIY3E.kKZBf6mtR6ASUu7SwZtIflqp.WX44BVd9t9Z0nIBjDOOLUduLv+A2wXtBDbWHCQ.IfmjRjHP2ByYyxBQjF2Wdb+uf5HeOOyTqxY44WMBhnnScGHenatHWdYe0cSTOV.KnBmxwGGCpbrMCNv0hd9zQwTZGRjLwiNBOPipEj6pfLLCwjUuZTtbJVEbDeSiLWj5nNjGyiE3AHx8ESyuJIKFFH+UoxxU3gd7+sItRq9QHW+plZ6hDrScfhUyHsTM0WbIF8npgcm3ZRNiA5Hk6ZgzA5oBKBt.y0AhyHQ0BIiEAnamzFobO3QEGK+bnSzCgqQgitHgSjgSiD2PCVOTr3bbA2MITb6AXJMqplQWCRcYySY4ozzSbBNL4w2vjmeGSbdMRXTizYmJ6WwMvi6D2cPAr.hYEVDOjyicqVCP4MARRxNkscgyERHGpWgSi2dp2z.rpbCNQZgnEpU4Fou1Q8xu1Q0aE0TdQSJKj6h28wwintkcWoZg2NkFrfPtBHef3BJ+hvKnLQ6owrzpback6tRSv5.KVAugXzYRqxWp2Z0FGN4Ec2byFYdjz6JRj1IDYgzD4usyO8yaAD4wOemFMVZbmFMrevVaNWDYoKURd8eEHxOxQh7NjHu5.r9Dn3pDpC6DeP8vX6PeOyjJuo2apuC0+cA7Q.CEeEfZU9CWA074pWZ+D0WNCyZlLvjMFHZYIYji1XTjA+..uelt5M0h5pXF5SuBljxXni13CjgRHhnNcji67vkKUJW92+HvksKhKuczk7iY1DL3mpKyxUFu8ubtTd6eOZiz29iVk+hdY29il75dPGagmc9uMhaqJZhOBgLBapOIhqOyeRDsl5mDgRlm+Tb750kZsOKTqs03f.tqPs8Y5RtHbnvf0DEn1Lfiaq+RJTe3JiBowVfhOW+HYaEgikAI2YiYAI2Ruq3fv.dY93h6HPP22wJgM9sueVTG.V3dAOmNw+CQi.ByHJ054t7dYQv8yqMtSHBfHkd7s3mKPADJSAWTWSZ7vyt.ovJ2V+Xy.i2SeIVie9jlap2cvXaaG574gcK8ccMvi9gQmlHL8xR2CTGCYm.IRTl3iTc16oGcmtEQqeeK29E5xqK9JHUYq4NStS2UG6xCxwJOhA9rDdTHh9y5GONXz3femP2c0OrytPdSuHDlyGaFiW9bDQ65ZUBZZtwr3p9I56ycrJvMO+Wp1czOjaM1AKFn9gygedggS.s0lpJA9Eo45CdUpZoe29Z5lUV7t5cXAlCJlGuVA7H9g58QfGiqytqsM3Akvf2Peue7iyGbnl7asnOraaOFzognrEerGjhU5zfaqnx0vrZx2aFEE1k5ZId4+BOgS1Jp6AbxVQSpMzvzi+VSouF9UN9ohQ.dxU7EgdS8Cw2Isx6kMjYwdqoYZTkCv1yKfKMu.t77B3JyKfqNu.9n4Ev0tb.wuLzMGGvGJCazzfDNhc6Tohr.mvaU6+A3uN1fD
                        

                        Sonic Architect && Software Mercenary

                        1 Reply Last reply Reply Quote 1
                        • First post
                          Last post

                        17

                        Online

                        2.1k

                        Users

                        13.2k

                        Topics

                        114.9k

                        Posts