Programmer Guide/SPU Reference: Difference between revisions

From STX Wiki
Jump to navigationJump to search
No edit summary
Line 33: Line 33:
sortby=title
sortby=title
showpath=no
showpath=no
liststyle=unordered
liststyle=ordered
kidsonly=yes
kidsonly=yes
>
>

Revision as of 12:18, 28 April 2011

All the signal processing in STx is done using the integrated signal processing language's signal processing atoms (SPAtoms). The basic atoms are connected, forming a processing path, collectively called a signal processing unit (SPU).

Spu block diagram.png

The SPU Reference documents all integrated SPAtoms and includes a guide to writing signal processing units.

Signal processing units (SPUnits) provide the STx programmer with the possibility to create their own signal processing algorithms. Using a set of predefined atoms, the programmer can develop such things as a synthesis circuit (e.g. sample generators by additive synthesis), a real-time spectrum analyzer (using SPECTRUM and WAVEIN atoms) or a complete speech analysis (e.g. by using the atoms F0SIFT, RMS and LPCOEFS).

SPUnits are defined using the STx signal processing language. Once defined, they can be instantiated in an SPUnit item, or used as an 'atom' in another SPUnit.

SPUnit Instantiation

The SPUnit source code defines a type of circuit. An SPUnit shell item (an executable instance of the SPUnit) is created from this source code using the "NEW SPU" command. On creation, the following steps are taken:


  • An instance is created for all local elements. If an element is itself an SPUnit, it is replace with the internal circuitry of this SPUnit and then its local elements are instantiated. This process is continued until all SPUnit have been replaced with their most basic elements (SPUnit ). The interconnection, as defined in the function statements, is carried out at the same time as the instantiation.
  • The second step initializes all the SPAtoms. All constant arguments are evaluated and used as initialization parameters for the SPAtoms. Additionally, all connections are tested (i.e. are all the necessary inputs available? Are all the data types compatible and valid?).

On completion of this ‚compilation' procedure, the SPUnit item is ready for use. A new process is started which is responsible for the control and execution of the item. On creation of an item, all initializations (parameters) and connections (inputs) are carried out. The data types (numbers, vectors, strings) and sizes (vectors) are fixed. The outputs are, however, not connected!

The output connection occurs after creation by the relevant macro command (e.g SET $#gname Y $#yindex $#SPUsynn.y FUNCTION $#splitter RED LINES SOLID $#linewidth /Apply). This has to happen before the beginning of the processing (i.e. before the $#SPUsynn RUN $#n). An active (running) SPU item's connections cannot be changed (created or destroyed).

Because SPUs run in separated threads, a message handler has to be installed before the SPU is started. The most important message sent by an SPU is the STOP message. This message indicates that the processing (and therefore the data exchange with other items) has finished.


Signal Processing Atoms (SP-Atom) in alphabetical order

<splist parent= sort=asc sortby=title showpath=no liststyle=ordered kidsonly=yes >

Navigation menu

Personal tools