User Guide
Data Types & Signal Flow
Stream Data
If you are interested in audio applications or processing data at high data rates then you'll need to work with stream data. Streams deliver
high data rate digital signals which you can then process in the software. This is know as Digital Signal Processing (or DSP). If you're not
familiar with DSP then the next section will give you a quick overview.
Digital Signal Processing in a Nutshell
What is DSP? Well let's start with a signal which we will define as the continuous value of a some parameter over time. This could be
anything from the temperature of a room to audio taken from some listening device.
If the signal is passed into your computer from an external source like a microphone then it needs to be converted from an analogue signal
to a digital one. This is done by measuring the magnitude of the signal repeatedly over discrete time intervals. Each measurement is called a
sample and the result is a stream of numbers which is the digital signal.
The process is called sampling and the rate at which you measure is called the sampling rate. The most common rate used for audio signals
for example is 44100 samples per second, often represented as a frequency 44.1 Khz but higher rates are also used to get higher quality
signals.
The processing part of DSP involves taking the stream of numbers that represent the digital signal and converting them into another stream
of numbers by applying some combination of mathematical transformations. This is what FlowBotics Studio does using sections of Stream
data components that you connect together.
The output signal can then be converted back to analogue and transmitted on or listened to as sound through headphones or speakers.
A key feature of the software is that it can process these samples individually at sampling rate. Many applications are not capable of this and
have to process a collection of samples together in one frame in order to keep cpu usage at acceptable levels. This restriction limits the
processing possibilities as there is often a requirement to process a given sample based on the sample that preceded it. This situation is
called feedback and single sample feedback is a capability of FlowBotics Studio that sets it apart from other software.
There are two main stream data types: Poly and Mono. Poly is only used for audio applications where sound signals are generated from
MIDI notes. If you're not generating audio in this way then you can ignore Poly completely.
Mono
Mono carries a single signal at sampling rate. A set of mono components connected together (to form what we call a Mono section) always
has data flowing through it. Once connected on the right to a Direct Sound Out or ASIO Out component a Mono section will run constantly
even if there is a zero level signal passing through.
Mono connector - a single channel of fast moving stream of floating point data that
fluctuates at sampling rate. Provided it is connected to a sound output component like
Direct Sound Out it is always active.
Poly
Poly connectors can carry many digital signals at one time. A Poly section only uses processing when there are signals passing through it.
Poly is only used for audio applications and is generated in response to MIDI notes.
The number of signals is determined by the number of notes being played. If there are no signals then there is no cpu hit. However when
there are one or more notes playing you’ll get proportional usage of cpu for each signal generated (although because of the way FlowBotics
Studio uses SSE, you only get an increase on every 4
th
note).
70 of 212