shrimants
1000+ Head-Fier
- Joined
- Nov 8, 2006
- Posts
- 1,176
- Likes
- 81
I am interested in conducting an experiment. Let me know what your thoughts are on how I can accomplish the following.
I would like to iterate through my entire music library, one song at a time. I read the song's basic information (artist, album, track number) and store it in a database. Then, I go through the song 1/100th of a second or 1/10th of a second or so at a time. Essentially, I take the song, sample by sample, and create a spectrum analysis of it. This yields frequency and amplitude at that frequency per sample. I store this information in the same database along with artist/album/tracknumber.
Once this is all done, I want to be able to analyze the information. What songs have the lowest frequencies and what are they? What songs are my "bassiest"? what songs have the highest pitches in them? and a whole bunch of other measurements.
For methodology, the first step is to create the database format. Next would be to figure out how to read flac and mp3 files. Next would be to figure out how to recurse through directories. Next, i'd need to figure out how to work FFT algorithms, possibly in a multithreaded environment so this doesnt take days. Finally, i'd need to write or somehow come up with search/sort/statistical algorithms that can parse through the database one song at a time and generate reports.
If some software to do this already exists, let me know. Otherwise, I was thinking something like Matlab and C++. I can only code in C++, though matlab isnt too difficult to re-teach myself. I had a brief introduction to it back in 2007 so its been quite a while, but i think they have some pretty simplified tools for dealing with this sort of analysis and statistics.
I would like to iterate through my entire music library, one song at a time. I read the song's basic information (artist, album, track number) and store it in a database. Then, I go through the song 1/100th of a second or 1/10th of a second or so at a time. Essentially, I take the song, sample by sample, and create a spectrum analysis of it. This yields frequency and amplitude at that frequency per sample. I store this information in the same database along with artist/album/tracknumber.
Once this is all done, I want to be able to analyze the information. What songs have the lowest frequencies and what are they? What songs are my "bassiest"? what songs have the highest pitches in them? and a whole bunch of other measurements.
For methodology, the first step is to create the database format. Next would be to figure out how to read flac and mp3 files. Next would be to figure out how to recurse through directories. Next, i'd need to figure out how to work FFT algorithms, possibly in a multithreaded environment so this doesnt take days. Finally, i'd need to write or somehow come up with search/sort/statistical algorithms that can parse through the database one song at a time and generate reports.
If some software to do this already exists, let me know. Otherwise, I was thinking something like Matlab and C++. I can only code in C++, though matlab isnt too difficult to re-teach myself. I had a brief introduction to it back in 2007 so its been quite a while, but i think they have some pretty simplified tools for dealing with this sort of analysis and statistics.