19 March 2014
Guest post: NiDiNi, made with Corona, nominated for Prix Jeunesse award
Griffilms is the longest continuously-running animation/media provider in Wales, whose productions have been distributed, bought and sold worldwide. The company specializes in animation, TV production, and interactive media. Griffilms has been delivering high-quality content across a wide range of mediums for over 20 years and has just been nominated for the highly prestigious Prix Jeunesse International animation prize.
Award-winning Griffilms’ latest TV series NiDiNi (We R Us) has just been nominated for the coveted Prix Jeunesse award. NiDiNi features the real stories of the children of Wales, animated especially for the screen. The series features an accompanying bilingual website and app which allows users to submit their own stories, jokes, or anything else they like.
The NiDiNi app features voice recording, audio manipulation and playback, real-time sound analysis interpreted as a graphic equalizer, real-time lip synching, and customizable animation. This can be saved and uploaded to the accompanying website, tagged with the user’s unique ID number, and run as standalone content without needing access to the device keyboard or any other native APIs. Clips uploaded by the kids are completely anonymous since all that’s being uploaded are numbers representing cartoon facial features and audio files. The server decodes these numbers and outputs the animation from a preloaded stock library alongside the pitch-shifted audio.
A simple yet effective method was used for background noise removal. Early in development, it was discovered that simply assigning different volumes to different mouth shapes didn’t always work because unwanted background noise would always yield animation jitter. This was solved by comparing each sound to the loudest volume heard so far in that session and then assigning those values to a particular mouth shape from the set. This way, the lowest volume recorded by the device — be it complete silence or background noise — would always be represented by the first image in the sequence (the closed mouth).
For the eye animations, the code had to generate more than just a random sequence. To appear natural, the eye position had to hold each position for a random time interval, giving infinite possibilities to the animation. Similarly, each time a closed eye was randomly selected, it had to be followed by an open eye symbol two frames later to provide the blinking mechanism.
The real-time graphic equalizer was achieved by saving the last ten audio levels in a table and comparing them to the loudest noise recorded so far. These ten bars were then assigned a height based on the ratio of the volume in comparison to the loudest volume, represented by a maximum height bar.
Curious to see it in action? NiDiNi is now available for free on the iTunes App Store: