~CONSTRUCTION OF AN ELECTRONIC TIMBRE
DICTIONARY IN C++ FOR MULTIPLE PLATFORMS
Naotoshi Osaka
Hiromichi Tsuda Yoshitada Yamada
Tokyo Denki University
School of Science and Technology for Future life
Tokyo, Japan
osaka@im.dendai.ac.jp, (tsuda,yamadagsrl.im.dendai.ac.jp)
ABSTRACT
We have been building an electronic timbre dictionary as a
support tool for sound creators, which provides them with
sound materials from environmental sound database. Since in
the previous system sub-modules were written independently
in multiple languages, we restructured and integrated the
subsystems in C++ to improve the processing speed and
usability. In order to verify these improvements, we ran
usability test using the search function of the three types,
which resulted in a 96.3% rate of task completion, and a MOS
(easiness) of 2.9, which was better than the previous system.
These scores are considered to be satisfactory. This paper
describes the system configuration as well.
1. INTRODUCTION
We have been constructing an electronic timbre
dictionary for the purpose of supporting computer music
composition and multimedia content creation.
For computer music composition and other sound
media content creation, finding sound material can be
the very first phase of the work sequence. However,
recording all the materials on one's own is costly and
sometimes impossible.
We have been constructing an electronic timbre
dictionary which provides sound material from an
environmental sound database for such sound creators,
with various search functions [1][2].
Freesound is a well known system of sound data [3].
The electronic timbre dictionary introduced here has a
browsing mode as well as sound registration with an
upload function for the users. The major features of our
system are: a variety of search functions including
inverse look up of the sound using onomatopoeia
besides forward search and keyword search, and GUIbased sound exploration: a single stream of a sound is
defined as a sound object and represented by a sphere in
a 3D domain [2]. Acoustic feature types to define the
displacement in 3D space are being under study that fits
well to our auditory perception.
Another aspect is that the system aims to act as a highquality sound database, so that the search results can be
used in content creation.
We have built a server-client application and a desktop
(stand-alone) application. For the former type, the
database can be shared publicly or limited to a closed
group. The latter type is useful for personal and private
use.
The purpose of the system construction so far is to
implement each module and examine each function
assigned to the module. Therefore each module has been
developed in different languages by different developers
the - sound browser mode is written in Adobe Flex and
the 3D timbre display function is written in Adobe Flash,
while the coordinate mapping of sounds are written in
C++.
Resultantly, each module behaves rather independently
and only the intrinsic function in each module has been
tested, and the sequential flow of two related models or
operation between two modules have not been
sophisticated. Since the first stage of system goal is
almost accomplished, we move to the second stage.
Our next goal is in specified sound search. These
independent functions should be integrated and the
relevant data should be available via fast and shared
access between modules.
Previous sub-modules were constructed in different
languages and some modules ran as a different
application. Resultantly, cross-compilation and linking
of two different languages were not necessarily possible,
and sharing parameters and data became complicated.
Because of the frequent update of the flash platform or
Flex SDK, its portability was low. Moreover, the
resultant application is more difficult to maintain and
has slower processing speed than one written in a native
program language.
Therefore we have implemented the second version to
consider strong cooperation among sub-systems.
Specifically, we aimed to achieve three goals: multiplatform (Windows, Mac OS and Linux), fast processing
speed, and easiness of linking modules. For these goals
we selected a single lower level language: C++.
The system adopts the Creative Commons licence [4]
for sound data, which is considered to be suitable for
sound content creators. For example, it is the license
offered by freesound.
This paper describes the system concepts and system
configuration and evaluation test results for various
sound search method.
2. SYSTEM CONFIGURATION
2.1. OpenGL as 3D graphics API
For 3D timbre display, OpenGL[5] is adopted as a
cross-platform 3D Graphics API. OpenGL is a portable
programming interface, and does not depend on the OS
and hardware types.
Also, we adopted the GLUT (OpenGL Utility Toolkit),
which is a class library of C++ designed based on the
OpenGL, which reduces system development costs.
471 2013 ICMC
0