FEATURE REQUEST: Music continuation/manipulation?

Make games! Discuss those games here.

Moderators: Bob the Hamster, marionline, SDHawk

Post Reply
User avatar
KF Harlock
Slime Knight
Posts: 194
Joined: Wed Oct 22, 2008 10:45 am
Location: East Coast USA
Contact:

FEATURE REQUEST: Music continuation/manipulation?

Post by KF Harlock »

Hey dev folks.

Would it be possible to either...

1.) have an option to have songs on the map continue where they left off after a battle? Maybe only for certain formats if this is difficult to implement across the board?

2.) introduce plotscript commands to read the current position of a song and to start a song at (x) seconds in? This would just enable us to replicate 1.) of course, but I'm not sure which approach would be harder.

---

PS - I'd also love the fullscreen backdrop editor with the key that lets you hide the palette/color selector and/or move it around :P

PPS - Love you guys <3
SPELLSHARD: THE BLACK CROWN OF HORGOTH now COMPLETE! <a href="http://www.slimesalad.com/forum/viewgam ... 4363">Grab it today!</a>
TMC
Metal King Slime
Posts: 4101
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

I'd love to see that. When it comes to audio features we're always limited by the abilities of our default music backend, SDL_mixer, which does't have much in the way of features (we'd very much like to switch to something else). I see that it does actually have the ability to seek within an .ogg/mp3 file, and possibly within module music if compiled in a certain way, but not within .midi files. Strangely there's no function to get the current music position... but that can be estimated hopefully quite accurately by just counting from when we loaded the file. So yes, even if it doesn't work for midi this is definitely a feature worth adding, and not even that much work. A map setting to resume music after a battle is a good idea. Hmm. I wonder whether we should even make it default to on for existing games?


What was the reason for hiding the palette? Just to see more of the image you're working on? Would be nice but seems less essential than zoom and panning for a backdrop editor.
Last edited by TMC on Wed Oct 26, 2016 1:03 pm, edited 1 time in total.
User avatar
KF Harlock
Slime Knight
Posts: 194
Joined: Wed Oct 22, 2008 10:45 am
Location: East Coast USA
Contact:

Post by KF Harlock »

Thanks for the detailed reply, TMC. I always appreciate learning a bit more about the internals of the engine. I'm glad to hear that the music stuff is do-able and not that difficult! I think if you add the setting to resume music after a battle, defaulting to "on" is a good way to go -- I'm not aware of any (pro) RPG in which the music restarts after a battle interruption, so it seems like the behavior people would expect?

And yeah, my thinking was that the key to hide the palette selector (or move it between the four corners) would just be so you could see all elements of the image while working on them. Panning and zooming would be useful, sure, but I didn't want to be greedy!
SPELLSHARD: THE BLACK CROWN OF HORGOTH now COMPLETE! <a href="http://www.slimesalad.com/forum/viewgam ... 4363">Grab it today!</a>
TMC
Metal King Slime
Posts: 4101
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

I'll try to add it in the next few days. If nobody has any reason to want the music to reset after a battle then there's no point even adding a map setting to toggle it, which only adds clutter, so question to the audience: Does anyone here want such a setting?

Of course, the palette does take up a lot of screen space. But less so if you can just increase the size of the window.
User avatar
guo
Metal Slime
Posts: 718
Joined: Fri Dec 04, 2009 9:12 pm

Post by guo »

The option to toggle would still be nice - for instance I sometimes use ambient sfx instead of music.
Last edited by guo on Thu Oct 27, 2016 11:35 am, edited 1 time in total.
vvight.wordpress.com
User avatar
Bob the Hamster
Liquid Metal King Slime
Posts: 7460
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Post by Bob the Hamster »

I would like the option. In my own games I think i would prefer map music starting over after battles
User avatar
KF Harlock
Slime Knight
Posts: 194
Joined: Wed Oct 22, 2008 10:45 am
Location: East Coast USA
Contact:

Post by KF Harlock »

Even though I would virtually always use the "resume" rather than "restart," I also agree that a toggle is the way to go. Never know when someone is going to find a clever use of an option in the OHR.
SPELLSHARD: THE BLACK CROWN OF HORGOTH now COMPLETE! <a href="http://www.slimesalad.com/forum/viewgam ... 4363">Grab it today!</a>
TMC
Metal King Slime
Posts: 4101
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

OK.
Ah yes, since there is no music fading you likely wouldn't want to it resume abruptly. Actually, I've just had another look at SDL_mixer and am surprised to see that it supports both fading in and out music (no crossfading though), so I'll try to add that as well. I don't know whether it works for MIDI. I did know there was some fading support, but I thought there was a reason we weren't using it; however it looks better than I remember. I do anticipate some potential problems with music fading. For example I see that if you ask SDL_mixer to do two fades at once it will actually freeze the whole program until the first is done. Also, MIDI volume manipulation is a bit of a disaster, mostly the fault of operating systems.

I wouldsettings for music fade in and fade out times (might as well separate them) when interrupting/ending and resuming a track. There could also be a third option for fade in time when starting a new track (defaulting to 0, obviously, but very useful for looping tracks). And now the same question that we encounter over and over, and which I never know the answer to: should these be global settings? per song (in the music import/export menu)? overrideable with script commands only? also customisable for textboxes (for textboxes)? or options existing anywhere that you can play a song? with or without global defaults or per-song defaults?
I think the best answer to this and similar questions for other features would be "have the same settings everywhere, but hide them in a standardised submenu to avoid clutter"

Again, I would definitely default to a short (e.g. 0.15s) fade when interrupting a song, in all existing games. The current sharp clipping of songs sounds horrible. In fact, the engine used to music fading everywhere, but some time after the port from DOS it was removed because of problems (I don't remember what those were, but I think it didn't behave as well as the original DOS implementation).

(Better/real options for music and sound effect volume adjustment is one of those other major features I consider high priority, but not something I want to rush into, because of a lot of backcompat landmines.)
Last edited by TMC on Thu Oct 27, 2016 3:04 pm, edited 2 times in total.
Post Reply