New Song - Where Opposites Meet

Nikolaus Gradwohl2015-11-12T06:41:57+00:00

I made a new ambient track in bitwig-studio featuring 4 artificial voices exploring opposite pairs

where opposites meet

ttslib installation via the processing PDE

Nikolaus Gradwohl2013-03-16T09:56:14+00:00

Writing talking processing sketches just got a lot easier!

the ttslib just got added to the list of processing libraries that can be installed via the PDE!

So starting with processing 2 beta 7 you can install the ttslib by clicking on "Sketch -> Import Library ... -> Add Library". In the dialog that opens enter ttslib as a search filter and then click on the install button next to the ttslib entry.

Processing TTSlib version 0.4 released

Nikolaus Gradwohl2012-11-25T06:39:39+00:00

I just released a new version of my processing freetts wraper

in this version I added two new speak methods that allow to choose the speaker the voice is coming from

tts.speak( "I am in the center" );
tts.speakLeft( "I am on the left" );
tts.speakRight( "I am on the right" );

go to the ttslib project page and download a copy. Installation works as usual by unzipping the file in your sketchbook/library folder.

Processing TTSlib version 0.3 released

Nikolaus Gradwohl2010-12-30T07:46:41+00:00

I just released a new version of my processing freetts wrapper.

In this version the pitch of the voice can be altered by using

tts.setPitch( 1000 ); // set the base frequency to 1000 hertz
tts.setPitchShift( 1.2 ); // how much should the pich change over time?
tts.setPitchRange(100); // in this example the pitch will vary between 1000 and 1100 hertz

Go to the ttslib project page and download a copy. Install as unsual by unzipping it into your sketchbook/libraries Folder.

read more ...

Using Mbrola-Voices with the Processing ttslib

Nikolaus Gradwohl2010-06-20T17:33:00+00:00

To use mbrola-voices with the processing ttslib make sure you have installed the newest version of ttslib (version 0.2 at the time of writing). Download the mbrola-binary for your system and make sure the binary is named mbrola (or else freetts won't find it).

Make sure you can live with the mbrola-licence.

Download the us voices you want to use and unzip them to the directory where your mbrola binary lives.

on my linux system the content of the mbrola directory looks like this


in the setup method of your processing sketch set the absolute path to your mbrola directory as a java system property. Now the name of the mbrola voice you want to use can be added as a string parameter to the TTS constructor

import guru.ttslib.*;

TTS tts;

void setup() {
  tts = new TTS("mbrola_us1");

void draw() {

void mousePressed() {
  tts.speak("Hello! I'm a talking processing sketch!");
read more ...

My name is

Nikolaus Gradwohl2009-09-02T16:44:00+00:00

Varvara Guljajeva is using my processing tts library for her lates project My name is

My name is - is a metaphorical visualization of nowadays-human beings. In my point of view we are not bounded to one body anymore. We are extended through networks to infinity. The location does not matter, what matters is connection. Thus, at this point I totally agree with Mitchell “disconnection would be amputation. I link therefore, I am.” We are becoming gradually fully equipped and totally dependent on technology cyberorgs.

The installation consists of 4 dolls in each a speaker inside, 4 relays, arduino, a computer, and a modem. We are using Processing, TTS (text to speech), and Arduino. The independent and at the same time isolated network is created. IP addresses are continuously renewed and sent to a random doll. Thus only one doll is speaking at a time (4 speakers are controlled by 4 relays through arduino).

the installation looks really cool - a bit creepy what she did to the dolls :-)

read more ...

ttslib for processing

Nikolaus Gradwohl2009-05-16T20:31:00+00:00

i have written another library for processing. This time its a wrapper around the freetts library

now processing sketches can have a voice too.

click here to go to the project page.

i cannot present an applet as an example this time, because freetts doesn't work in applets. So i show the example.

import guru.ttslib.*;

TTS tts;

void setup() {
  tts = new TTS();

void draw() {
  ellipse( 35, 30, 25, 35 );
  ellipse( 65, 30, 25, 35 );
  ellipse( 40, 35, 10, 10 );
  ellipse( 60, 35, 10, 10 );


void mousePressed() {
  tts.speak("Hi! I am a speaking Processing sketch");
read more ...