klesun-productions / klesun-productions.github.io

MIDI song editor in a web page + soundfont player... and 100500 other misc web apps on my server
https://klesun.github.io/
10 stars 4 forks source link

Analyze every song and fetch sequence info #22

Open klesun opened 8 years ago

klesun commented 8 years ago

This primarily is for 10+ minute songs, like: [Europe, Clannad Etude, Robot Taisen, etc...] The info probably should be stored in some table and somehow graphically shown during playback.

For a start just exact comparison will be good. If needed, can do with some approximation in case some songs (like Banjo Kazoie) will have some small noise.

klesun commented 8 years ago

Now i think, it should be done differently. First of all, we'll store all songs in database and add a "totalSeconds" and "totalChords" columns. Then order by them and manually find and set the sequence position.

klesun commented 8 years ago

Also, we have quite an amount of midi, typed by hands in real time. You can easily detect them - if you group by duration you'll get quite an amount of unique durations. So what i ask from you - add the "wasRealtime" column and fill it (or maybe "uniqueNoteLengthCount"). We'll use a different algorithm to parse them - more rough approximation, and to both directions Example: "Tales Weaver - Dawn.mid", btw, Musescore easily parses it.

klesun commented 8 years ago

We also have some cases like "Elfen Lied - Lilium (2).mid", when duration is ok, but something happened with transcribers keyboard and chords are disparted. We could somehow classify these songs and fix. (and yu no, well, Musescore can parse it too. And it has awesome soundfonts)

klesun commented 8 years ago

I just came to a minimum-lines-of-code solution how to ensure that files we work with are always in the good format - open and save the bad files in Musescore. I don't even need to build it... likely - just a bit of magic with console / some gui tasker. Yes, sounds like a winner strategy.

klesun commented 8 years ago
$ musescore "Elfen Lied - Lilium (2).mid" -o huj_from_cli.mid

You can also add a filename before the -o if you want to import and export files from the command line