Lua scripting with modules

TILT!Audio features a lua runtime 5.2 to control additional extensions like shakers, LED-lights and also servos.

To make this possible TILT!Audio firmware embeds a lua runtime (lua virtual machine) and loads a “init.lua” script from the sound directory.

The init.lua script already has access to all core lua language features and also the TILT!Audio bindings see lua reference. The binding allows access to the sound engine, communicate via i2c, logging messages and get information about the current installation.

Lua in its language ecosystem also offers modules and package managers that allows installing and managing modules that extend lua features. One of this package managers is luarocks.

Luarocks

Using luarocks as package manager to install a new module together with TILT!Audio is not so straight forward as you can read it on most websites, because the linux running on a TILT!Audio card is tailored down to a minimum to run as efficient as it should to produce sound and nothing else.

What is missing for example is a c compiler that most lua modules require as they come as a combination of lua code and c code.

Also luarocks requires a certain directory structure that is aware of the different lua versions and different places in the system where the lua runtime should look for “modules” (which is *.so and *.lua files).

The TILT!Audio start script does set the required environment variables to let lua runtime find modules, but still not in that way that a module installed by luarocks would expect.

Continue reading “Lua scripting with modules”

New Revision 3.5 – 3.7

What’s new

The most important change since the latest release: the annoying “sound interface error” with some WPC machines (TAF, STTNG, …) is now gone!

The old discrete decoder hardware build based on 3 smd logic chips was replaced by a STM32F4 micro controller module. This way the micro controller can talk to the game, avoiding the “sound interface error” and also takes over the command decoding.

There some more advantages with this new design:

  • no more jumper. Data east input or wpc input is recognized automatically
  • no more smd soldering. The new mcu module is normal through hole.
  • no need for analog digital converter (for old style data east pot). The STM32 takes over this task as well.
  • no need for pull up resistors networks. The STM32 has internal pull ups.
  • no decoupling caps for smd needed.

All in all there are 10 pieces less to solder and replaced by one STM32 module (plus one resistor).

Other improvements

Additionally there is an extended connector for the OLED display (was already on rev 3.1) that can be used with both types of OLEDs (either GND left or Vcc left). Depending on your OLED type you need to use the upper or lower row to connect.

More changes

The HF filtering at the amplifier outputs are now optional. Only a very few user were ever effected by that. So you could still assemble the 6 impedance filter and caps if you like, but the parts will no longer be included in the kits. Instead you need to bridge the L1 – L6 with a wire (or solder jumper).

A word on sound

Many questions these days are about sounds and the fine grained setup you can do with TILT!Audio.

First of all there are 2 types of sound packs:

  • Old style in directories
  • Altsound: all in one directory together with a csv table.

Features of both formats are slightly different, but mostly one can categorize sound effects in:

  • background music (or simply music)
  • voice callouts (or just voice)
  • special effects (or just sfx)
  • jingles (play over a music and music continues)
  • singles (play once and terminate the playing music)

In addition to that there’s volume control that balanced the volume of music, sfx, voice, jingle and single.

Gain

First there is a gain, that allows to raise or lower volume level for each sound effect. Normal level is 50, but it can be adjusted from 1 to 100.

So if some sound effect seem to be too low, you can just go to the web UI and raise the gain.

Here is one difference between directory sound packs and altsound packs:

While in both cases each sound effect has its individual gain, the directory style also has a default for a category: gain by type!

So if you want to raise volume level for voice in general, just use the sliders GainByType in the webUI

Change default gain for a category
Continue reading “A word on sound”