Topic: Sample controls file

To all,

I've posted a zip file with a 1.6.0 npa project file and a pdf.

http://www.championent.net/ftp/MediaMat … uttons.zip

My background is heavy on audio and computer programming, but light on NWare.  Part of what I've given some thought to is reusable devices/objects.  This would imply a larger project.  Another issue is how should one design a project to make is easy for another person to understand or modify it at a later time.  One thought is that externally defined controls should never be used inside of custom devices/blocks that occur multiple times in a project.  Another thought is that, if possible, design time property values should be visible in the UI, not buried in dialog boxes.

Hence, the sample project shows some methods for creating independent controls that can be used together.


Greg Longtin

Last edited by GregL (2010-06-04 17:06:21)


Re: Sample controls file

I've beat my head up against the same wall. Unfortunately DSP products today do not present a rich environment for structured programming concepts such as modularity and reuse. Some are closer than others, such as Nware plugins, but none are there, primarily because they all boil down to fancy copy-paste, which of course is a no-no in programming. If I make a plugin, deploy it n times, decide I want to upgrade or fix it, I'm back manually redeploying it all over again; redefining the plugin doesn't affect instances.

The example project in your document illustrates some of these shortcomings, both in the control/UI approach and even the audio processing. You have multiple instances of the same thing, the thing being a conference room. A structured approach would define it once and automatically instantiate as required, usually driven from some user-provided configuration.

For reasons like this I've shied away from using Nware logic for all but the simplest, one-off logic. For anything else, I've considered just assigning control aliases and pushing all the logic and UI off to a platform with a general purpose programming environment and GUI toolkit. Let the Nion handle the audio processing and routing, the logic with a programming language, and the UI with a toolkit; each component handling responsibilities it is best suited for.


Re: Sample controls file


Really, the project was meant to demonstrate that there are ways around needing an externally defined control to be copied *into* a (repeated) device block.

The idea of control/block/plug-in/device instances being linked back to a 'definition' would be very helpful, but it has plenty of gotchas.

Many (full featured) programming IDE's allow a UI to be constructed via code, or use a 'code behind' model, but I suspect that's a lot to ask for in a DSP platform.  Even with IDE's, one is often writing code for event hookup that may need to change when updating user defined objects/controls.  IOW, you seem to imply that it would greatly simplify NWare programming, I think it would help, but it would also have its share of issues.

Speaking of aliases, have you tried my utility?

Are you attending InfoComm?



Re: Sample controls file

I understand your objective better now; it probably stems from your programming half wanting to use a function parameter rather than a global variable. I cannot speak for IDEs as I have yet to use one, but I have been toying around with UI toolkits, specifically wxPython. From previous experience manually building complex logic and UIs with DSP software, and what I've learned with from toolkits, I would very much prefer to use a toolkit. All the manual, repetitious, copy-paste, error-prone tasks associated with manual UI construction are gone. Granted you can manually do everything with a toolkit as before, but you don't *have* to.

I'm currently working in Singapore, so I won't be attending trade shows any time soon. Haven't got around to your alias utility, likely because my spare time is currently being applied to building a better mousetrap with Python, Twisted, and wxPython. Does it run on FreeBSD?


Re: Sample controls file

jvalenzuela wrote:

I'm currently working in Singapore

And how long do you expect to be there?  Need any help?  Okay, maybe kidding...

jvalenzuela wrote:

Does it run on FreeBSD?

Ah, not unless you figured out how to run C# and .Net 3.5 on BSD.  I've never checked into Mono, but I've heard it's getting more and more suppport...



Re: Sample controls file


Okay, I'm in LAS trying to write email, then I noticed --

> I understand your objective better now; it probably stems from your programming half wanting to use a function parameter rather than a global variable

WTF ??  Lord, get with the OOP !!!

Okay, sorry.  OOP has a lot of concepts dealing with reuse, etc, and can get very complicated.

My example was more about stability and clarity for someone reviewing a project after it was designed.  also, an NWare plug-in is rather pointless if it requires outside controls to be brought in and wired...



Re: Sample controls file

My parameter/global variable example wasn't OO specific. You were describing an Nware block whose behavior can be modified by some external means, either copying in an externally defined value or passing in a value via a control input node. The parallel between your block and a function is very close, as is the choice between using a global variable or function argument. OO languages indeed have these type of operations, but it is not exclusive to them.