WaveTableWaterfall -> Drag Position with mouse Snippet
-
I wanted a way to control my WaveTable position with the mouse, like in Pigments. Here is a snippet with a solution.
You have to load a WaveTable for it to work.
My solution was to place an invisible panel over the WaveTable waterfall and then use the panel's MouseCallback to control the WaveTable synth.
Maybe someone else has a better idea... :-)
Demo video:
WTDragger.movSnippet:
HiseSnippet 1621.3oc4X02aZaDF2lDWMXMpqUcR6OOglpHSTlsI.gs0URBIMQKjhBYMqZpJ5v9.eJl67rORJqsR6e12i8QZeD1GgtOAaO2YCXRHIsQqUsZToHeOub2u648qsC4NjnHdnldtCFEPzzuoQmQLg2FdXJSamlZ52w3P7IjCvc8IMCw86SB0VeT.NJh3poquvijxomcQM0uW+v0w9XlCYJIMsmvoNjcoCnhoTa23Gn99agcIGPGjR5UZriCmsA2mODvzBFlZAXmiw8I6gkhkwPaabjml9WYXR510sW2x0I1VV10qXVoVWafTYhC1tWsUrLqUolcc.j2XSWpfG1QfEjHM8EWm6NpiG+TV7A7DZDEtbxEVZcfSNl7VbeW4UTRUaCOpua6wFqHMMci1SMcKDa5tqQKpKcB8olvOSw.MUizFP8LyBuElAdVogmYJ3MGHomBRKFCoaazwIjFHlxQhmO0XGlfD1CC9ozPIVVsL+dFiM3fDLQoA3iIaEBKlnQgpllEQveV9aykC7UQBT.y+PQRvwt3QVnGfFqeehXC9f.NCVTH+YELOrGmkVoHhnEeXDYigg.fKjuMmxDTV+swL2XZ4KhhiPhJcpGUPJhRAlCO3nNOcuC19ncW6oRjnBmU3PZvTqJjeFgjn3RfA12uKDCVn2PlifxYEHm.Wlky8hbYo8hWTxwm5bLwE8xWhhI3B6zx4xBxHExBceThjiPeMR3QijHZaBsumnvxKi99GfLQ26dnqTvu6AHKXeylclafDrqIDgztCEfCp3UtOvMN6qx8J4Ee70BwY6wEjGyJntZ4dUNzYY0q2b4I80gbeeR3bYKSvCuLEKvFNnKIrH5Dr+PxDAgf3YyLLt3LizItNwgdoDjy1gQEONfvtnzYsj3U3qebmlXAVlNkPCjKfDJnRHn2jbBTLKN4JqQSRzwBd.TWZRPtl9RhjpAwoSa4ywxv2Cn.TotxpA87EGJNDqRn780d9jxeMHMFMsV3W1HAAiKuHKDKjEhmpa29iqUl0v1tb05Us0fLhAiodSiUrW0p9pl0pZkhgsji0p11UJaaZZoIHOWLVkbFVUqUqlsUEMkkHyiyX7hbHT9IFrcby+MnyjCUTJwNLWxyAdlpUPETe9oGxCONBJhS.5.jiHJdMoQA9.wAv0CX7y.MDxrT4hpOtuYoUgOdlRzcoLxAdP9ECN7IxZUpRwweLQzlfKOBOHvGr2agcfXGPdKEq8FNH9LGoZkI2nJVkiQcDe.ARdblnhY7lmeM+.OrzH.zdg5zxumLEpKXndDb2j6tYIyXfjuIz4YT4lJ8WIg1VPWNYKREwxmg3FDYQUEqw6wZPtwID4dG6N.l221pb4J0MsqYeNg1G6RGFofQBu1D7wIGn8jcscHIj.9lv0gBY8C4CYROnHbHIQ.v5rMbu7kkGjaW0D5SHNEMqBAG0spXVKQjNC3bg29XVexDmizUVudhCR5hLUe8L3uPUmTwgkkgaqVqp7eVZmRcEdSh++iQM7T0qllQPanc9DskF2iCyH9pLr6Xb1p4WTN1usViq5PQNMlljkJ2HcV1bIaOC8KHCqKODbKcn+5LSLESM14llNVlPMtgDv4VFq46ilRP67S..ydvcG5iEyNPhLDIgATKdlo.jc5YQTwnzi08e1TJuoP71FsoBGu4iwLyAiPE62EXLY1tkL1rWOhiXJ.WzXqe5cyfboO9aN1DMo1uZBFEBtkwLkfujwx+y2zwxCdiGKe6eAbMjzgH6xA0bWGyNV0FHMKUIWE0mHawOl0e+5+5g6S5ERh7ZQCZgClwatvkM1t00br8a7A2X6eDjyNyKKxNFicnPiVxlrSH9v.RIuUrIoGdnuXL0YCJawY7.ONi5j1Quur2q5ckov9buPvHtPYtoTtai8I9DbDI8LSxwEvgmM37svVX8V+Jq45u9BiX3hjYRnOdq0tv+ap0dYlnkLT0vPwk19vyE94owGZcZ.2GG99Dm6yGJekSKLjLC09MfIJ6.MKbH.FYvfYx2uomQ9Rq30lx0RPzAFLUs3efeILsjq0SXZMl46kyX.1IjejS7KSk46ehhBbuYp+GnxZzRtFYocR5VYxeCftEG43L6VcNEsutJV95p3JWWEqbcUr50UwZWWEW8pUT1LesgB9f3RbZZsZuo5At55axjIOpzDs+EbpGujC
Cheers,
Oli -
@Oli-Ullmann A broadcaster on the waterfall floating tile:
const var FloatingTile1 = Content.getComponent("FloatingTile1"); const var Waterfall_BC = Engine.createBroadcaster({ "id": "Waterfall_BC", "args": ["component", "event"], "tags": [] }); Waterfall_BC.attachToComponentMouseEvents(["FloatingTile1"], "Clicks, Hover & Dragging", ""); Waterfall_BC.addListener("", "md", function(component, event) { if (event.drag) Console.print(Math.range(event.dragY / -component.getHeight(), 0.0, 1.0)); });
-
@ustk
Ah, I hadn't thought of that. Much better solution! Thanks!