Monday, 18 May 2015

Personalized TipToi zoo puzzle

My daughter has this TipToi pen and some books etc. for it. We like the idea and stuff very much and I came across this hack and this page recently. What a wonderful inspiration, thanks!

So, last week was my girlfriend's 30th birthday and I came up with the idea of giving her some personalized TipToi present. I decided to go for the zoo puzzle and replace the audio files with some personal greetings and songs from her family and friends.

It worked out very well & she was very surprised and I'd like to share what I did to create this (and document it for my own purposes ;-) )

1. create a list of who you want to put where. I simply printed out this picture and wrote the names on it

2. install the tttool following the installation instruction here

3. create the ogg audio files speaking the digits 0 to 9 in English using this script

4. use this debug file to get the numbers of the single persons, animals, etc. on the puzzle
For the zoo puzzle: in the file Debug.yaml, replace the line
product-id: 24
product-id: 35
and create the debug gme file:

tttool assemble Debug.yaml Debug.gme

Now, copy the file Debug.gme onto the TipToi pen and start exploring the puzzle. For every animal etc. it should tell you a (five digit, starting with zero) number. Write down this number on your list or picture where you put the names. Maybe there is a system to it but I didn't need to understand it. I came up with this yaml file.

After putting all the ogg files (e.g. hi.ogg, havefun.ogg, JohnMary.ogg) into the directory "infiles", create the gme:
tttool assemble PuzzleImZoo_me.yaml PuzzleImZoo_me.gme

Now, remove the Debug.gme from the TipToi pen (since it refers to the same product id: 35) and copy the PuzzleImZoo_me.gme onto the pen and you should be ready!

Have fun!

Some more notes, room for improvements
- The entry
3718: # Fam. bei Pinguinen
  - $0==1? P(Sue)
seems not to refer to the whole family watching the penguins, but to the boy only (the one with the red trousers and blue sweater)

- While playing the puzzle, she got some "Bitte berühre zuerst den Einschaltknopf dieses Produkts" (Please touch first the power button of this product) messages for some persons standing around. I did not figure out why this happens yet, but it did not spoil the fun at all :-D

- I got a lot of audio files from smartphones which turned out to be quite easy to convert by the following two bash loops (with some renaming afterwards)

for file in *
do ffmpeg -y -i $file $file.wav

for file in *.wav
do oggenc --resample 22050 --downmix $file -o $file.ogg

One file behaved a little bit strange and returned the error
[alac @ ...] Sample depth 32 is not supported
whatever I tried. However, this online converter managed to do the job. Thanks!