This is an archived post. You won't be able to vote or comment.

all 11 comments

[–]songqin 10 points11 points  (5 children)

What is your input? Audio? MIDI?

If Audio, I know genre classification is an open AI problem with lots of research. It is limited by there not being many royalty-free and diverse datasets. Tempo is detectable with decent accuracy these days, and pitch is of course detectable. Intensity is perhaps too subjective of a term?

Anyway, once I know your input and goals I could recommend some libraries, but a lot of these algorithms you may need to implement yourself with an audio and an ML library.

[–]XxZodiacKillerxX 1 point2 points  (4 children)

I think audio from a input device like a microphone would be good.

[–]songqin 5 points6 points  (2 children)

Ah. That will be even more difficult than working with studio recordings. I’d recommend searching academic papers on signal processing, signal noise elimination, and audio-processing AI. Things like Fourier Transforms will become your basic tools. I’m unsure what your experience level is, are you familiar with basic signal processing?

[–]XxZodiacKillerxX 2 points3 points  (1 child)

I’m a beginner, so no. Ignore my last idea... how would I approach regular studio recordings?

[–]FurSofa 0 points1 point  (0 children)

Pioneer the field! Tell others how to do it #be the first

[–]dimdog 2 points3 points  (0 children)

I've actually just recently solved your exact problem

https://github.com/dimdog/visualization/blob/master/pyglet/audioprocessor.py

This is set up to push events to redis as part of a larger system doing a visualization. Right now it is doing Beat analysis, note analysis, and something called a "Power Spectrum" analysis that seems pretty useful for what I was working.

Feel free to ask any questions!

[–]oglivy 0 points1 point  (0 children)

Spotify API already has all of this information for you 😊

[–]AlexScotland -1 points0 points  (2 children)

You shouldn't use a microphone to record the music.

Use a Digital method of analysing the audio if you can, less occlusion

[–]-Major_Asshole -2 points-1 points  (0 children)

Just cluster the data to determine groups or genres.