We probably a rework for instrument music creation. I propose ABC format.
Posted: Tue Aug 15, 2023 9:24 am
I know, I know, this will definitely fuck up parity with all other codebases. You can't 'use your old songs', but frankly, the current system we use is so god-awful it's not worth keeping. It's from 2013 and it's really just completely garbage. It runs like shit, it's super buggy, and doesn't really support any music more complex. Even in songs that are entirely a single track it runs and sounds like absolute shit. Only a few select songs that have been specifically tweaked and tuned over and over again sound 'slightly' good with it. It's also incredibly frustrating for new players to learn and use, and always without fail just leads to them going to the wiki to copy-paste a song.
I propose switching to a different music notation format, preferably a pre-existing one that is easier to find tools for online that actually function well. midi2piano 'works' but it is horribly outdated for anything other than playing single-track songs. Need to sync up multiple synthesizers in game or something and would like the BPM to stay the same across all of them? Midi2piano doesn't do that. In fact, midi2piano just kindof picks a BPM at complete random, and doesn't stick to it the entire song. Some parts of the song will be five times faster then they're supposed to be, some parts of the song will be half the speed. It's just awful.
Letting people import midis is bad as well as we want it to be text that can be read, and played by the game, for the sake of reducing lag. There are a few good formats that work way better than the slop we have now, and most importantly, they're incredibly easy to create, but I think the best one is ABC v2.1.
ABC notation looks something like this:
Lines in the first part of the tune notation, beginning with a letter followed by a colon, indicate various aspects of the tune such as the index, when there is more than one tune in a file (X:), the title (T:), the tempo (Q: , the 1/4 is the beat and the 120 is how often that is per minute) the time signature (M:), the default note length (L:), the type of tune (R:) and the key (K:)
DOWNSIDES:
Focuses more on one-voice tunes instead of chords (The other similar format that focuses on chords, JAM, is completely gone from the internet.)
We'd lose the songs already put into the game by our current system
UPSIDES:
Extremely easy to read.
Extremely easy to write.
Several programs that can convert midi tracks directly into ABC file format already out there.
Stupidly large amount of documentation on it.
Fields for tempo.
Stupidly robust if you know how to use it.
We'd get like 15k more songs
COMPLETELY OPEN FORMAT.
https://abcnotation.com/wiki/abc:standard:v2.1 Check out the wiki for more stuff.
I really do think implementing a different format for the game reading the music would make it ACTUALLY worth trying to play new songs and fiddle around with super crazy setups with circuits and creating bands and stuff. ABC is my pick because of the incredibly expansive knowledge on it and the fact its 20x better than the janky piece of shit we have running right now.
If anyone's ever thinking of reworking the instruments (Please do, they're really not that good) please keep ABC notation in mind.
I propose switching to a different music notation format, preferably a pre-existing one that is easier to find tools for online that actually function well. midi2piano 'works' but it is horribly outdated for anything other than playing single-track songs. Need to sync up multiple synthesizers in game or something and would like the BPM to stay the same across all of them? Midi2piano doesn't do that. In fact, midi2piano just kindof picks a BPM at complete random, and doesn't stick to it the entire song. Some parts of the song will be five times faster then they're supposed to be, some parts of the song will be half the speed. It's just awful.
Letting people import midis is bad as well as we want it to be text that can be read, and played by the game, for the sake of reducing lag. There are a few good formats that work way better than the slop we have now, and most importantly, they're incredibly easy to create, but I think the best one is ABC v2.1.
ABC notation looks something like this:
Code: Select all
<score lang="ABC">
X:1
T:The Legacy Jig
Q:1/4=120
M:6/8
L:1/8
R:jig
K:G
GFG BAB | gfg gab | GFG BAB | d2A AFD |
GFG BAB | gfg gab | age edB |1 dBA AFD :|2 dBA ABd |:
efe edB | dBA ABd | efe edB | gdB ABd |
efe edB | d2d def | gfe edB |1 dBA ABd :|2 dBA AFD |]
</score>
DOWNSIDES:
Focuses more on one-voice tunes instead of chords (The other similar format that focuses on chords, JAM, is completely gone from the internet.)
We'd lose the songs already put into the game by our current system
UPSIDES:
Extremely easy to read.
Extremely easy to write.
Several programs that can convert midi tracks directly into ABC file format already out there.
Stupidly large amount of documentation on it.
Fields for tempo.
Stupidly robust if you know how to use it.
We'd get like 15k more songs
COMPLETELY OPEN FORMAT.
https://abcnotation.com/wiki/abc:standard:v2.1 Check out the wiki for more stuff.
I really do think implementing a different format for the game reading the music would make it ACTUALLY worth trying to play new songs and fiddle around with super crazy setups with circuits and creating bands and stuff. ABC is my pick because of the incredibly expansive knowledge on it and the fact its 20x better than the janky piece of shit we have running right now.
If anyone's ever thinking of reworking the instruments (Please do, they're really not that good) please keep ABC notation in mind.