Manual-13
Software and Applications
ActiveX and Software issues
Microsoft ActiveX controls (defined in the next section)
are of concern to the pro audio community. This technology
allows designers of computer-controlled sound systems to
create common front-end software control panels that operate
different manufacturers units, without having to know
anything about their internal code or algorithms. This is
powerful. When more manufacturers jump on the ActiveX
bandwagon, systems designers will no longer be limited by
the products offered by a single, platform-specific (i.e., closed
architecture) manufacturer.
What is ActiveX anyway?
ActiveX is a Microsoft-developed software technology
released in 1996. ActiveX, formerly called OLE (Object
Linking and Embedding), is loosely based on the Component
Object Model (COM), but provides substantially different
services to developers. At this point, you might think:
WHAT!?^* But keep reading! An ActiveX control is a unit of
executable code (such as an .EXE file) that follows the
ActiveX specification for providing software objects. This
technology allows programmers to assemble reusable software
controls into applications and services. However, software
development using ActiveX technology should not be
confused with Object-Oriented Programming (OOP). OOP is
concerned with creating objects, while ActiveX is concerned
with making objects work together. Simply stated, ActiveX is
a technology that lets a program (the ActiveX control) interact
with other programs over a network (e.g., the Internet or
Ethernet), regardless of the language in which they were
written. ActiveX controls can do similar things as Java, but
they are quite different. Java is a programming language,
while ActiveX controls can be written in any language (e.g.,
Visual Basic, C, C++, even Java). Also, ActiveX runs in a
variety of applications, while Java and Javascript usually run
only in Web browsers. ActiveX controls can be used in web
pages and within visual programming languages such as
Borlands Delphi, Sybases PowerBuilder, Microsofts Visual
Basic and even in tools such as Adobes GoLive,
Macromedias DreamWeaver and National Instruments
LabVIEW.
In English, for our pro audio applications, ActiveX control
objects are the sliders, buttons, indicators and other graphical
screen entities. The objects have properties such as slider
position and slider range and on or off for buttons and
indicators, etc. Once the screen objects are chosen and placed,
further ActiveX controls can then be used to link the objects
properties to other ActiveX controls. Thus, allowing linking
an ActiveX slider to the ActiveX control for a devices level
control. Then moving the level control graphic slider subse-
quently varies the audio level and vice versa.
Each ActiveX control is made up of Properties and Events.
ActiveX control Properties are values associated with the
control, which might include such things as level settings,
mute condition and meter readings. ActiveX control Events
tell the computer something significant has happened, such as
a switch closure, button press or clip detection.
ActiveX allows the manufacturer to create an object (a
piece of software code) which fully describes a device, while
hiding the implementation details such as protocol from the
programmer. By hiding the communication details, there is no
longer a need for different manufacturers to agree on proto-
col. This lack of a protocol standard means that cooperation
between manufacturers is not required. It allows each manu-
facturer to choose the best protocol for their devices.
For example, no longer would you need to know that the
17th byte of a 32-byte status message meant that the units
second output channel was muted. With an ActiveX control,
you might simply refer to the devices output 2 mute status as
Device1.Out2Mute. See the RaneNote Emerging Standards
for Networked Audio System Control and Controlling
Audio Systems with ActiveX Controls over CobraNet and
other Ethernet-based Networks, both downloadable from the
Rane website Library.
Implementing ActiveX controls
An example might help clear this up. A few assumptions
are that a computer is used to control an audio system over an
Ethernet network and that something on the computers screen
controls some function of the system. The basic idea is to
place controls on the computer screen and link them, using
ActiveX, to a parameter in the system. Whats important here
is that only the controls required by the computers end user
need be displayed. Additionally, more detailed interfaces
(hidden or password-protected web pages) can then be created
to provide any level of system parameter access desirable
from complete system control, to a lone system power button
or anything in-between. No longer are systems limited to the
number of security levels provided by vendors software, nor
are you limited to controlling a single system parameter per
screen control. For example, you can link multiple ActiveX
controls to a single screen object, thus adjusting EQ level
simultaneously with master level control and limiter threshold.
You can also program actions when certain events occur, such
as triggering audio playback or turning a system off at a
certain time or adjusting delay time as the temperature
changes.
You can control different parameters inside the same
device from different computers on the network as well as
controlling the same parameter from multiple computers. This
is one of the major advantages of networks multiple control
locations will automatically be updated when changes are
made by any control location.
Microsoft FrontPage 2000 ActiveX Example
Many use Microsofts FrontPage 2000 to create user
interface web pages for computer-controlled systems. These
web pages may or may not be accessible over the Internet.
Once you master the ActiveX concept, using FrontPage with
ActiveX provides literally an infinite number of programming
possibilities. More information about the NM 84s ActiveX
controls and the ActiveX controls for Ranes RW 232 devices
is found in the sections on the next page.