External control of parameters.

6 posts / 0 new
Last post
Arnar
Offline
Last seen: 2 weeks 2 days ago
Joined: 03/29/2018 - 12:47pm
External control of parameters.

Lets say I am using the EGX limiter Core , I have an object id for the whole module but how can I control individual parameters like threshold , gain etc externally?

EDIT> I can see the values in the exported .h File .
Any tips or tutorials on how to get the screen, pot or an Arduino to control a specific parameter?

Arnar
Offline
Last seen: 2 weeks 2 days ago
Joined: 03/29/2018 - 12:47pm

I do have another question , is it possible to make the Sink module actually  capture and show a waveform rather then the 0.7 sec it is currently showing ?
I guess I would use the sink module to show a waveform on screen , if this is the range its pretty much unusable as such .

Arnar
Offline
Last seen: 2 weeks 2 days ago
Joined: 03/29/2018 - 12:47pm

Thank you Chris!

Chris Perry
Offline
Last seen: 1 day 5 hours ago
Joined: 07/16/2017 - 9:45am

First, right-click your LimiterCore module and select "view properties" and then click on the "Build" tab. Assign an objectID of 30000 or greater. Hit the "Propagate Changes" ribbon bar button and you should see the object ID appear under the LimiterCore module on the canvas. Next select Designer Tools\Generate Target Files. Notice the displayed dialog has a checkbox for ControlInterface.h. Check that and hit the "Generate" button. You will find a new file has been generated <ModelName>_ControlInterface.h. or something similar if you are using an older version of Designer.

Include the generated .h file in your firmware. If using an older version of Designer you must also include the module .h file.

Then, in your firmware running at a lower priority than your signal processing, call awe_fwGetObjectByID to get a pointer to your LimiterCore module object, check that the returned classID is the correct class for your LimiterCore. Next cast the returned pointer to a pointer to your module type:

awe_modAGCLimiterCoreInstance *pModule = (awe_modAGCLimiterCoreInstance *)pInstance;

Then access the desired parameter with pModule->gain, pModule->Threshold, etc.

Disclaimer: Unfortunately most of these instructions apply to our current version of Designer. Older Designers version may have done this slightly differently. Please consult the documentation for your version of Designer.

Chris Perry
Offline
Last seen: 1 day 5 hours ago
Joined: 07/16/2017 - 9:45am

If you have the Advanced library, place a Rebuffer module in front of your Sink module. Change the outBlockSize property for the Rebuffer to either a multiplier (like -10, the minus sign means use this number as a multiplier) or give it an actual desired block size in samples.

Arnar
Offline
Last seen: 2 weeks 2 days ago
Joined: 03/29/2018 - 12:47pm

Ok, this way I can see a proper waveform , although to not have it scroll too fast I have to up the sample rate almost up to 44100.
And that seems very CPu intensive , I might have to show 2-4 scrolling waveforms.
Is there a way to slow down the scrolling of the waveform ? If I could do that I would not have to use so many samples...I think ?

I am ok with it not being a super accurate representation , some kind of interpolated thing, or where it drops samples ?
Use case might be 1 large waveform display , with a scope overlay showing a rectified smoothed waveform on top.

Then alternatively switched to showing 4 small displays.