HISE Logo Forum
    • Categories
    • Register
    • Login

    How to build SNEX Playground?

    Scheduled Pinned Locked Moved General Questions
    38 Posts 4 Posters 1.7k 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.
    • CasmatC
      Casmat @ustk
      last edited by

      @ustk Thanks! Will definitely take a look!

      i make music

      1 Reply Last reply Reply Quote 0
      • CasmatC
        Casmat @ustk
        last edited by Casmat

        @ustk Think I'm ready to try again with the saturator, did some research on the topics and I feel much more confident going forward! Seriously, thank you haha! Instead of going for that other formula, i found a more simpler cubic formula: https://www.hackaudio.com/digital-signal-processing/distortion-effects/soft-clipping/

        So with the formula, would the equation in snex look something like this?

        out = in - a * (1.0 / 3.0) * Math.pow(in, 3);
        

        Edit: All the filtering/oversampling should be done with other nodes in scriptnode, right? or is it within the snex shaper node itself?

        HiseSnippet 1321.3oc2X0sSbaDEdLvPxRRpZhRT6k9hdAQJEsKMMsR8h.rvlrpYAKLkj6PSrmkczNdFKOiA1V066iUeD5iPeDxaP643wK1FVQgsoIsEjf87yLy24+CDjoi3FiNi305fIobh2cogST1QcGwDJR+sIdeBc.yX4Y9NVaMIkYL7Xhm2hu.Y30ZIRwWu64awjLUDuhEgbnVDwekHQXq3Frw2KjxdrX9AhjZZ+zM5GoUc0RcNfmEosIornwri46xP0VfR7VdmXgUmEZYVtAzYKc7jvQ5SUN8OTXDuUxQhNjP3hbrIcGIjwASsUCg3QCpr7EcV9CoCDwhy4W4A9zBA9UmntOvagqBRctAPxqFjVxAo6SCixDo1JIHdtCsuBBHCYfqtNTb5R79UZWMnfxtVBaLuWFPb9AV8Ysa+De3GO96FlqhrBsxWq1Ua46oV8wq7SqzZkedE+KJZ3vYJCelLsTxyloXL5lcUGbUUdxa4YOw+DlLmethf42zmt70ymF4r5ZJpU8UB6do7R5dZYL5qvOe4H.ozsAe5G5uMyxvfRIOPuTdlUfvwaa9IPVsKD0htM2L1pSg75KE+fLGcbtjYalNg0MkB.+QiXHFnTFgcR85paPNV6qLG65Bw6SCD1nQyFiKLCLBdp+IvXYk48n6LbHOxVAvkn8dy7VF19FWFtRYYH7l3ie2RR+duoyLK.+EZUxdZFOkkwOPGHYSV0vRRk78AL9D+2J0QiCE+H+xUHoNHrEpwpQiXJEWZlmBokeO0bhruN2JTGOfYyDmAsO2MOIDZSGw6VhNfm2BXMjitMRi4EgbUbAwe.eUJrCR6UJryTg0J+1kaOUmMtHbT9Yh2sb9dSgS9ngm0groTpOsqNIUTlk5LJdlof3Vz1qAeSByMPGf38TgBIuX9DZjEGNPKmjNRqDQX7ycUSMoMSz4.ZJsqWxLGvDRL+2agc0wvsrbOVD3bmDvrivZFr+CjfxyVK57D0F3sJWoHKDhCArLX1Fza133gW7zAfN+GfoDzoTL9aQTtyqTf.J9D2iZT7yNxLhAcnHMvzC.LkwWqt754q+UuVsldt5BjBp5W.e1VztR3l5GSNDS5tHNvqBR0OqrOJ8.FjngYRgRQLOK.lriTalGKz8DNQvuKbEDx1BSJTurUNT26pJavAgfJle1zTmcfr+XnydwigXmTywhPeJEDzFHTk.tp40.1YWf26ddnkmhUm00KbL+TmCttln2fRYIVxkt3F3fbk9y6R6aNDkFwjSuHHyaKsdbBqnV3u8ToG4DdG5qYmvKVyqHG8QEzC0YI9ufCou3rfNWwhd+10cQuzq8hd6EYAHbPFSYR0Fdm527EjsdcYays4plp6X0PKz75AlWM8t8FSYtdclALUiKCnabSCvleSI+8muiBypC4f0DumIBLV1ExMBxkF9qEw1QcpevJ1qWm8KYYwPbIpwf0Ea1CeoqWO7l6XTS+YLxa4OBKC+9YQkOh6R0XQgVSwXn.65si5DtDJMKv3CfZwgrbocJ2l0VCzJ8zQPUQ884vf1iOl2rQyrLnMsVnWZEmGtw9bImYpUu8Ea7JXrDKaPwPi4xWby+aWlY75yoN35iMD7+u6NvK9+5cfu9UeP+v+cGE+LJzWdc+hPo+GmX4GhUm+P7FIrnL8QQt+hCrn+1Eb.6VU7+moEc.R62gbha6EJt+MIAFWbTTDlu9kvzmYel0miy7UywYd5bbludNNyyliy7MywY91q7L3j5Mys5DWNOvHXG2JxdtMWJR+I+I5asV1C
        

        Thanks!

        i make music

        Christoph HartC 1 Reply Last reply Reply Quote 0
        • Christoph HartC
          Christoph Hart @Casmat
          last edited by Christoph Hart

          @Casmat for these simple one liners you can also use the math.expr node, just rename your variables to input and value and you can use the single parameter as drive parameter:

          output = input - value * (1.0f / 3.0f) * Math.pow(input, 3.0f);
          

          and yes, the filtering and oversampling can be done with dedicated nodes.

          CasmatC 2 Replies Last reply Reply Quote 0
          • CasmatC
            Casmat @Christoph Hart
            last edited by

            @Christoph-Hart ooh! That's definitely useful! Thanks Christoph!

            i make music

            1 Reply Last reply Reply Quote 0
            • CasmatC
              Casmat @Christoph Hart
              last edited by

              @Christoph-Hart Oops tried it, but it seems to not make a distorting sound, am I supposed to do more than adding the math.expr node?

              HiseSnippet 1591.3oc0X0sTaaDEdkMKDbn+jNIS6zqzjoWP5PnVNo.o4hvuNgIwfGDgvMcxrHs1dGj1UizJ.2L499XkGg9HzGg7FPO6tRHIvCAbSosjYB97yt642uywzMV3QSRDwHqo2cXDEYMC1cHWNXsADFGs45HquD2gjHow1FVqNLhjjP8QVV0ethg0zSfz+7wmsJIfv8nErPn8DLO5qXgLYA2tK+RVPPahOcWVXIse7xa5I3qIBDof8TG2DEQ7NjzmtEQoVMLxZxM7YRQrqjHoIfNqJ7G5NPbL2n+drD1AATEgCxEtHCazZCXA9cy80DDxB2svyqa776h6v7YmwuHB70ZA1EmnbLvp1kYRNWCSxpjIMgwjtC10KlEIKjnrmai2jCIjdDHTW1TL5hr9.dMAn.WNeH4PZ6Xf3rCL6BMaNmM7eO3o8R4dRlfaK3aIjzs4y9fFuqwzMdeC6yKpWuQJS8Lwhf.Z7HEqxtwW1AmkmFd.MdN6iHAozyTDb+pwzIuZwTOiWWRQAeSNStcDMitsHvWEqTe9hY.TVXC9zq2bchjnRJY7.8hnwRlxbrVmdDTUaRQSiWmlbnTDo0MLRvU2f0LxrZJSRocffHY796x.ylAVvWgKyxAcR4llgmQ7gCV9Xlub.TvZseMDZ.k0efTQ4WXuFCoA9kzgGHHw9nC5m2DM8j999mptIljFVv8zSO86qxsUFasxR5IxBkyMKcHo1uZgeWCa66Cu1aTl18+EamGOey4T7VmkDEPFtsmjbDcKcxED2iDjP0xek3X3X.qmnIeAyP4zZQM8ZoIRQ3yiIQCXdIUN45zdjz.4JQQTRrBjAjJiSMBWM.vIfqZGHfJ.AMmegmn+YokZt3SZtniVqcE86GP6H7oUtYUuMzqy4z.kon485D5dTOnBrjsb1qABaGPjtxgAm6l5tQdJ377gJ4XYwqzJm+Fb+Ru8BMdOfNdAT..+Q3mBOYUPIE5al.nqpBRfpcmmvjCKiNeMPpZdoHUWUS7N3tLo2fQai0FgMB8a+SXiY36eAdid8frZgANAt89iKXdyqMXdibrf80O9LYj1s22Yjv3+Nt.xLJlFQho6J5BsWylPBiBnP0NcN6CBDdG5x9M5EwYiLlvpJMl0yTlkLNvwS9YZDGZGQpBxqCQFy.DOL.Q3BfLdzrlfDExVMExlgtohVUW3R49ZBEBUlPGEsUlPmbgk.w2hJOVDenNcj8Yj0TlXehNH+1dm3fVIHPbrB5lkUkZbJZbhlXJby4g+gbSSf4H9aycA.a8VNJmTe3thfgQCDblmJ+YtpbWZkPQJWl6WufjrKgEnp+spsE.EAA21DERyvtDEL+cvpoXPAJMdduyJTqXuE0J5pPHOzEfDCovD9DCO0EmCeahefMEpmKoVhptRtIpns.r5IlBSOIJFFQV1ZtMND987JIUJQ+DOPsRSKKnfF8ZpWZRX8D3Y2SUjgrVBy3QoR6GZp5r+Q6YcluYO6ex9Qvud.P2QYBQhimUq3bF9OU2gW9ZmBFDePZ+760pNpTXQ0PlSAVPGFOSsBnmNjSNGuO9LWIMR0aUVO2CoGaBRk0zXAlK3BWSEKAUI3XcNuXF7lI6oj5QBNyUpgVUHNLjnqkGqcSJCGdOivaieCLjVurutF6dZ5dh3P6mSgxOEVtykrt+ebUW2O5JutuYugcg46IQhDXqnR274j0prr0oxTdU0Mrpnkx8ZCtmS4TSNyRZdqk6R3UtLftxM0gUZcs+7YavI.7mKE7F+sS7.mkTo5.tfTXW.81RNkOXA6VkY+BXABHu3UYvX8pXvSb0vfqtiPI8GwHqI+m5qDMwUaJ5mX47+6uWTkg9SmaitL0v5M3GQCf1TsM9M3r0Yy4VsOqifKxGmTTArCEFZ1uOsJrynbnUjRXe3BN2c4cnATRRodueX4WAiXHwczC.FqXw0+ayNx702gMlqsBbv9uSd6FsL6R2ss9UZ21O6163um6MbGJfe9+mL82hAL8V15zs8+946ahUnuIdiPhWr3sdlu4gBv3VZNfey0+09lF2QQa6fNxrEDVsGNJDF67VOOUM8Cg3ynOSqw3LOZLNyiGiy7yiwYVXLNyhiwYV5ROiZh+JoRQno9GXzcC8lnVVlMfzsBn+BToL8JA
              

              i make music

              Christoph HartC 1 Reply Last reply Reply Quote 0
              • Christoph HartC
                Christoph Hart @Casmat
                last edited by

                @Casmat sure it does, it's just subtle. Drive the synth at 0dB and play multiple notes.

                CasmatC 1 Reply Last reply Reply Quote 1
                • CasmatC
                  Casmat @Christoph Hart
                  last edited by

                  @Christoph-Hart thanks Christoph!

                  i make music

                  1 Reply Last reply Reply Quote 0
                  • CasmatC
                    Casmat
                    last edited by Casmat

                    @ustk @d-healey @Christoph-Hart Tried to implement the original musicdsp.org formula, but it seems to be affecting the top half of the wave, I tried doing

                    return out * -1.0f;
                    

                    and it worked for just the bottom, but How do I make it so the top and bottom of the wave is being affected? Basically making an odd symetrical curve on the shaper

                    HiseSnippet 1771.3oc0X0rTbaDDVhkAav3jXG6jT4jJW4.tJGpUDG+SxAVfk0lxdgsPXr8gTNCRyt6THMiJoYA13xWxobKmys7Hjq4leGxKPdDxafS2yHgjf0X7FaR4kp.lt6Yluo+4a5Y6jH8YooxDK6o2ZXLyxdVh2Pgp+J8obg0ZMsr+HRaZphk3XDs7vXZZJKvx1t18PA1SOok9y+r3xzPpvmUHxxZaI2m8PdDWUHsSiGvCCaQCXawiJY8MarluTrhLTN.vSMRcqXp+tzdr0onYSPrrmZ0.tRl3onJVpk8jKKCF50WtuvX+17T9NgLbfqkGrPFwsjgAHhQoVqzmGFzI+bmZYYS5T3EpY7BWgzlGvOTdg23SzJbJlQY+g8DUgWsJvysL7pWBdi.R1kfzjFHcIhmeBOVUnAwyEHqIffSWJ31KCEisV1ujrhDLPnlOhtKqUBL3vIL2spW+FNvut922cfvWwkBGoXcohsgXtqOyymY5YdwLNGUU2tiTGtMIxvPVxHUiQ5jSZhyIFDsCK4FN6QCGvNzP33W0mRd89zxgbeyotjgRwZBtZiXl30kHXk4pf+6Qq0jpnXfHSFXWLKQwQHX2jsGjUaBKSSZxR2UIi01FEKE3JXOqJKOxDHZEJoJtn2Vb.pbHB8wjxhbsNnbQyvCG7xcZrOOP0uPvO2nOi2qeoxom1HCiF.MC4Arg6HoIAV6zKuXZ5oBBBdEZMWwhJj9pW8purpzExDqMVwNPUXbN7ztlI9Aaxymww4Zvt8XDhW66bbu470uAJqIOMNjNbCeEcO155.KntKMLko0+P49vz.Q2UO79byH2Etsd7JCRUxn6kPi6y8SqLylrtzAgpkhiYzDjrAzpRFXTtbHvW.K0lfiUBJpO+stq9yctS8ae2521Ua0Vxd8BYskArJqLVWC04BAKDghV1iRYay7gruRX4vcCT1Jjp7TCCOxJ0Y07PvQkCYwIphcYgb4qJBJs22ZlW.rjGiA.3djACfsrJgDxBmo.pnpvBfk5hTtZXYV52YrTmVHdIRGtxu+nw3Di.iPc26CLlwseQxpc6BQ0B.NIo0SN6HxmImS3I5Me1rgNsdh6Hov+ERAcYbBKllv1R1AJulKkFEGxfrc1Mb1IT5uqG+mXGmiM1.gkQKly2jlkNNTwScp8JtmbPYS4.j5qMUkvAlOBPQ3AjL9rrh.jm2dBjQ1LtNNFyK7Xh.8.jgJSoKN1NSoatxRj4qyT6KS1UGNx9eK6yY78oZm7y5dfq0Rggx8QJbdVVp4PwRR0CNGo97vOVdCRg6PB1P3AD25tcvCodxcjgCi6KEbeL9YVp7izRQxA3ECly08ooaQ4gX9u8DqCTQfysEEYZF1ghz8Whf2fAInrj48OLQsBdKxUzYgPbnCPIFwfa2SMxvENm913+.LEoueBalpFpG8J0LHffawEIoB1AOKsOEtuypBltLfoD17k0WNe8MsaktB0TWfifp9IvscZxJgvJsVf01XRG11oYejcUoTkdsfb8CxtVlrEExzvTIuPd.KoCP7iiVZP.W1haTA+U6KfarL2Gs7.nv2TVVQBhAQ.6f7bmUgz+.niQ8lgf2pjmEwd9HHp0lKxPbA6Ua5AGQ1+rnmhEikmksyaW19FObYKQ2w4HMS36wrN1RakkrX5LWl5CcRC+F7kUiUeFgJngCSYyWwlSe7JumYfLrRj6HAB62otVqRIhSQ5go8UNUWvjA16nOD4Mj5MQkCPkXYsSNV9zWd7XID2pFK+8e629yEOVr7k89iq1vbPzuS53gx25znF+ZiS0V+ieZy+ZQyqC7hjRUefq8n6+MaX89+nOKYSVJSYVkSvAjcQ8qmdXVxZoaiZ8og4KDPjtrTtaDUSsOVsrWt6fqZTdAxigdV0uAVS4dU83txjHm6w.1Xr0F22EuBN9T+JXSazaAs6lFKSgGKTZkOhtEJqqISMPT0binJVgGuVvwys7YHWXIKOeiNTQkECFWYkZyK8Jl+dwUEHGsGCNMAanIgnUX5fEX.zZr9wCtkmXg3EJK99P+zPbwuReh0NouP.2w7KDXp2Weg.Sd55i7jg2G.uLnRauSmiQONdywph8Xg3cQHFuLI6Ac4RqVZ0VJj4MTUDz2jAsM1qGq5sli5.sjRAMFTH4JM1jExnokJ29pFODZxhlzVeyyX4KbeqeBvHiWeAw.WGjOv4+Rb6LMM6DecWsS0q6dmi2w+kdmwUn.k4GNQ5Om.z3K3nC2N++GuOKdD4YwdDQ8SjOy271ajv37ZIv4Vn+dumlzFG63ZsmowGB9RTqH3Zmm46i4zeM3eF8bVXLly2LFy4liwb91wXN2ZLlysGi4bmSbN3M9KMPIiL4+ffNqZdPisooGcof0+BpxhvJC
                    

                    Edit: Don't know if it'd be useful, but here's a cpp script of the same music dsp code being implemented into a program called psycle: SourceForge

                    Note: Since the snippet probably doesn't work, you'd have to create a new file and copy/paste the get sample function and paramemter callbacks from here: https://justpaste.it/3iopy

                    i make music

                    1 Reply Last reply Reply Quote 0
                    • CasmatC
                      Casmat @ustk
                      last edited by

                      @ustk @d-healey @Christoph-Hart quick bump/update, on the other cpp code in my last post, the code had this:

                      		if (sl > 0) {
                      			ProcessChannel(sl);
                      		}
                      		else {
                      			sl = -sl;
                      			ProcessChannel(sl);
                      			sl = -sl;
                      		}
                      

                      which I think is what gives them the odd symmetrical waveshaping effect, tired to implement this in hise, swapping the sl for input and I got an even symmetrical waveshaping effect, I'm lost haha!

                      i make music

                      CasmatC 1 Reply Last reply Reply Quote 0
                      • CasmatC
                        Casmat @Casmat
                        last edited by

                        @Casmat nvm got it! Had to tinker and multiply a couple values by negatives and add if statements!

                        i make music

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

                        24

                        Online

                        1.7k

                        Users

                        11.8k

                        Topics

                        102.7k

                        Posts