FX Plugins and child Containers
-
This post is deleted! -
@Christoph-Hart I got this part working with no timer by just calling a changed() in the interface script from your SaveToGlobal function.
Now I got another issue because no global modulator is allowed in FXs.
I got 4 filters for which I need to modulate Freq, Gain and Q via custom tablesSo how do I sync them?
Side question, do you have any example on how to use a script modulator please?
-
@ustk Did you ever find a solution to this?
-
@LeeC Nope, I haven't yet. The solution would obviously be scriptnode but that means I have to move my pre-existing modules in a dsp graph. In my actual case it's not too much of an issue because my FX is based essentially on filters.
The main problem I can't resolve for now is the use of a table. Modulating in scriptnode with any waveform is easy, but the implementation of a table that is controlled from the main script seems to be rather complex, for me at least. I haven't a clue...
-
There is a unified way of how to control complex UI types:
const var firstTable = Engine.createAndRegisterTableData(0); const var seqPack = Engine.createAndRegisterSliderPackData(0); const var audioFile = Engine.createAndRegisterAudioFile(0)
If you call this in a ScriptProcessor's onInit method, it will create an object that can be accessed using the
processorId
property of the UI widget.Once you've registered a slot, it will also become visible to the DSP network of the script processor:
UI <-> DataSlot <-> scriptnode
Check out this example how the slider pack and table is used in scriptnode:
HiseSnippet 1675.3oc2Y0raaaDDdorW+ibbSSa5cgbxA1UfJ9GEifVqXI4DkXYoX433fdHflbkzVSwkgbkrUBJPOz68b6k9FTzq8PAxKPO0mf9F3K8TOzNKWJRJIZaEE3TmpC1bmYGxuYmY9lgRUcX5DWWlCRY185ZSPJWCWqqEuY9lZTKToBHkOBWVykSbRIEsYWaMWWhARQYhGHDnL6jHuOmtwlZlZV5jPQHz9LpNYaZKJOTZ0bOlZZtklAYOZqH6dkbkzYV4Ylr1.dl.qhr0zORqAYGMw1RfQJSUzfxYN03ZbhKrmMYFcq0jcrkb+6ScoGZRDKxfpA2HoXT9lTSip87UWDRYxpgd9DRO+l3xTCZf7vSfO1SQpPKhdFnjneHMYePJyYAosXlFhavY.OkHvaRI7tAtltC0lGpQfs4vkrffScM3XOJrj6Eo7FbdFrAKd5VZGQ1xAVDXvBqoptTpUUUu88p21RmSYVoXV6v3jJVKb6juN4rI+ljoFTU85wpS7XbXllDmXUKhzNmmgKX0t0gDmkR0QyrMIXif62+46Ti14qtzqirQlUIKJuhMwecXDHSLQ.j+wFDKR3iP.JbuHw79Qh8zDOXJbOlA6ccFjG3il+anw0PJDb16jN3y54g+zoxAauZo0CD1oRY99e85QzaPKlMT+dUV7w0NXwpcdbqkE5cq.+o9hQ1uDyQA5m3CzZlTChSUnXxCs.9CDD.Yrx0Cf6WgWakz4eVkGs31c2ta17q8jFcq7vh7cV7v6Z0IasGc3c6HVu95h0q0UktYaAbRuXAvnr0Vd0mbbEXSObwrOowKyR2a4U8VasdZD5okJHdHPRp+QLbraSb3TQzUo.oCPXHy3mEWf3dDmY6ECZYyrDADkouvnvIgQfR45FtnPtioF7lBm8uUPnlDZilbwp+BTZ2K5WxviEz6lmZqCDYGC8vGoS1PX7suHBLT44N6mU..c5Cfc73MGhS.XlXFsM038SWI3k8U.0X8wKHJ9sbo7tQ4seK3vTikCK1JnQDt2.Wkx0aFOdSDCdEkjWx30uiv73h0qSz4gfcR7VG7dl9eJIVR5mk.OeAP5KoIJf1ocqvbPWQtCjHg.od0FAB76OjfqfmOIPV5xAhWmTFt1o9hTEsZPsHo0cHfSUv0dGB+XlyQKbKP8st88lOYTSpScbkEgCZ48sL1kzfJFdvSunteAUg8gV6Rdo.nmiogdSb1q01fx1hdtO762aOfwAMdrcH1ZNj8XUM05tfqVKaSxtfcKk5PSl9Q0nuhLb2J+51ME6XA8lZVVDS2woo1.ywL8nk0LXKr97gdhUQQQYnz.PEJJlhfcYs4TqFk03NTf+BKRmfwwzI488VQBTBQ+Q4ZUwZQMYMhkg2h+A93qLSP1FnLSOkgsVQ9IVdo79WCWIxuwXHWSHkY.GCyrklNbb0splfb7FXQ2cnjj3jVOnzbJgEYDY5CB0sgyg9DCUIvss2flR7Cb7s7X3gwL8u9Y83hWB1grFaWHOQLJSY2nispLQjdXfWA2bgKkPB9oEnaZrqsILD7Y5HR0WVneDPXRbKlg73rOPdyHfLXG+2fyYjwYMCHYpOLBXG9eZPw6Nxl.mbPngWVU8sIAHrW1dZNMHbutKZNvaw.rQR98dqf6RIqNfkR16xTq8GbDxxZmLfrS2Xa1wDmAdsJXzJa6gjd5F03DaAclP1qu4O+f+7Ue2F0Nhbr7DL5NkIpxG1Pv.EIFLMl6M0UeAgqAIJNjzRMWAJCiIJnnLnP.1BPHlCaJbCQpcPnQJy6cbqXGzDlvkmLEsD9o+LJmW.74uY3.n3vX3.3yeSbAPf8LR.7G+Awmecf.3Wp+a+die4yxU7DnkfqqXHJwA3Ujjt.YmYR20jStWxxfbRLYdQcCTDJq4Bnrxb0lyBK3rt7nrtTpU9Pmw5zMP8EAfIMGLB3wWIj++D1p4v0ZwX7lv.buSTVwDAy884F4HHr2Klx5e59SU+zB+wFe3RYE4c+u.JqX3u7GkowPiaMmLqrwkIi0nmVpjveE792SHc6cIt8RnFxsq19PSpt.TnAr653m5RFQSuPxnDQRKRd0o6qLj5MvvvImCUICgyQ2MdeVQJ6rFxjL.TVI246Khn037c78d4UOaoo6vdgt7EgEoRy3IARRs79MFlEWVrNU3WKJVMsJpE0f9Bccw2+ymmAgh2l6LF1r7XXyJigMqNF1r1XXS1wvl6dt1H9oWteaNqk76FDDTsnWxkhRX+rIP+Kpn8FRA
-
@Christoph-Hart Amazing Christoph! I tried something similar but without knowing the how to... I'll make my day around this tomorrow
-
@Christoph-Hart said in FX Plugins and child Containers:
HiseSnippet 1675.3oc2Y0raaaDDdorW+ibbSSa5cgbxA1UfJ9GEifVqXI4DkXYoX433fdHflbkzVSwkgbkrUBJPOz68b6k9FTzq8PAxKPO0mf9F3K8TOzNKWJRJIZaEE3TmpC1bmYGxuYmY9lgRUcX5DWWlCRY185ZSPJWCWqqEuY9lZTKToBHkOBWVykSbRIEsYWaMWWhARQYhGHDnL6jHuOmtwlZlZV5jPQHz9LpNYaZKJOTZ0bOlZZtklAYOZqH6dkbkzYV4Ylr1.dl.qhr0zORqAYGMw1RfQJSUzfxYN03ZbhKrmMYFcq0jcrkb+6ScoGZRDKxfpA2HoXT9lTSip87UWDRYxpgd9DRO+l3xTCZf7vSfO1SQpPKhdFnjneHMYePJyYAosXlFhavY.OkHvaRI7tAtltC0lGpQfs4vkrffScM3XOJrj6Eo7FbdFrAKd5VZGQ1xAVDXvBqoptTpUUUu88p21RmSYVoXV6v3jJVKb6juN4rI+ljoFTU85wpS7XbXllDmXUKhzNmmgKX0t0gDmkR0QyrMIXif62+46Ti14qtzqirQlUIKJuhMwecXDHSLQ.j+wFDKR3iP.JbuHw79Qh8zDOXJbOlA6ccFjG3il+anw0PJDb16jN3y54g+zoxAauZo0CD1oRY99e85QzaPKlMT+dUV7w0NXwpcdbqkE5cq.+o9hQ1uDyQA5m3CzZlTChSUnXxCs.9CDD.Yrx0Cf6WgWakz4eVkGs31c2ta17q8jFcq7vh7cV7v6Z0IasGc3c6HVu95h0q0UktYaAbRuXAvnr0Vd0mbbEXSObwrOowKyR2a4U8VasdZD5okJHdHPRp+QLbraSb3TQzUo.oCPXHy3mEWf3dDmY6ECZYyrDADkouvnvIgQfR45FtnPtioF7lBm8uUPnlDZilbwp+BTZ2K5WxviEz6lmZqCDYGC8vGoS1PX7suHBLT44N6mU..c5Cfc73MGhS.XlXFsM038SWI3k8U.0X8wKHJ9sbo7tQ4seK3vTikCK1JnQDt2.Wkx0aFOdSDCdEkjWx30uiv73h0qSz4gfcR7VG7dl9eJIVR5mk.OeAP5KoIJf1ocqvbPWQtCjHg.od0FAB76OjfqfmOIPV5xAhWmTFt1o9hTEsZPsHo0cHfSUv0dGB+XlyQKbKP8st88lOYTSpScbkEgCZ48sL1kzfJFdvSunteAUg8gV6Rdo.nmiogdSb1q01fx1hdtO762aOfwAMdrcH1ZNj8XUM05tfqVKaSxtfcKk5PSl9Q0nuhLb2J+51ME6XA8lZVVDS2woo1.ywL8nk0LXKr97gdhUQQQYnz.PEJJlhfcYs4TqFk03NTf+BKRmfwwzI488VQBTBQ+Q4ZUwZQMYMhkg2h+A93qLSP1FnLSOkgsVQ9IVdo79WCWIxuwXHWSHkY.GCyrklNbb0splfb7FXQ2cnjj3jVOnzbJgEYDY5CB0sgyg9DCUIvss2flR7Cb7s7X3gwL8u9Y83hWB1grFaWHOQLJSY2nispLQjdXfWA2bgKkPB9oEnaZrqsILD7Y5HR0WVneDPXRbKlg73rOPdyHfLXG+2fyYjwYMCHYpOLBXG9eZPw6Nxl.mbPngWVU8sIAHrW1dZNMHbutKZNvaw.rQR98dqf6RIqNfkR16xTq8GbDxxZmLfrS2Xa1wDmAdsJXzJa6gjd5F03DaAclP1qu4O+f+7Ue2F0Nhbr7DL5NkIpxG1Pv.EIFLMl6M0UeAgqAIJNjzRMWAJCiIJnnLnP.1BPHlCaJbCQpcPnQJy6cbqXGzDlvkmLEsD9o+LJmW.74uY3.n3vX3.3yeSbAPf8LR.7G+Awmecf.3Wp+a+die4yxU7DnkfqqXHJwA3Ujjt.YmYR20jStWxxfbRLYdQcCTDJq4Bnrxb0lyBK3rt7nrtTpU9Pmw5zMP8EAfIMGLB3wWIj++D1p4v0ZwX7lv.buSTVwDAy884F4HHr2Klx5e59SU+zB+wFe3RYE4c+u.JqX3u7GkowPiaMmLqrwkIi0nmVpjveE792SHc6cIt8RnFxsq19PSpt.TnAr653m5RFQSuPxnDQRKRd0o6qLj5MvvvImCUICgyQ2MdeVQJ6rFxjL.TVI246Khn037c78d4UOaoo6vdgt7EgEoRy3IARRs79MFlEWVrNU3WKJVMsJpE0f9Bccw2+ymmAgh2l6LF1r7XXyJigMqNF1r1XXS1wvl6dt1H9oWteaNqk76FDDTsnWxkhRX+rIP+Kpn8FRA
This is gonna be so useful! Appreciate the knowledge @Christoph-Hart
-
Is This Work With File Player Aswell?
-
@Natanr Do you mean getting the arpeggiator to trigger a file player on/off in sequence?
-
@LeeC Nah, I Mean Showing The File Player's Waveform And The Start End Loop Markers
-
@Christoph-Hart Christoph
I Know What The First Two Does, But What The Third One Stand For?const var firstTable = Engine.createAndRegisterTableData(0); const var seqPack = Engine.createAndRegisterSliderPackData(0); const var audioFile = Engine.createAndRegisterAudioFile(0) // << This One?
-