Pyrdacor / Ambermoon.net

Ambermoon rewrite in C#
GNU General Public License v3.0
419 stars 22 forks source link

[Feature] Music playback #30

Closed Metibor closed 3 years ago

Metibor commented 4 years ago

Okay, I will start to implement it.

My thoughts so far:

IAudioPlayer For playing the audio tracks Methods like SetTrack, SetVolume, Play, Stop. Maybe Pause/Continue for the default track, because one thing that bothered me is, that the tracks alway start at the beginning.

Implementations will be:

Can be switched via ambermoon.cfg (and later in game)

IAudioProvider For loading/extracting and caching the audio data and providing it to the AudioPlayer

Implementations will be:

AudioTrack Enumeration for Map.MusicIndex with all audio tracks 32 in game files + 3 for intro, menu and extro + Index 0 for Default Track

DataNameProvider Could provide the song names, but I don't think that they are really needed.

Pyrdacor commented 4 years ago

Sounds awesome. 😊

Songnames are already loaded but I also think they aren't needed. I added them so others can use the lib to retrieve all information.

a1exh commented 4 years ago

There is a closed source sonic arranger player built into Deliplayer for Windows.

https://www.exotica.org.uk/wiki/DeliPlayer

The two authors Florian Vorberger & Peter Kunath were nice guys, maybe they would share their code. If you can find them.

Pyrdacor commented 4 years ago

Thanks Alex. Maybe this is a good option.

Pyrdacor commented 4 years ago

@Metibor I found this C# Sonic Arranger to MIDI converter: https://github.com/IllidanS4/AmiMus/blob/master/SonicArranger.cs

IllidanS4 has done some cool stuff. I guess at least we can use the code to read the Sonic Arranger format. Maybe even conversion to WAV. Or we use the midi with BassMIDI.

jr-riketz commented 3 years ago

How far is it with the music? I'm very curious how it feels with music. Memories ;-)

Pyrdacor commented 3 years ago

Haven't heard from @Metibor for a while. Guess he is busy. Hopefully he will find some time for it soon. I am very excited about this as well. 😊

Metibor commented 3 years ago

Hi @Pyrdacor, great to see that there is so much progress in the project and that you are getting help from other people!

As you have guessed correctly I was very busy in the last months and unfortunately this situation will not change in the forseeable future. 😥 So the best thing would be to remove me from the music task.

But at last I was able to commit anything I had done in the past in separate branches in my repository today.

That is: audio Simple MP3 playback via NAudio (based on v1.1.11). The music is playing in map screens only. It includes a powershell script to download and rename the files as needed audio-merge Same as above, but merged with current master 856eecfe1771ff9f1648251763926c0141233966 mousewheel Mouse wheel interaction in the inventory screen (I think it you added that a while ago, so it is obsolete) flymode I added the ability to tilt the camera and change the height to debug some of the texture mapping issues screencords Another debugging thing to display the ingame screen coordinates (useful for text placement) updatefix A while ago the map name was not updated after a map change and I think that fixed it (should be obsolete)

Have a look at it and grab what you need.

For now, I wish you very well and hope that the project can be completed. I will have a look at it from time to time and maybe I can do some play testing in the future again.

Pyrdacor commented 3 years ago

Hi @Metibor. Nice to hear from you. I understand that. Everyone is busy often so don't worry about it. I will add music playback then. Thanks for sharing your efforts. They will become useful for sure.

Would be cool if you step by from time to time. I for sure will complete it as long as I am able to.

Best of luck for you and thank you for all your contribution. Really appreciate it.

Pyrdacor commented 3 years ago

Is working now. New version will be coming soon.

jr-riketz commented 3 years ago

Is working now. New version will be coming soon.

I am so excited