<- User manual
Components

On the left is the component grid. It contains 37 components which are ordered by type:

1) Inputs

The "inputs of the circuit" are components which have themselves no input. The first one (B1) is the audio input (from the Data/stream.raw file). The next two (C1 and D1) are the UI inputs from the right and left keyboard when in user mode. Then come the four user control inputs (F1, G1, H1 and I1), controlled by the row above the right keyboard, in any mode.

2) Generic components

The two generic components are the wire (or identity) at B2 and the delay at C2. The delay has a fixed value of about 1/7th of a second.

3) Multiplexer

(a.k.a. pairs)
These three components allow you to combine two signals of any type into a new signal (E3) and then to split back that signal into its first (E1) and second (E2) parts. For example, to create a well-typed output signal for the circuit (which has type (Audio,(UI,UI)) ), place two multiplexers like this:
(E3) P1 Q1 -> R1
(E3) R2 Q2 -> Q1
That will "expose" the audio output on P1 and the two UI outputs on Q2 and R2. You can now for example play your audio input by instantiating it on P1.

4) Audio components

These six components work on audio signals. The first one (B4) lowers the amplitude of the audio (multiplication by 0.7) and the second reverses it (multiplication by -1). The next two components (E4 and F4) respectively add and multiply two audio signals together. Finally, the last two audio components are a saturation (non-linear amplifier) (H4) and a bass-and-treble boost filter (I4).

5) UI components

Those four components act on UI signals. The first one (B5) is a mirror that reverses the UI grid around the Y axis. The second is a toggle that allows buttons to be "held down". The fourth component (E5) "mixes" two UI signals with a logic OR. Finally, the last one (G5) displays the identical notes on my isomorphic keyboard layout.

6) Synthesizers

Each synth takes two input signals: tuning (of type audio) and notes (of type UI) and produce one audio output. The first three (B6, C6 and D6) are respectively the sine, square and sawtooth synths. The last two (F6 and G6) are band-limited versions of the square and sawtooth synths. Although they sound arguably better than the non band-limited versions, they have a couple of bugs including the inability to be tuned while they are playing.

7) Variables

The next two components are the "memory" of control signals. They each take one UI signal (usually from one of the four user control inputs) and produce respectively an audio and a bytebeat signal. Upon instantiation, their output is constant at zero. When the two input buttons are pressed, they go respectivelly higher and lower. The audio output changes smoothly, while the bytebeat one changes in discrete steps. Note that you can disconnect the UI input of a variable and it will hold its current value.

8) Bytebeat components

Finally, the last row of components are for expressing bytebeat. In order, they are (with number of inputs in [brackets]):
  1. The time (the "t" variable) [0]
  2. The right bit-shift (>>1) [1]
  3. The binary complement (~) [1]
  4. The logic OR (|) [2]
  5. The logic AND (&) [2]
  6. The logic XOR (^) [2]
  7. The value 128 [0]
And last, the "bytebeat renderer" (I8) that produces an audio signal from a bytebeat one.
© 2000-2014 Mikael Bouillot (last updated 2014-05-07)