ClassicUO / ClassicUO

ClassicUO - an open source implementation of the Ultima Online Classic Client.
https://www.classicuo.eu
Other
546 stars 311 forks source link

Midi Music not working #1057

Open Arutosio opened 4 years ago

Arutosio commented 4 years ago

video

andreakarasho commented 2 years ago

https://github.com/sinshu/meltysynth/blob/main/MeltySynth/src/MidiFile.cs

Arutosio commented 2 years ago

what do you mean with this code?

Arutosio commented 2 years ago

the music on the game is in the .mid. Can read the clietn .mid?

SaschaKP commented 2 years ago

the midi files requires a way to translate them, that was linked by @andreakarasho, but also requires a sample database sound, since in the midi you only have simple choords and notes, but without any real sound...if you want midi, it will be a lot complicated, since most OS in modern PCs doesn't have any sample ready to use. So this is kinda pointless.

Arutosio commented 2 years ago

the midi files requires a way to translate them, that was linked by @andreakarasho, but also requires a sample database sound, since in the midi you only have simple choords and notes, but without any real sound...if you want midi, it will be a lot complicated, since most OS in modern PCs doesn't have any sample ready to use. So this is kinda pointless.

I believe that in the old versions of the client midi files were used (I'm not sure)

if the client is to be compatible with all the latest versions maybe it should be implemented

SaschaKP commented 2 years ago

the .mid or .midi files contains only the map of the tones used + the instrument to use (codes) + tempo, there isn't any sound in them, to make them work you'll need to install some midi database or instrument database in your pc, since midi aren't used anymore in modern computers

Arutosio commented 2 years ago

in my opinion if the idea is to make the client compatible with all versions without the need to modify the game files while keeping all the original files, it must be there in my opinion.

If it is really not convenient to implement it because it is not efficient, it should notify the user of the problem, in case someone tries to use the client with an old version of the latest online.

what do you think?