Control individual notes/samples with a slider.



  • I know how to control the sampler volume. But what I'm looking to do is control the volume of a specific sample on C1 note #36 with a slider.

    My id for the volume slider is: volumeSlider1

    Any tricks guys thanks?

    Cheers
    Jason



  • @jssrecording You can assign volume changes to MIDI messages. Type the words gain or volume into the API browser to see what commands are available, I can't remember right at this moment.



  • @d-healey
    Looking at my options and still scratching my head.

    Screen Shot 2019-05-10 at 4.58.02 PM.png Screen Shot 2019-05-10 at 4.57.48 PM.png



  • @jssrecording Message.setGain() and Synth.addVolumeFade() would be your two options. setVoiceGainValue(); might be useful too but I haven't used it.



  • Hey @d-healey , I'm still on the struggle bus trying to figure this one out. Would you have any working examples of this?

    Cheers
    Jason Smith



  • @jssrecording Nope, it's not something I've done. Post what you have so far and let's try and shape it into something that does what you want



  • @d-healey Okay no problem! I've been able to change the note volume with the Message.getNoteNumber and Message.setGain. Where I'm stuck is changing the slider and updating my variable/reg.

    if (Message.getNoteNumber() == 48) {
            
            Message.setGain(volume1);
        
            Console.print(volume1);
        
         }
    


  • @jssrecording Could you post it as a snippet (export >> HISE snippet)? Is volume1 a variable or a reference to your slider?



  • @d-healey Sorry David, still new to a few of these features. Don't fully understand the Export Hise snippet.
    volume1 is a variable for storing the volume.
    My slider ID is volumeSlider1
    Screen Shot 2019-05-13 at 11.12.14 AM.png



  • Go to the export menu, click export HISE snippet. Then paste it here in code tags.



  • @d-healey ```
    HiseSnippet 2855.3oc6b87aaibElxNLIVa71jso.aOz1ABsAxMYsEkn9g61rgwx1YcRjsVKG2Tf15PSMRhHTbXIoriiqPcKRwh1dX60bK+Izi6wbrG1C8PQA1EEEY6ghBTTfbsmZmgjRbH0unjkx5DSs.AKGNy27Muu2LuG4vwE0QRPCCjNSjY15.MHSjKvV5.UyZ4qIJqxr1xLQtD6paU.rrdi5Flh5fbIXV5.MQCCXYlHQl9VjpEYlyvX86k2XIQEQUInaQLLaijkf2UttroaoEEtirhxphkgaIWmp17BqIgTyiTPMvTZZ1DLZhROTrJbcQR0lhkIxYWorrIRujonIzfIxYVBU9fR0P6qZW+skMj2UARtfioDFH6hWEoTlvXRoL4qIqTtXqgtACSjyWz0PLssg3xrEjKK2tbWCxEstAvsEz1iHS0O5wQSuDAmdQnn2Yro2kXKIoKqY5dGB2dK10TMg5UDwR.MsrqKyT+kuIadDtFplyWW7gvU0wWztEw4RjHw0.oSjXt2e1nj+agE.kflf0TMLw5OtU3KUfRlfsEUZ.mMpNrJPpgtN9N12XSz9fqCRX0bxM2CofaGGtr2iytzEVvtrRJxkg5b18i8MJpHd.XoFllHU.GfTlrphrJDTogpjoLtTjpFtN1UgiLPzQJwkP00PpXJbMvdDZM2rQOb1n.7O4Jf3cRuqC3l6PB5jpX4rOOA00Qlv374tFfKYVx3mbW6+sI.pX.6IZImCbHc08AYlDCOjo5OjYS5AxlzUsu3x2ebyw6G2YlMZy2uS0I4.UmjSD0Ywwu5vM9UmTSH0Ic.UmTCTcRMITmzIF+pSxwu5vOgTmLATc3Gn5vOQTGtwu5jZ7qNomPpS1.pNoGn5jdhnNIG+pC+3WcxLgTmbATcxLP0IyDQcRM9Umzie0I6DRcVLfpS1ApNYmHpC+3WcxL9UmbSF0YwDATcxMP0I2DQcRO9Umrie0YwIj5v0S0wtMsdFKSY0p.yZPfjnhxt3m4ETAoaU.kFZLuUKZ8DbUgl4aoTwiQ8jQwladCx8rTy7N.FuaO7DgXCBtjCFtjCAboFLboFB33GLb7CAboGLboGB3xLX3xLDvkcvvkcHfK2fgKGEb8BPOOPe2gzSU7.IYBvMUTZ8hEndUC1DX9dupkcSrZQ+W4hdB5Uup+owz2sqSy+.7rbmI4t0j7qKu5CttsBReW0rSXaYkw1wh5HMntoLzXUcT8aWZi0iGyn8vds5hUgwtF3vXnJUv0N1O.DKQrlsVswKxCbM2wOW3R6iMC0B1ie9jJAEeBDK3m.rfOMmKKb7SZGUn2yxjI941jqeSa6bRwbNgaZAOo+nlIQhSsgZb2X7z+6BKfAw.o.mWSWFyhBPCC7HhPMR6VuQ8cg5wmyqMkXL6QEAe.VYy.txUbsk8pl+Pr0m2tZzhPfYzLtswWP4dRtq1EmfuON98by4IJtGeAb3auDJlJbefJFVPLBfCee0l5MCpQkL80MQDmegKzEtP2IoE5.9wuYmK2L.mb9bdbx6bMDbGS1PJmzM37ZAbFOTSU6d0ZRVjro8Zk9WmrRk3yE8vnyDsYT50PcVoUgPz1qi5aYg07VwXjdsomdfrUX58C+3pVFiV41zphLQNi2Mchs2a5D8dhIYKtTUDotlpr4FZP0dsUTLNdDLLQ95NrBWUSqsj5sc1RJ6D2XjKyDYVVpvVLVzldqAY5ED1YJZAwayVWzvDpuskX4GiWdCl.QCpG8YHnQOfH4wmEoN9Pve7gH8w2Vj43yhrGeHxMDPP4a80XoevDuFzm8zm9ki.HdMoOnRk+5H.hWi5yzt9WLBf30r9fO8a+eFAP7ZXe9m8Y+sQ.jE8.xKd7k+6ABjK5ADtD9kmOeTPgyu97OGET7tB.3m7I+iavbu0VVzTjra8NqQ5FwDW1xv8jkf16c+LrKCMdnIRiIx61NCelHm2t2m0o2sBoZ04WhkjfeUcTC0x1k9H5orGPew9xkMq0t.gOQnFTtZM2O8BgeoPEYEmumhuG6gE2biauR9s1Y0Mt6xqrYyU2pPqO0ibIV5VyqoVkwD9Hb6+FTj3GgelCMQ7firbQa9Gs272WhBT7+O86Db4+ypSQtuSGjyAk5Usnk2QJys8ORewtBxFEflhEE0w.hCgXGTSTQqlX6Zcz9B1YrfCaxhyXoainAFXyc37H5giftfOR9Q9I4Q4EjMg0a8EubAV9jKxwkKyhY3YpKJoiZ6adI10QfBzEgMUXgBSLaaZWTSY08rC867tTrTSDRwTViXecdmKkkqTARxHDXPDWvthpOzXdOFhKDzvyTNlaPYIN5GK3msWoC1VfBn6nh10ht3TdJQZkgqUUymUUXa+VUlsDJqKVcYYcnUJTXkjcaxTQIQEFCb9NVe+JEQZMv1gywtDTAsOiVqzbVqb29pmzZ4EQt8YYs9vmBpuBc1GOh1av0B8m86q77M6XTsnvtUa4oDkkKS1rYSxklg1AZF1ToRmlmOkyr1YYKR02ilGC8n7bALAI2QoP4gdT9phlonoo1IVZxSQSs8NwRyzTz7A+hSrzLCsn+qNwRyrTz7CexIVZlihl2+i+JflWHf4fRuv6QJTD842yeP563mnO+m0AQAcPz8qgWGl7Esp203VO6o+2RCUPoatKZOnU4agWIeIzirencCw8fqoVTGZkxBojQwZPu.8K+4TVCls8aM9vNjse5aZVC53.OqQe8MdM1Z7VA9wfcsFEO30WqwnL1oigwz7z0XmNv38O5z0XmNZaheM8Ct7l+XmND94exoqw9hTi8W7adS2muiWnl6f+S+3SYCd57A+C+1SYCd5z+p86eMdv244h5hrEPkanHZ58HaQdcMN2fzazmMJx4eR0P17.5cOXhbNtBJcuDaQYSoZcmuS0E9xvLw4qyohaV1UpTAKYtj8Lrqd+I+QfilJeKap7NrXeJnXcY0pkDqqo.sOBby150ZxAxmrWmUwi92ez+x2YUT3Ke7StQ2NqhZA9rJhy7VAIVtj7iop1yEVpA48q5sz+nfUWcy5nFpd5KmgxlPMnnI1Cvylys4l2RG0Pyeqd4Mr7W1RWT5gXqA8M1PEhM8lzfjWGYXTAObrvxf9VEanWkXqn5Q3dPcCuksdi5X4WUEpP1q4HQvEcOCHQtkkJHhmm6Y2Ir5kDaIZI4SwZeMmuqS565T9tl220o8ccFeWm08ZaCZAQMZmic31A6b3eeyOWv12bLVEEwidpZtjb018icIztyss3Vrh5vp1ki54YOQeRTe0sf6zAitC3vxNSKNVRlnNqntGdFJtDBGeG1kgUDanX1pTNOrr.REoUCoJK4c9.1+tZUxdI4x8tNftooId5naIWVXSrqmnA0D5uqvckUgh5dmlOT1BtfaK5md8tr1zEPVhC7lQfxoO0GnrelNbRhVKXAv8tt4Ibc9BrVqpCHAg+phpahZPNjFsBvwhiBVBG4WBRGKbJR7U6qSPtlPnRP0xVW7+v+btIWq.mjax05lLRsfBO1b9+s9lBhLMTkD5vJ+OEbHYEZWZCb9EDJgC1MBoIkDjOUuRSx5yWIf+Ic3DSZRmWHLMowUZRI2A6bDllTXZRToIkLLMovzjBSSJLMoSUoIkBjmeb7W9pvzjdy7sIwGllTXZRzoIkJLMovzjBSSJLMoSUoIwCxmNLMovzj5UZRoCSSJLMI5zj3CSSJLMovzjBSS503zjdUvRqCC5NR1G8Sq+jkaUBlkpVmV1YXsNanf1muYV1DymfoNNV0NRRjIBuG1B281jbDZSpQnM7iPaROBsIyHzlriPax021PRS3lMLQ0sWjDWPwUrcrhrRaGqoY9+nNge+.



  • So when you say

    Where I'm stuck is changing the slider

    What do you mean?



  • @d-healey Moving the volumeSlider1 to change the Message.setGain() on note Message.getNoteNumber() == 48



  • Message.setGain(volumeSlider1.getValue()); Should probably do it. Just make sure you have a variable reference to your slider in your script - right click on the slider in the widget list to get the script variable declaration. You probably also want to setup your slider correctly to decibel mode with the appropriate min/max values.



  • @d-healey said in Control individual notes/samples with a slider.:

    Message.setGain(volumeSlider1.getValue());

    Okay I think I'm close thanks David! Where am I going wrong? BTW right clicking and creating a declaration is pretty slick!

    //volumeSlider1
        const var volumeSlider1 = Content.getComponent("volumeSlider1");
        
            if (Message.getNoteNumber() == 48) {
            
                Message.setGain(volumeSlider1.getValue());
            
                Message.setGain(volumeSlider1);
        
                Console.print(volumeSlider1);
        
             }
    


  • @jssrecording

    This should go in on init const var volumeSlider1 = Content.getComponent("volumeSlider1");

    Tell me why you put:

    Message.setGain(volumeSlider1.getValue());
            
    Message.setGain(volumeSlider1);
    


  • @d-healey Ha ha oops! That's my mistake 😑 Setting my constant to the init now.



  • @jssrecording It works @d-healey thank you! Also changed my slider to decibels. Thanks my friend! BTW you should create a Udemy course on Hise. You're extremely knowledgable.



  • @jssrecording Just to clarify our conversation for anyone else. I update my code in the onNoteOn to this.

            if (Message.getNoteNumber() == 48) {
            
                Message.setGain(volumeSlider1.getValue());
        
             }
    

    onInit

    //volumeSlider1
    const var volumeSlider1 = Content.getComponent("volumeSlider1");
    

Log in to reply
 

2
Online

445
Users

1.5k
Topics

11.0k
Posts