Next: Using OX_API
Up: Contents
Previous: Copyright and License Information
Recently OX_API has been revised with several incompatible
changes. These reflect refinements and simplifications of the
design. I am happy to say that the core API is now complete;
extensions for wavetables will be handled through the OX_API Package
and should not cause any backward-compatibility problems at the source
level.
Here is a summary of the changes:
- The ``package.''
- Machine-accessible utility functions have been
moved into the OX_API package. This is a reconfigurable collection of
functions that machines can call. Now the entire machine
API can be used just by including machine.h. See 1.7
for examples of package calls.
- Memory allocation wrappers.
- These are provided so that OCTAL can handle allocating large audio buffers and prevent their being
paged out to disk on POSIX-compliant operating systems. They are also
used to ``zombify'' a machine by removing it from the signal network
if memory allocation fails. This can help prevent crashes, important
during any live performance.
- ox_desc() changes.
- The previous design for this API was
non-reentrant. This would really have hurt when attempting to make
OCTAL SMP-enabled. The new interface works without static local
storage.
- Compilation and linking of machines.
- You don't need to link
against util.h anymore when creating machines, nor do you need
util.h.
- ox_update() changes
- The params member of struct machine has been removed. The original design forced the
machine writer to step through this data structure and know its
format, and it seemed rather error-prone and needlessly complex. The new design is simpler:
we update one parameter at a time by calling ox_update() with the
track number, parameter index, and new value.
Next: Using OX_API
Up: Contents
Previous: Copyright and License Information
David O'Toole
2000-07-19