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. -
@jssrecording
Message.setGain()
andSynth.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
-
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); }
-
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");