The finger conductor utilizes Leap Motion as hardware, which gathers all the raw data regarding position and velocity information. And the whole design of the project can be divided into several modules, including listener module, center unit module, Amazon S3 module and mixer module, etc.
|
Logic DiagramThere are two main threads, recorder and player, which runs concurrently. The recorder are used to keep track on the the input from instrument listener and determine the current action through the switch logic. Then, there is a queue shared globally to storage the current action that needed. The Queue follows FIFO order. Once the queue contains multiple messages, another main thread, Player, could respond immediately and start a thread playing the sound. The player also keep recording the music. Once mission completed, it will stored them into a single file. |
Design Diagram The Leap-Motion API provides the raw data on position and Velocity. The listener will translate information in a clean format. The action making and music generating unit utilizes a state machine to transfer between different states in order to start/stop the music. The music mixer has the functionalities of concurrency, and will send creations to Amazon cloud S3 storage, from where users can download remotely. |
LISTENER |
CENTER UNIT |
AMAZON S3 |
MIXER |
Raw data is sent to backend ‘listener’ class. The ‘listener’ class then analyzes the input signal frame by frame, and filters out the those noise signals. After the data cleaning process, the ‘listener’ class delivers the processed data within the status of each finger & palm to specific center unit class regarding to different music modes, to the center unit module.
|
In the center unit, the backend analyzes the status of each finger, then transforms the action into music chunks. Correspondingly, the class plays different sounds through multi-threading techniques to avoid synchronize problem.
|
An unique function is in charge of recording all the chunk information, and eventually uploading the original chunk information on to Amazon clouds S3 server.
|
On any remote device, customers can view, download and play their creations through a separate music mixer application.
|