Step Process
first we brainstormed Ideas on how we can Have a time signature calculator first objective: take in audio second objective: extracting data from the audio thrid objective: come up with an algorithm to estimate the time signature with the data extracted PROBLEMS FACED IN FIRST OBJECTIVE: -how will the code take in the audio file? -which library do we use with handling audio files? FIRST OBJECTIVE SOLUTION: -code will take in file path -library essentia will be used PROBLEM FACED IN SOLUTION 1: -essentia only works with linux SOLUTION 1: -use a different library SOLUTION 2: -switch to replit, which is based on linux SECOND OBJECTIVE SOLUTION: -use functions from the essentia library and use algorithms to retreive the tempo and the beat ticks PROBLEMS FACED IN THIRD OBJECTIVE: -which algorithm to use? -how can we find the time signature with only the tempo and the total amount of beats extracted from the audio? -how will we know how the accuracy or precision? -how will the code tell the differnce between 3/4 signature and 6/8? SOLUTION: -first we found the total length in seconds an 8/8 measure will be - this will allow us to find any time signature in terms of X/8(it can be converted to X/4 if the faction is even) -then we use the array of beats to count how many beats fill up the length of an 8/8 measure -come up with an alrgorithm that will then calculate a rough estimate with an uncertainty - the user will then be able to use the new audio that is generated with beat ticks to come up with a more precise measurement
What it does
The code takes in a WAV form audio and then estimates its time signature, reproducing it in a basic metronome that the user can here.
Techological Challenges we ran into
Initially we used the library librosa, and tried to estimate the time signature through the use of pure mathematics. We found that either calculations didn't make any sense are we received errors. We also had problems loading the Essentia as it could not build properly. Ultimately forcing us to take our code off of visual studio code.
Accomplishments that we're proud of
First and foremost we are proud of actually completing the hackathon. There were certainly moments when things seemed bleak. We are proud that we were able to get the essentia library working despite the build problems.
What we learned
I think we've learned the importance of planning. Despite how much it has been stressed to us in class, in actual application we know see how important it truly is. We also learnt the implementation of a two new libraries, that being librosa and essentia.
What's next for Time Signature Calculator
In the future there would be three main focus's for us. The first is creating a more precise time signature, currently the estimations can be vague and we are looking to improves this. The next implementation we would like to add is the ability for the user to create their own polyrhythm based off input. Finally we would also like to turn it into a web app for easy access and implementation for the user.
Log in or sign up for Devpost to join the conversation.