Forum
    • Categories
    • Register
    • Login
    1. Home
    2. Morphoice
    • Profile
    • Following 5
    • Followers 1
    • Topics 149
    • Posts 853
    • Groups 0

    Morphoice

    @Morphoice

    "Sounds from the future and the past, warm summer nights at the arcade, computerized horizons. Pink neon light, unstuck in time, between the memories of yesteryear and retrofuturistic fantasies."

    178
    Reputation
    168
    Profile views
    853
    Posts
    1
    Followers
    5
    Following
    Joined
    Last Online
    Age 48
    Website www.morphoice.com
    Location Germany

    Morphoice Unfollow Follow

    Best posts made by Morphoice

    • Isn't she a beauty! Thank you guys!

      Screenshot 2024-10-20 at 11.15.45.png

      This is to say thank you to everyone who helped and engaged so awesomely in this forum, especially @Christoph-Hart, @d-healey, @dannytaurus, @HISEnberg and many more! To get this level of help and devotion in an internet forum is not common, especially not in 2024 where people usually are "go away noob!" or "use the damn search" ;-))) Therefor I thank you, the things I have learned over the past days are incredible, given I started from zero.

      Today I finally managed to have a first usable prototype of the synth I have envisioned with beautiful waveforms and sounding exactly the way I wanted, and I ended up not using wavetables at all. Take a listen here if you want to:
      https://www.dropbox.com/scl/fi/h211eql2t99ntdbltrbuo/IMG_8250.MOV?rlkey=a0n81idbt7oaldbkqpz16x9nr&dl=0

      Here are the raw OSC waveforms, I shaped them using polyshaperfx

      IMG_8246.jpeg

      IMG_8247.jpeg

      We solved the pops and clicks, the filters behave and sing like a diva, the analog vibe is all there and I'm thoroughly amazed. There is lots to tweak and add, but I got the basics and I'm confident I'm on the right track to continue with HISE as the best choice I could have made.

      Thank you again, I can't state this often enough and sorry for the million more questions I will all bother you with in the future ;-) Love you guys!!! You made my week and enabled me to finally concoct a thing that has been brewing in my head for so many years. That's beyond awesome!

      posted in General Questions
      MorphoiceM
      Morphoice
    • Sounds like Vangelis?

      This isn't an ad or a post to brag but I wanted to show you what I achieved using HISE and FAUST in a few weeks with the help of this awesome community!

      So this is to say thanks to all who supported me in learning HISE in a ridiculously short time. This would never have been possible without HISE and all of you. I started with simple FX plugins like reverbs and delays, which are now included in this synthesizer. So all the sound you hear is 100% HISE/FAUST.

      The Audio:
      https://www.instagram.com/p/DFDtqa2s5Sp/

      Unstable GUI.jpg

      From the bottom of my heart, you guys are my heroes!!
      @Christoph-Hart @d-healey @aaronventure @HISEnberg @griffinboy @Mighty23 @sletz
      and many many more <3

      posted in General Questions
      MorphoiceM
      Morphoice
    • Retro 80s Tape Wow & Flutter with faust

      I made a quite good sounding wow and flutter plugin using faust
      and thought I'd share it, as probably some could use it

      import ("stdfaust.lib");
      
      wow = os.lf_trianglepos(hslider("wow",0.5,0,2,0.01)) : si.smooth(0.9999) * 1000.;
      wow_intensity = hslider("wow_intensity",0.3,0,1,0.01):si.smooth(0.9999);
      flutter = os.lf_trianglepos(hslider("flutter",8,2,20,0.01)) : si.smooth(0.9999) * 1000.;
      flutter_intensity = hslider("flutter_intensity",0.1,0,1,0.01):si.smooth(0.9999);
      hiss = hslider("hiss",0.1,0,1,0.01);
      
      drive = hslider("drive",0,0,1,0.001) ;
      
      tanh(x) = x * (27 + x * x) / (27 + 9 * x * x);
      saturator = ef.dryWetMixerConstantPower(drive,tanh * drive * 20 : co.limiter_1176_R4_mono: tanh );
      
      tapenoise = no.pink_noise*0.6 + no.sparse_noise(10)*0.2 : fi.bandpass(1,600,20600)/5 + os.triangle(60)*0.05 + os.oscsin(528)*0.003 + os.oscsin(110)*0.002;
      
      wowflutter = de.fdelay1(ma.SR, 100. + wow*(wow_intensity)  + flutter*(flutter_intensity/5)) <: saturator : fi.lowpass(2,8000) + tapenoise * hiss;
      
      
      
      process =  wowflutter, wowflutter;
      

      this sounds quite awesome on synths if you are looking for the retro 80s synthwave vibe, the saturation circuit is a bit fishy but it sounds good. if anyone has some improvements let me know.

      I'm aiming to simulate real magnetic saturation with hysteresis once I can wrap my head around it

      posted in Presets / Scripts / Ideas
      MorphoiceM
      Morphoice
    • Waveform Icons

      I made these little waveform icons, if anyone has use for them please feel free!
      Couldn't find ones that aesthetically pleased me anywhere online so I drew them myself in Illustrator.

      Screenshot 2025-01-13 at 01.37.40.jpg

      Here's the source code to save you the conversion hassle.
      you'll need to put a correspondingly named panel for each icon onto your UI

      const var labelSine = Content.getComponent("labelSine");
      const var labelSaw1 = Content.getComponent("labelSaw1");
      const var labelSaw2 = Content.getComponent("labelSaw2");
      const var labelSquare = Content.getComponent("labelSquare");
      const var labelNoise = Content.getComponent("labelNoise");
      
      
      const var svg_sine = Content.createSVG("418.nT6K8CVaATLC.XwmXQBHMZa.yhzBWkPkzQoPI.XRHHfRltcFhHhxLSR+8ffD.fD.frPX.7D.CAvSTCNZz7jbrqXcge2s1E0hJ4HgjBp3.BkkzCJQLJkZYdDgjyUdkJUXXD.hISbH4DEA5AIVRKCQ3XhEHjbZ.Y4AknlGBRt7fDTH47HBjFRXDwwRRcM4DQBjnHbPYA5AIHnIJcem0Y+dagO9rM6uKt12R9Mzsu0bwWwE+Uy8cMWuuRFs12Fcpqq8gjSikTxIJZADiEGlr.hlmzlJSCSSECzP.B.AAoAJzLBhweb.Mwjnl39iS8a5VWS705aEYq2Pl+pXacEcuuv0cMYv5UM70m2yXz0tRYFUXycFCU3xN6g5dEis2apZfacWmr85Jer2a532bF..OOnDwz77fo4gIs.+Vt38cEa14Vttig5Yrjo5ycq8GCa5cKT0qMxtaWrc+0XumWXyes399hQEpp6TG6cis58JY1UFeQABP.BhsK2YKDfvQaW6pYBGsn686WbjTEfTvBH0gKeBlyD..lyqiJhJFXZcpv.EDISfT.");
      
      const var svg_saw1 = Content.createSVG("375.nT6K8CVEAz1B.X31PQBLswI.CsFJ3O.5GCwxB3EEF4vydsdXQ1atkojr+KbRCJnfT9PU.jD.6.Pqe2rhpnpFIfTvDHGRTTQRlVTU4knHfb1jOYxjkEAfHRDGTMSOjdPBEE2PDPSr.AUCCGJQRlXbHPAWGjfBplnGNX.44AjhR+pZd.wwTDPRTjdPBBXBoaOmw3ea5hmy8wMY8YXx6U1Z.7cL62M9AUCCEkpYZZgzihCQV.AiihW6ByBSECzH.AjjbzfhcMI8bGHoIhLw3L0.hAiipc3tJs5lQ2UNi70Vx5tSX+9xR9vjgm2G2Y1Bq0TTe6R8geuiRZruapoS+K0LtmkO14r4uIbuKeeoa1ru39sM.3DIYZgwIZgwYQwfqOuqW7wUCWt2Yqkuasu2zq6p4uaxr2Vw9568i5.T+x9lP8O3a8r1425jwucaFg20xm6AO.v.3CTYNiL1ylW6BDBPsGnkSga24PuIMLJhKSfgubpQCnlbjKfT");
      
      const var svg_saw2 = Content.createSVG("378.nT6K8CVGAT3B.XCGRQBHMhZ.yhzhqRAcwYTVLf3CSHkhpX+vcuyMkYaOOJtX.BBv3QvU.nD.7.fpJs9cuJLE15ABHELQpgDk0jjpEFisKSO.47jOYxjkEAbHRjFVOUOnb.gxZY3AoHTbv5YQCkIIUNPDrdoAHjv5Y5QiEPhdHorXWWOOfzn5AIIJTNff.m.e1C0uplMWeW0zcMa7eY2bM224Lp2qnieSacrdVnrVOUUJnhTZHhBGbfVapKNKNSL.i.DfhpACIzrhJ5PRTQDoxAphgzBGnk19Kn8YNaMusJp7YRWe1gO1SkuhL6Iy6HC412qJ1XmoX+FYl2nycW+UQll2jMeG9bmooxbcuKatyMn1mY2zE..zjjpEGnoEGnk0B5YZ9z6xV+KY3u4aeKYQsBYV03qJ1vdi8dGxhXZuwHg6qb1Mx74Me52F1M64E08sN48sSwfC..BAbOfZYfVwSwEfTlV37hetr1pypn.ErAO9xoFMfZxRt.RA");
      
      const var svg_square = Content.createSVG("411.nT6K8CFaAzHC.XG2SQBLKZU.CGtRigPYNnpFCf0Hyo3vp4saQtBoHIYp8GrsbFQDAn1U.vD..A.b0KM2ct0BuvJmJQJfRjioEUioICy7hogjHmQ4TnPggQ.GlLoAkyDhziJKpECRhdPABJmENVZLMadHPE2CRPAkSCHNVDABRzhheqbfDwwTRzzhziJDzDvgch25PEJuStRs7LbRx2oM16dY0s9agjq2Zc8Va8P4rXQoblSERPKMLQgCMOp01LMLMQL.i.DPRxACH5cJA8mHoGlLadlLhVz7nfrGr2pqOSYnH+XbJ9dSat2RI35rUhcmt0eJCsf2IipSkq2FzmoQ1iaTdW+255uR9rEp42RDVO34dWLC9113+VFJ1AvSioISySCllGF0BKCwd2sRzc6tM1N2Zq8MFuCBJebcuG6Vhweew27Wn6J2vCUFel1huoN4as+Ra1iJ6clF6+zUZfBXhRxQ2AhhqpDiCjDvKwqYkShE.l.HgPohgR.+f3zisKPwXZu.E7AT0C3ONmS+oAnymBxXvi0MwfhHgVjB");
      
      const var svg_noise = Content.createSVG("900.nT6K8CVaET8F.Xfr+IBPuIM.e9TDsLtc69FBdU.6hdLcoZYKqHhT11W9KhGGEUWLWBPZ.fF.nZOa8Sa2q1JOZ75m0f7WnU8bwGVXXd77vfSyxDJXPB6Z3ngiLFvg.DvwghCXb1iSygDw4BJdb.4wgHM3.BCpWwagSWs3RZIw7vhHJnRDJUrvzHkRXCISDwyJuRkJMZHfDTPwDlGOPrvfKLQjKX3.lGMPYQREONfP.yxL.gDXdHABJMDQCDQVXR+Xd.QDTdlHREKNOXAANprb02QzVo2WaNHDeuWaK0urd8TsFEZ78DhNGDlYtdaKttkhSqIY0MkehH0c0bVHV6CSH7199cssV5sl0tq+hx9m4nbanUeFyq18059oyVEqtxTplFw6n05WEsNHDRyinkw549qoxaWREnz2lBWXlt0K8MoILx7pY7WZMZY+khndGk5cu850b84Ty5QmC4C0L+6P8dDuBwoqHzhWUdDoa+8PMdu6CVbyJhaBwEmX05bdomLBUM2IDe0Z561DVW9qg596tzTUwCopNu27o2WpyF2O..QREOMb.QRCFETYdzXMeyRcE2N8w8USOSUWeEOD25YjhMn5Jz5VWmSIlVqmo26wzyy4J8caV9ah18thF1bpstYwOgS85Kzk3o5mYZNY9koHlcd8KZUbeuMHkuRsNVd18Uy6WqhV2xHdzQYpE.HznFHNujUC.RBA.EAA.Y.yX00AP5c.IPbF7x5.YmS4bta1qNmyKQbTfDYpQ2NCQNjaMsAbtozqaGP7fbVrrAiQXFKAiOj0wIxXlWH4VtDpxcZfvpLfd63EJeTuejUlp5C+8vQxdIEJG.AqM.LwgQDCaD7txZ7SXLqtJLe0TG1I.7ZQmLvdOJBsxceFm8ujzMtB56bQJB.p8WC5wxGYBWfM9QupFrg0UBNklYHWEIZ2sqRiIBeWz8AyipcpkV0SL3XJWSM.HO1QmBBny79HHCDIbx8o.NfuyMUMwGavh+e5RiB5ZGLFTsln490Dh.crvp3dI96hiENh6hXKYpGgwUKJv7tEStIll4RIgac0qg1Z.ABDjPeHWE.GgZ9sZVNMF2QthzVrEbU5PoRug0ElbGze218nYtForGfxR4FSg3b95HLP9bu4DSURVp8DMkGoel25vVXL+lltYVeicArLaiD.S.HMhWHGEXF.5Ay2wuC1CkK6kMbLGd1A");
      
      
      labelSine.setPaintRoutine(function(g)
      {	
      	g.drawSVG(svg_sine, this.getLocalBounds(0), 1);
      });
      labelSaw1.setPaintRoutine(function(g)
      {	
      	g.drawSVG(svg_saw1, this.getLocalBounds(0), 1);
      });
      labelSaw2.setPaintRoutine(function(g)
      {	
      	g.drawSVG(svg_saw2, this.getLocalBounds(0), 1);
      });
      labelSquare.setPaintRoutine(function(g)
      {	
      	g.drawSVG(svg_square, this.getLocalBounds(0), 1);
      });
      labelNoise.setPaintRoutine(function(g)
      {	
      	g.drawSVG(svg_noise, this.getLocalBounds(0), 1);
      });
      
      posted in Presets / Scripts / Ideas
      MorphoiceM
      Morphoice
    • LinnDrum clone: great success, thanks guys!

      In roughly two days, thanks to you all, I managed to make a working software clone from my LinnDrum. You can see it in action here! While you watch repeat after me: HISE IS AWESOME! And its community even more so! :-)

      Screenshot 2024-11-30 at 22.32.48.png

      posted in General Questions
      MorphoiceM
      Morphoice
    • Saturation Models (Neve, Tweaker, Oxford Inflator) in FAUST

      Here's my attempt at different saturation models in faust. Have fun!

      I'm hoping WAVES, KUSH and UAD won't have me whacked for sharing these.
      Feel free to add gain correction

      import("stdfaust.lib");
      
      drive_twk = hslider("TWK",0,0,1,0.001);
      drive_neve = hslider("Neve",0,0,1,0.001);
      inflate = hslider("Inflate",0,0,1,0.001);
      gain = hslider("Gain",1,0,2,0.001);
      
      // Neve
      neve(x) =x + 0.04 * ma.tanh(x*40); 
      
      // Tweaker
      twk(x) = x*2/(1+abs(x*2));             
      
      // Oxford Inflator
      oxford(x) = sin(ma.PI/2*sin(ma.PI * 2 * x)) * inflate + sin(ma.PI * 2 * x) * (1 - inflate);
      
      
      saturator = ef.dryWetMixerConstantPower(drive_twk,twk) :
                  ef.dryWetMixerConstantPower(drive_neve,neve) : 
                  ef.dryWetMixerConstantPower(inflate,oxford) * gain;
      
      process = saturator,saturator;
      
      posted in ScriptNode
      MorphoiceM
      Morphoice
    • Optimize your faust

      Just a reminder for everyone just getting started with faust to read this

      https://faustdoc.grame.fr/manual/optimizing/

      and avoid unnecessary cpu calculations. Really makes a huge difference!.

      posted in Faust Development
      MorphoiceM
      Morphoice
    • My take on super clean analog oscillators

      Here's my attempt at super clean "analog style" oscillators using polybleps in FAUST
      based on the Yamaha CS-80 with SAW and PWM. These have no visible artifacts in the spectrograph and sound absolutely fire with a good filter.

      Please mind, the filter in my snippet is still incomplete, improvement ideas are welcome, I am still struggling with scriptnode and finding the right nodes to modify my control values, still no clue how to implement an initial value for the filter and an intensity/filter depth slider

      The SNIPPET:

      HiseSnippet 4371.3oc67rraajbsMkTIZww1SFLdlrLDFH.xdjo6GraxNFCrr0iwBikkFSONIHHPnE6hlcbyt4zcSKoIH.Yw8C3tM.AAYUVdWeypLqyp7ILYUVlr3t8BmSUU+n5G7M0iYhofjXW0op5TmScdVUW3SCvNlXyi7cr52GGHHTZ4C8bai88c8DJU4Em0GKT55nVm4DzcqtFVNB6ssPo2G8kN9AFGaieoqUarviOquguO1TnTok+LBPkVaEA5m+0CergsgC.SbQBBzF8TqdVAIkd3letks8tFl3WX0iC55atWaWmsbscG.HzxHQg9FseswqvOyf.1RHgmX32UnzcQFJJlczzZpa1ttpjdGiFlsOVQWEaJWWAqiMManXdbmNBkVcGSq.WuVAFAXegRq7XWyyZ008DG1.7RKeKXpQdPRnELxrh2001jLEIkJrUWKayXJkOP2PbzskYzsag12xzJt7D52OfVQ0jVvS.KsTZza4TnmDO5IxgdEfRk3PoUXnzGfZ01ypePRMD748P64Df85XjgWxfUnzeAskK.fSPsdFuFuqG7PbCVWSTbCEQw67fNCbZGX45T004YtA3CbV+NU90UVqxuoR0rU0oSg0QFEOWaarWgUSVY3MpFttyfdGi81n5aLrGfiADl8oIongSR443sYSZN.cc1ywJ3f9XmgsNPHjRAj+UCwJ.z.Jw+lgD+V1VlXOAKfFWF84NtGKIPQXdwFgItwxySiUR03u8K9e+CSQiqmcj+1onwpyCZqkpw+wO6u+WenvWt21FAFjk8gr.fszG6EXQ33k1F+FPoCSHXMz1X+WG31mxi5020gvvJc8wxkNMFa+F6MOKA0+4aFfOE5ADpkwIBmXYFzMtxeqwlcwVupKmtt81rezJl8fdeUzK25.IPulGnRCjpHkw5odtl.B8wnm450yv15qwlGh8ZCHKn+SvePmNVmRVG9iE5YYZZiOz02hHPjggDOAWarqjRlfBOqnI30Ps9pAFd3ExbLtylFbTgGGOqHbrLPtr7WLnXTeMMXX8gREMCwvafNbfsOt5OkhgKB775rdj0gSCxpNz0zlwqoO7mt+BZMMomlFrSanLayXlcq9XvX0hgYy5Kg7lMAC1tlCrMBRaEm3qSXEDwNdSmD6iNf33Y7J3VXl1mTT7CPGZEztaw33REfif5yyCbLzgnaf1oSGb6fDDbEzt+rK.uePrwuB5QNF1m4iib6I5QoT3viAMqXuVf91DBy2r4gdfID7IglPBK9ZaVZ4IFgkFM854tCBrbd09FAdD85nmMnWKvq21Xfb43fsINtTZIhKFrmEIOSPhVfO7zGdK7IrRIxykBqTJpRddx6mx49OyycPeJU45TQiprBV.d12eh8reGGRHE6tOeOtkgmmEHeBQovoK3e8WhWrmqluzwx20wkhJOpm6.m.djNr1swACbRg5gUzpuG1vjuEDruEFPUSZW5mRfd4QEJgzLFJQ4qbgR7c.UhkVJ+Z6xnG8jsa87vXVoKq2w4MXavuvTX19.iueWWGq17qHdNFDDe0q.kEb3agShGED.Akt0.u2jZI0131FmkqTFv4K4oX.y3K9IvpjbcWbAxeylsF.AgyKSRvYargex386+SatSa28o9QNSD8QqyJUTuiZgwMPrIYUpNfqdFJuYD9w3BW8Pvqinr+qpzu2GEtX7JKA7lnPYiKSRX4H+PdInDpMYDIn1GE+X0XDWZ7X3W5iegAEERj+2CTu4Efyp2v5XrcZk.SkidRm+Nit72qcFcZjxINlPVGLNW0uTTBwbO5RD8VKh4EFxHw2UJtEFQ2vcX8us3cXMJ+naflljQt54gOiq9NeFujBid4+iKL5ahNz09L1heXbIH.Bj91MEF.Qutqkc.1yONRzPokeTgRKbBHnEkgo3bwK7LbvItdulNgB+NXMNAyejss6IjYUTX.zABPdZ5TKiDqA+vfhj+JqvkAv7j8XTL5QAbxBT+IF9uvvxlngDbOpODI9ANs.foJg.lTomQsIWdWi1v78rCMH4v5CPj8c.3rXuZsi4vYIvjYLaKvX0PnOGFkMKeF9S58H0UrLE.HaOZl2VBAfPpmPQVlgFqRFmxH+91f1vghRrpKBQhZ5jNrKkZXYS0wPIJdXY0MayVitl9doG1e.BGFjXMVsEMp2D8jC2MIZxwL3Ht8hfIRQdBTXrDy4YPXgi48R1davVCIz5DhtmWX38Jb.krwWP31c3fohS9oeLjDyx2Y+dFRBGlNemrARXjcHMes13Si1bkss.trwYrbj4mqDxThkQlUP2SRXGvDnIX2h1ZBoPfadB5KieBPm8sbhl4D4Mg8MNM740PRhvGnrVA39rDycK.FZovGo55hRRZf1fWiOgwKCAPugVCIslRZ0kUUjUnhRWKLVOvw3NFCrCBGjUgAgHiOHvsmQProVNLDkFCk3vPDRBZKejtr3fRODLnFwHbgQCVEQytPpwJK4PlT3kB1UlEraFLpLRQb53PhExgVKJV0bbGwZpWI3NqEEqZw7j4k.DsDkkZpvpIHSSQwFJZ555pRRMjZ1nPBzTMbITijg+8PIYVKUim6ddUvUx.blNMwqsXcnBbl.tFyDfzLYC3oeWxFvMPsIoK3H5A24clBdmof2YJ3clBJxT.q5+CP2OD5.Pay39+0Q.AsaMVMCIfCZciQe+RoTuUha9sxjvYhTImgJwYCIk9SgQZc45n87eIo11F1Q8HXYIkYPZTTRyRDXwscJi7qLafoQMJMKQblzVtjiMKgeVA0y0rfHPuEGZDCAOlHEhIbcvrPDtIuo4LjhOhhCdt103MeWD438Qc624Hq3zQMETkUJPRYJBkrBZePUgUe6yx4j.cKJ7i+1HcJ3GijqWK8m2b.7mNehySdw1MN6y+UuP7fL9MLyBV4TcxKZws1Hb9lhmbiXdBTWg7hvVMtECSNYGVq+lNGg+pzD92CsqG9qFfcZeVF5xxSkBUNSQKijGFcBTYTbu9CQp0TgfFjTkjUjjUazTAeOoFER+4VqLktDsxzMfh0TBSc1iLMGM6dwpIMjQkIfhNrrgVKr1hSk2SNb2wtlIi.VTVVi+J7EdQrzKKVkidtZB8LzcBduXji7hIiaJxx55h0U0jkUp2rQS0P65IqCSyUuF0cnQyX4PjOjv1BcTRRWVTWVmCq9Pjdsl5jOZRMUUDkanjG+zp2PpQSoFJhZpRM0n32xnuXNVsUFniMSQdfHDZx43An1endyr5zH7cK5zWRjPBz0aVWugnTHAtUOW2ftVNuJZn9HRuIIpIKon0TrtrjplT8LyxOl.inN6SiFZ0aJq1Tdxwu5C0aK51IOFGFW.t0sFhcpvLSOVSn3aAd3HOGd3HOVYyoV2AcmKJxkj2K1iB4YzmD9dXVbJIc9BlQeRxzImKdjrFpmkSOiSGV9sOW7Hg7UcK0i25mcd3QBwR6PVGmLayXfIhkvptPtQRaWjNlXaXRN21SniIqtvbXqPUKivRFi5AfZ0aPOgzvONkWk4GAkgZqLVC1pTkyozsS5z5QHgwo7HQROTjQpgLSKLoBoLQUn46l5hDy.0UaJIUWSNTcNALggNpSDeB5DX5ufCquBYulM7HgybgEIb354g3+VXsE6+1Suz7eS8c9u8cL+2JJUqSf+ZSnrXZ+ytr7EadkKmHO6VKLhKoYHjqj1t3Dao9zcQG0Ur3pVQFRhkhu3Ea4rVoo.yBY8l5JZhxManOMV6lBY3JH0ZhpxJMTW.wjLiB2WTAdoboF3UABgxygPn72SDBKijkupJCVWVSRtgZScY05PmHcNIC9gvJScIslp0qqKK0rQcc8u+KLJekIKHkpvOjrrfRxs33F7Q3ZBCfrG0fkKLlvnyUWpPBS1rUgIdiEX4tsX3yroIEG6OOKlQIAxvQOemVByifWbUZ0Z.5Cza.K.gfoDkKVbZrxoS1A3n3s.fHeKjma+zImaSEkpqppqzrgrXCQRB0mHl+vPyvSTyv3944IOcQxSx2vyUdRQY+nPdxJn8d5TwRz.bWjXyPugFXzYRXIoBTfMnOJ6fJMbo9hXxKM4R3oOvKBSwpiLsjOwKLaXORXRNwEwqAj0zpQWCnnqozPrYyhWCLmGPi4fTEexilFpTRixSf1d5HP5JxTBjjRSvSllCSw0kGAJ5f+LMzm31jm777og77AfGf5JT0HJDkHZW0HNImJHgoREbbqxplfcCPwN1.SrOBEp+YFBxeVt4dlzWcmqg14z.OCoqfuUQgnl7EIpcQbGSLou0MGLyu0MDvlm26lklt26lCF56cyAy06cC+lssJpmkoU5XmuI2V5.0U7wLg0ro37OMRIzzQzbcD41Z6Yz2iwBOLcCwonaR7j+nAN9fbNfViwy7b6SK8PcIOGGHL4uybHvJwM9YnZovgOl+.Gk.SwmJ8Tfr31nuxHvFneP1.zdMdtN5QiXG9RYzc36228jR0skQRxMxeVixT6Tj0ibiPBhyBOcjAMegbrMOeOTCEsXcNdg8XJNmsAksBLy40ssqGtFqlhOutr5lJEiKkgUrFZKanm2KlaeCzfn6.0sNHlONlWmi7Ikr7jkCpnksEkbHlHX1iGth1L+9Ej081gj9LleiNjKHu76fVQhAC8jDtnvk9jKAOdbg32stJC1lp0kUjGxlNLonlJGpQ6bclW+5pJZMpqHmCSqyvzlPHV0kj0kBuGE5mbc8w2arbZzTWrNLyzTG2akv4AUDg5eRuTaZCaJ.juFRvjr4kAqcMjuwI4XrYgbpXrWKAwnGjtb8VJguLmtigfpYOsGpBQuR03jT2BwdqWajXdggSldhj4EB6bbiVm+cpc3aBCa8F4lNctWk7xzWlrByQ9KKzOmjUf4ReY78X5BcR7+8129Oe3BdRvqgL2zH5tNcQMKl78PXplAI1axkkmT2BpISijKCWtT9PJ62dq+m+4CSlNzx17u+0AOjGn++291+wCGWBj4BUe1maorJjaxwt8TmvbyL5UP4mx+WObgOaX1QxMMhtjUyvd9u+c+t+bV1C8N8MGPyyD5ammITjZ7YR63iccecOCZpPlszccQj3lKhwnmQaO2iBClkP.uFsDv+TmviBv9jmql6JQWfbIWacT61o6pbMTdVanxr1v5yZCUm0FpMqMrwr1vliugj6TpPmTHRSBB6e3NrCQconMutTokEvgmuZ1sADQdHtDG7o6ZEdzr6XQOY1j+wvjeHSl79bQcUyzuezkzuvR2eEz8uuItsMXJtpaepDd0a+KHn4Ow04Wd6GTwpWeWuf0usefIsupYac7suyCp.gOU8Sq10md8Su9sgGu8FJZaHtADy0FR..UBs8yCUXQ2dCIBfaPNsu.jw1W4AMtvh.lptOGzzRuM.nZ3u55jVIpBMK1BHeqhKDZD+X3aDLvixQRi7QklEbhJtTPRJffHRzeA2Riw9S5kBsOoWl9hP463g+J.piMnovDnrxc+50g+AU2I5Ty.0GC5cqJwH2Pgq65Wquq8Y.yt+QPQqG2h6T8dUgJc8a6a4vW7cqJVSVk7+P1CzYwcAkvRgdiplCB.v+zpNFVuAeDL3cXcYDvq+EaT0uqUGve66T8SxVS+tF936TA7Aua0eckpvGZIP+Q.D9pq25RaTkLTvDkTeXeQlpF053YzdcVK9DFlv.hCY9zpxvjX8nlcuvgjA2W.USoV2mzasd9Cp7af4IoifJ3VTcOJIDnRqS4hgjm5vfR9G4QfoQnPzaidffWYs0jHiUdJFk9FR1tqD.Wbe2mu95prAQ4NwfD2YfQECmWYiyxupSf8NUg+b2pIhO.ZQWRS3Qt0Xe8tUSV5SZYC.nJ.Jr1ZeJgeC8vmv5A52nvBe6AvuUBu72obn1aP9yCDD92futY7n
      

      IMG_4327.JPG

      IMG_4328.JPG

      The FAUST:

      //declare options "[midi:on]";
      import("stdfaust.lib");
      key = hslider("key",36,0,127,1);
      
      sawGain = hslider("sawGain",1,0,1,0.01);
      pulseGain = hslider("pulseGain",1,0,1,0.01);
      pulseWidth = hslider("pulseWidth",0.5,0.5,0.99,0.005);
      noiseGain = hslider("noiseGain",0,0,1,0.01);
      saturation = hslider("saturation",0,0,1,0.01);
      speed = hslider("speed",0.1,0.1,100,0.01);
      pwm = hslider("pwm",0,0,1,0.01);
      midifreq = ba.midikey2hz(key);
      frequency = midifreq * 1;
      
      saw = (os.polyblep_saw(frequency) - os.oscsin(frequency) * 0.25) * sawGain;
      
      polyblep_pulse(freq, duty) = naive_diff - os.polyblep(Q, shifted) + os.polyblep(Q, phase)
      with {
          phase = os.phasor(1, freq);
          shifted = ma.frac(phase + duty);
          naive_diff = 2 * (shifted - phase);
          Q = freq / ma.SR;
      };
      
      duty = pulseWidth - (os.osc(speed) * 0.24 + 0.24) * pwm;
      
      pulse = (
      		1 - polyblep_pulse(frequency, duty)*1
      		- (os.oscp(frequency, 45) * 0.3)
      		- (os.polyblep_triangle(frequency) * 0.4)
      		) 
      		* pulseGain ;
      
      noise = no.noise * noiseGain * 0.7;
      
      
      osc		= saw
      		+ pulse
      		+ noise
      		;
      		
      process = osc, osc;
      
      posted in Faust Development
      MorphoiceM
      Morphoice
    • Multichannel state of things

      Ahoi!
      I'm back taking up work on my liunndrum clone drum machine plugin again and was wondering if someone has worked with multichannel outputs lately and can tell me anything about the state of things there. Is it working properly with cubase? It would be a blast to have every drum sound routed to its own output for obvious mixing reasons.

      alt text

      is there a complete working tutorial on how to set things up for multichannel? when I tried it a year ago i failed miserably
      also what method of setup do I provide to the user? like a dropdown box on each instrument channel to select where to route it? or can I predefined everything?

      All the best
      Morph

      posted in General Questions
      MorphoiceM
      Morphoice
    • RE: Saturation Models (Neve, Tweaker, Oxford Inflator) in FAUST

      @clevername27 they're not measured, someone on reddit reverse enginered them so they are somewhat common knowledge among the DSP community, I'm not claiming any of those is a copy of something, it's just knowledge I gathered off the web. This is an old post though, I'm making my own functions for saturation now, and I'm using desmos to create them, closely matching stuff I can indeed measure from real hardware and then bring them over in faust. Unfortunately it's all done by hand, I have no Idea on how to "automatically" transfer measurements into transfer functions. It's a lot of guesswork until the curve looks somewhat similar

      Those are the two waveshaper curves I find most pleasing, sonically, anything in between those is great and much faster calculated than the popular tanh for saturation

      Screenshot 2025-01-30 at 14.08.55.png

      posted in ScriptNode
      MorphoiceM
      Morphoice

    Latest posts made by Morphoice

    • RE: No Multichannel output

      @Chazrox @David-Healey

      I fiddled about a little and this script finally worked:

      const var MorphDrum = Synth.getChildSynth("MorphDrum");
      const var matrix = MorphDrum.getRoutingMatrix();
      
      matrix.addConnection(0,0);
      matrix.addConnection(1,1);
      matrix.addConnection(2,2);
      matrix.addConnection(3,3);
      matrix.addConnection(4,4);
      matrix.addConnection(5,5);
      matrix.addConnection(6,6);
      matrix.addConnection(7,7);
      matrix.addConnection(8,8);
      ...
      
      

      apparently I was quite close already, but it does indeed need the script to do the addConnection and won't work without. Thanks for the help! I would never have figured that out on my own

      posted in General Questions
      MorphoiceM
      Morphoice
    • RE: No Multichannel output

      @Chazrox said in No Multichannel output:

      const var numBIGDRUMMYVST = Synth.getRoutingMatrix("BIG DRUMMY VST");

      numBIGDRUMMYVST.setNumChannels(24);

      that changes nothing either ;/

      posted in General Questions
      MorphoiceM
      Morphoice
    • RE: No Multichannel output

      @Chazrox yep that is exactly how I set it up

      posted in General Questions
      MorphoiceM
      Morphoice
    • RE: No Multichannel output

      @Chazrox still no change.
      is the structure a problem`? they are all in a container...
      Screenshot 2025-12-16 at 18.50.37.png

      posted in General Questions
      MorphoiceM
      Morphoice
    • RE: No Multichannel output

      @Chazrox nop the script made no change

      posted in General Questions
      MorphoiceM
      Morphoice
    • RE: No Multichannel output

      @Chazrox the daw setup is fine and just as with every other plugin, probably the initscript is missing.... i'll check if its needed

      posted in General Questions
      MorphoiceM
      Morphoice
    • RE: No Multichannel output

      @David-Healey is the script necessary if the routing doesnt need to dynamically change? from what I understand how I set things up should have sufficed, at least in hise all channels show their routed audio, just not in cubase, there everything is on 1+2 again

      posted in General Questions
      MorphoiceM
      Morphoice
    • RE: No Multichannel output

      @Chazrox i didnt understand any of the first sentence but as for the second, yes 1+2 is having all the content of the entire plugin, although in hise anything except the kick is routet to channels 3 and above

      posted in General Questions
      MorphoiceM
      Morphoice
    • No Multichannel output

      Ahoi,

      I have setup 16 channels and routed each sound of my drum plugin to a channel
      it looks right in HISE, but when i compile the project and run the plugin in a DAW
      even with all multi outputs switched on it still just plays through the main 1+2

      what am I missing?

      screenshot-2025-12-14-at-17.26.59.png

      screenshot-2025-12-14-at-17.31.05-resized.png

      are there any tutorials or documentation on how to handle multichannel?

      posted in General Questions
      MorphoiceM
      Morphoice
    • RE: Multichannel state of things

      @dannytaurus that makes sense

      posted in General Questions
      MorphoiceM
      Morphoice