Sleepwalking / Rocaloid-old

OBSOLETED! Moved to http://github.com/Rocaloid
GNU General Public License v3.0
63 stars 16 forks source link

Consider using MusicXML format for exchange? #16

Open m13253 opened 11 years ago

m13253 commented 11 years ago

After I have read some information about Cadencii, it uses MusicXML to exchange music data with other applications.

I wonder, can Rocaloid accept MusicXML as input file? It is convenient to extend its features.

As I know, many software supports MusicXML, such as MuseScore, Lilypond, etc. So that one can easily export MusicXML file from another app and import it here.

It seems that Rocaloid accepts an ini file, which is obviously poor-extendable. We can use a modified version of MusicXML (for example with additional information included such as phonetic symbols). Since it is XML, adding an attribute will not affect the existing file format and is still compatible with other apps.

P.S. I do not expect this feature to be implemented in a short time. I hope you keep in mind that this may be a feature in the future. So let us keep this issue open for a long time.

Hint: VOCALOID 3 also use XML (but not MusicXML) instead of using modified binary MIDI format as in VOCALOID 2 (MIDI format is formed so tightly that hardly another feature can be appended). So this shows the advantage of XML.

Sleepwalking commented 11 years ago

Rocaloid accepts both .vsqx and .rsc. The later one is Rocaloid's own data structure for its editor. The language of .rsc is RDL(Rocaloid Descriptive Language), which has similar structure as XML but I thought it is more light-weighted than XML. RDL is high-extendable because it ignores all words that can't be recognized. RSC is removed from RE3 because RE3 is only an engine and shouldn't be related to Rocaloid Editor. It is replaced by RVS, which only contains phonetic information and nothing about music theories. Considering the massive formant parameters, RVS will be binary. Whatever, you can write a converter, like vsqx2rvs or MusicXML2rvs.

You should take a look at issue #14.