Lua

You can write scripts in lua. You have to write a method called ‘bang’ that will be called each time the script receives a … bang. You can access the four inputs using the global variables in1 to in4. Here is a small example used to play some ‘mod’ music:

function bang(sig)
  g = g or 0
  g = g + 1
  n = 20
  list = {60,62,n,n, 63,n,67,62, 60,n,60,n, n,n,60,n}
  return list[1 + g % #list]
end

The if you load the script from a file, the script is automatically updated each time the file changes (so you can edit it live).

Buffer

Simply change a ‘float’ signal into a buffered signal of a given window. This is an example of Buffer(4) connected with a counter :

<array 0x1100c70 ( 0.00,  0.00,  0.00,  1.00),4>
<array 0x1100c78 ( 0.00,  0.00,  1.00,  2.00),4>
<array 0x1100c80 ( 0.00,  1.00,  2.00,  3.00),4>
<array 0x1100c88 ( 1.00,  2.00,  3.00,  4.00),4>

Pack

Sends input values into packs of the given size. Pack(2) with a counter gives:

<array 0x1101130 ( 1.00,  2.00),2>
<array 0x1101140 ( 3.00,  4.00),2>
<array 0x1101130 ( 5.00,  6.00),2>

Other improvements

We added some fields to the definition of a midi signal. You can now say when you want the event to be sent and how long it should last (for notes). This means you can just throw your messages at a Midi object and forget about them.

We will also improve the Turing object to send more then one value at a time (this will make it possible to send several notes on a state change or multiple control changes). You will usually glue a Lua object to these outputs to build the midi messages properly.

We started to write the Svm object (Support Vector Machine) to learn and predict from array streams.