top of page

Technical Information-

Data analysis

SYSTEM ARCHITECTURE

systemarc.JPG

DATA OBTAINED

While collecting data, the conductor holds the phone facing upwards like a baton. Then, the conductor  conducts 10 measures with a metronome playing in the background. We used a sampling rate of 10hz, however that value can be customized in our program.

We found that we only need to use the acceleration data in the x and z directions because y movement is minimal. We assumed that we would need to use the eigenvector analysis to classify time signatures, but that prediction was incorrect.

We obtained acceleration data in the x,y and z directions while conducting using the MATLAB phone app. For each data set, we assigned the intended time signature and tempo. We tested the same time signature and tempo several times to make sure there weren't any flukes. We then proceeded to test different time signatures and tempos.

Conducting in 4/4

DATA ANALYSIS

data formation

In order to more easily interpret and analyze the motion data, we first use the fast fourier transform to convert the data to the frequency domain. We noticed that each time signature would have a different number of frequency peaks and different frequency values. 

data filtration

We isolated the meaningful data, getting rid of excess data and noise. We first wanted to remove the negative frequencies because they are the same magnitude as the positive frequencies. We did this by finding the largest peak near 0 Hz and removing all data points with a frequency under that value. We used the sort function in MATLAB to sort the frequencies by their amplitude. Then we eliminated all frequencies greater than that of the highest non-zero peak. This left us with all the relevant frequencies necessary for time signature and tempo calculations. 

tempo calculation

In order to calculate the tempo we look at the frequency related to the highest nonzero peak. By multiplying this frequency by 60 we get the tempo in beats per minute. This makes sense, because the frequency is measured in Hz, which is equivalent to 1/seconds. In order to get beats per minute we simply multiply the beats per second frequency by 60 seconds.

Motion Model

time signature

To find the time signature we can look at the cleaned frequency domain data. Since each time signature motion is different, each has its own unique frequency domain graph, with peaks in magnitude corresponding with the number of beats per measure. The peaks are evenly distributed in the cleaned data. In order to determine the time signature we check for peaks at predetermined intervals. It is considered a peak if the magnitude of the specified frequency is over some threshold value. We used a threshold value of 0.3. We first checked if the frequency 3/4 of the way through our cleaned data was a peak, if so we could safely assume the time signature of the data to be 4/4. For 6/8 time we checked for a peak at 5/6 of the way through the cleaned data. We checked 2/3 of the way through for 3/4 time, and 1/2 way through for 2/4 time. If none of the frequencies we checked are peaks, we assumed the time signature had not been implemented in our program.

DATA &

RESULTS

Conducting in 2/4 Time

24Orig2.jpg
24Cleaned3.jpg
Output24.JPG

Conducting in 3/4 Time

34OriginalSigExampEdited.jpg
34CleanedSigExampEdited.jpg
Output34.JPG

Conducting in 4/4 Time

44OriginalSigExamp.png
44CleanedSigExampEdited.jpg
Output.JPG

Conducting in 6/8 Time

Output68.JPG
68Cleaned3.jpg
68Orig3.jpg

DISCUSSION

From the graphs, it is noticeable that the frequency data is very clean. This allowed us to analyze the data without a lot of filtering. The reason this may be the case is that the motion is repeatable with very strong frequencies. Music relies heavily on steady beats and these steady beats help make data analyses into neat patterns. 

​

We were correct in assuming that we didn't need to use the y acceleration. However, we were incorrect in assuming we would need to use eigenvalues to compare data. We are actually able to analyze the data without comparing new data with base data sets. We can simply use a Fourier transform and analysis of the patterns within each time signature. We believe this makes our model more robust since it does not rely on the quality of base data. 

Olin College of Engineering

Quantitative Engineering Analysis

Sander Miller and Jasmine Kamdar

bottom of page