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?
8:53pm
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 .
10:01am
Thank you Chris!
7:54am
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.
7:57am
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.
10:05am
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.