Music volume and ReplayGain/FLAC support

Have a question, suggestion, or comment about Aleph One's features and functionality (Lua, MML, the engine itself, etc)? Post such topics here.

Music volume and ReplayGain/FLAC support

Post Dec 31st '18, 08:01

There aren’t enough options for music volume. Basically, you have to suck out all the dynamic range from a song for it to even be audible in-game for many people, which is ridiculous. According to BladeZero, who compiled an unofficial M2 soundtrack, you had to amplify songs an average of +6.7 dB just for them to be audible in-game, which would make them painful to listen to anywhere else. You shouldn’t have to make music sound bad just for it to be audible in-game.

As a result, I propose, as a crude fix, offering a much wider range of music volume options – say, allow players to amplify it by at least another 10 dB. However, a better long-term solution would be implementing ReplayGain, so that if a scenario employs songs with a wide range of volumes, players don’t need to quit to alter the music volume. IDK how much work this would entail; at some point I will look to see if there are any existing ReplayGain libraries for C++.

My other audio issue is that A1 still doesn’t support FLAC. AFAIK, it uses libsndfile, which reads FLAC files, for its audio library, so hopefully this should be an easy fix.
People should not be afraid of their governments. Governments should be afraid of their people.

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

Fool's Gold · Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Dec 31st '18, 12:00

The Marathon music is audible in game and hasn’t been amplified. A lot of hyperbole in your post.
User avatar

treellama
Pittsburgh

Post Dec 31st '18, 13:21

I’m not having any issues hearing the music from the new Eternal beta, but I’ve got the music volume turned up to the maximum, while the sound effects’ volume is at 2/7. Other people have reported finding the music inaudible after doing exactly the same thing. It’s possible this is a 1.2 versus 1.3 issue or an OS issue.

There’s also the issue that M1 doesn’t have any ambient sounds. That might actually be the deciding factor between why M1’s music doesn’t seem to be inaudible for anyone, but the remastered Eternal music is. Since I can’t recreate the issue on my computer, though, I can’t say for sure.
People should not be afraid of their governments. Governments should be afraid of their people.

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

Fool's Gold · Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Dec 31st '18, 15:31

I don't really understand what you're asking for. If dynamic range is the problem, then how would more volume options help unless you're expecting the player to constantly adjust the music level in-game (which the player should not have to do)? Or if it's a problem with consistency across tracks, that's an issue with the scenario's mastering job and not with the engine.

I can't really see any issue which requires audio to be bumped by more than 1-2db being anything other than an issue with the audio itself, given that the levels have been fine for the music in other scenarios I've played.
User avatar

$lave

Post Dec 31st '18, 22:42

Dynamic range is an issue because of how peak loudness works. Digital audio has a peak loudness beyond which it’s impossible to proceed. As a result, if a track already hits the peak loudness, then the only way to make it louder is by stripping out dynamic range, which if the people mixing/mastering the music don’t care or don’t know better, results in the flattening of peaks and troughs, or digital clipping. As a result, you end up with atrocities like the original release of Metallica’s Death Magnetic. People criticised these for being too loud, but the issue isn’t actually so much loudness per se; it’s simply the lack of dynamic range on the album that was a result of the album being mastered as loudly as it was. Simply reducing the album’s levels wouldn’t actually have changed the issue; you’d be left with the same lack of peak and troughs. The problem in this case was introduced during the mixing phase, though it often creeps in during mastering.

I might not have explained this all that clearly, but TV Tropes (yeah, I know; I apologise for stealing away the rest of your evening) has a pretty good overview of the loudness war. This is fairly technical stuff that not everyone will notice right away, and it’s much more of a problem when you’re listening on headphones (and without EQ applied) than it is when you’re listening on a car stereo or whatever. A lot of people might not notice it consciously, but it’s a consistent issue for me at times.

The biggest reason I see differing levels between tracks as an issue is if you end up taking tracks from multiple sources, particularly MP3 sources or other lossy sources. In that case, if you want to maintain consistency between tracks, the only way is to edit the audio again, and I’ve already outlined the issues with editing MP3 audio in the Discord; however, for those that don’t recall, the issue is that lossy compression algorithms are designed to work from lossless audio, and compressing audio from a lossy source ends up creating audio that sounds really, really bad. There are ways to create a crude approximation of lossless audio from a lossy song, but it requires software that most people probably don’t possess and/or can’t afford.

I suspect most of the scenarios you’ve played also probably haven’t had the levels of something like post-rock or progressive rock, where there are often extended quiet passages contrasting with the loud ones. The loud passages in progressive rock songs usually come out fine, whereas the quiet ones… don’t always.

In any case, the Marathon soundtrack is all within the DR10-DR12 range, where DR is a measure of the dynamic range of a given track (higher = more dynamic range and therefore usually quieter). Some of the songs in the revised Eternal soundtrack wound up hitting as high as DR16 (specifically “Chomber” and “Flippant”). In that light, I’m not all that surprised that some people are having an issue hearing some of the songs.

ETA: …after looking at the TV Tropes article I think I should’ve just posted the trope image rather than writing that wall of text. Picture is a thousand words and all that.

rsz_better_american-idiot_2503.jpg
rsz_better_american-idiot_2503.jpg (26.66 KiB) Viewed 1128 times


That’s, I suspect, the main reason loudness is the issue.

(edited because hotlinking the image wasn’t working)
Last edited by The Man on Jan 1st '19, 00:06, edited 1 time in total.
People should not be afraid of their governments. Governments should be afraid of their people.

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

Fool's Gold · Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Dec 31st '18, 23:11

I don't need an explanation of dynamics or how digital audio works; I do audio/dsp programming and have been producing music digitally for years + do my own (albeit crude and unprofessional) mastering.

ReplayGain algorithms are for contexts where you don't have control over the mastering of tracks relative to eachother. There's no reason for AlephOne to include such an algorithm, when scenario designers are fully capable of mixing and mastering their music so that it has the proper dynamic range and EQ to stand out under the sound of gameplay.

If people are complaining that they can't hear the music under normal gameplay then you've messed up your mastering. The point of mastering music for a video game is to make it work in that context.
User avatar

$lave

Post Dec 31st '18, 23:39

There is an issue of control over tracks if you weren’t the one who mastered them and/or they aren’t available from lossless sources, though. That was one of my primary points in that wall of text. A lot of times, scenario creators aren’t the ones who make the songs used in their games, and the artists who make them may either not make lossless versions available or may not know much/anything about mixing/mastering.

My other point is that you shouldn’t have to sacrifice audio quality for the songs to be audible in a video game. I can master the songs 5-7 dB louder so others no longer find them inaudible, but I shouldn’t have to. That’s a lot of amplification, which means a lot of dynamic range to sacrifice. A lot of the songs in Eternal were originally in the DR5-8 range, which is… bad, and it’s no wonder they were giving me headaches. I can make new versions that have more comparable loudness to those of the original versions, but if I do that, then I’ve at best made equally loud versions that simply don’t clip and have more high frequencies. I don’t want equally loud versions. I want more options to reduce the volume of the game audio relative to that of the music so that the whole problem is eliminated.

An example: “Rushing” was DR7 in the original release, with an RMS score of -8.78 dB, which is too loud. It was literally giving me headaches every time I would play “We Met Once in the Garden”, back when it was still used on that level. The remastered version is DR12 and has an RMS score of -15.12 dB. Similarly, “What About Bob?” was DR6 with an RMS score of -9.67 dB and is now DR11 with RMS -15.18 dB. The new versions no longer give me headaches, but now I have people complaining of not being able to hear them. There isn’t a solution with the current settings that will satisfy both of us.

That, to me, is an issue with the game software. I don’t see what’s so difficult about simply programming more options for audio levels into the game software. It seems a trivially easy fix. I suspect it would take someone who actually knows C++ less time to implement this in Aleph One than it’s taken me to type all this out.

I’m not asking for ReplayGain to be implemented now, to be clear, but it would be nice to have sometime down the road.

ETA: The levels of the new Eternal soundtrack aren’t actually vastly different from the Marathon 1 soundtrack’s levels, either. The Eternal soundtrack ranges from -20.15 dB RMS for “Chomber” to… -10.98 dB RMS for “Carbon”, actually, though that one’s a bit of an outlier. The M1 soundtrack ranges from -22.48 dB RMS for “What About Bob?” to -15.00 dB RMS for “Rapture”, meaning that it’s actually quieter. However, M1 didn’t use ambient sounds, so that might be the main difference here.
Last edited by The Man on Dec 31st '18, 23:56, edited 1 time in total.
People should not be afraid of their governments. Governments should be afraid of their people.

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

Fool's Gold · Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Dec 31st '18, 23:55

If increasing the gain of a track would reduce the dynamic range, then you're saying it would clip. Thus adding gain adjustment to AlephOne wouldn't fix the problem; you would just rather have other people be able destroy audio quality in an unpredictable manner than let them use a master that sounds good to them, because you're hung up on measurements of DR instead of how people actually experience the music.
User avatar

$lave

Post Dec 31st '18, 23:58

It shouldn’t be a problem if there’s a way to reduce the volume of the game sound effects relative to the music. The problem is that the game sounds are too loud relative to the music. It’s a sort of corollary of the Spinal Tap “these go to 11” issue - the issue is that there really aren’t enough measurements for the game audio. In fact, these go to 7, and 7 doesn’t give people enough gradations to adjust the game audio relative to the music to their satisfaction.

And again, the bad DR in the original songs was giving me headaches. If you have to master songs that poorly just for some people to be able to hear them in the game, then there’s a problem with the settings available in the game.

It shouldn’t be a big ask for people to be able to reduce the game audio relative to the music more than they already can. Instead of giving people options for 1/7, 2/7, 3/7, etc. levels, you give them 1/14, 2/14, 3/14, etc., or 1/21, 2/21, 3/21, etc. You still go from 0% to 100%, but instead of jumping straight from 0% to 14.285714…%, you give them 7.14285714…% or whatever else as options.
People should not be afraid of their governments. Governments should be afraid of their people.

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

Fool's Gold · Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Jan 1st '19, 00:14

I just feel like if that really were a problem then someone would have brought it up by now, but this issue seems to be unique to the masters you've made. And it is a big ask when you come to a forum and tell the uncompensated developer(s) of a free game engine from 1996 that the engine is inadequate, and complain that it should "only take a few minutes".

To be perfectly honest, and I'm sorry if this comes off as rude, I just don't like hearing people repeat how easy something seems to fix if they aren't going to put effort into fixing it on their own.
User avatar

$lave

Post Jan 1st '19, 00:30

Well, C++ code is borderline incomprehensible to me and I wouldn’t have the first idea where to begin looking in the code for the settings. If someone provides me the location in the code I can take a look at it, but I also don’t have the resources to compile the software set up on my computer, so it would take me, personally, a long time to remedy it. I would estimate somebody who actually already has a compiler set up, knows the language, and knows where to look in the code would probably be able to write code to fix the issue in 10-15 minutes.

And I suspect the issue hasn’t come up before because most of the existing scenarios have had… rather loud music, to put it bluntly. A lot of songs from Excalibur were in the -10 to -16 dB range; one was as loud as -5.19 dB. Phoenix also had a lot of songs above -10 dB, with the loudest being -6.02 dB, though some were more reasonable. And so on.

If people are having the issue with the new Eternal soundtrack, though, then I suspect they’ll have it even worse with Chronicles if I actually include my soundtrack, given that a large portion of it is long post-rock songs built around the Bolero effect where the opening passages will be almost inaudible.

I suspect I’m also somewhat unusual in usually playing the game with headphones, which means I’m a lot more likely to get headaches from the music than people who play with speakers are.
Last edited by The Man on Jan 1st '19, 00:32, edited 1 time in total.
People should not be afraid of their governments. Governments should be afraid of their people.

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

Fool's Gold · Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Jan 1st '19, 00:32

$lave wrote:To be perfectly honest, and I'm sorry if this comes off as rude, I just don't like hearing people repeat how easy something seems to fix if they aren't going to put effort into fixing it on their own.

And repeatedly bitching about it on discord, saying how stupid AlephOne is, won't inspire people to help you either.
User avatar

Wrkncacnter

Post Jan 1st '19, 02:09

For whatever it’s worth, I call almost everything dumb. I suspect the amount of times I’ve called the English language dumb dwarfs any ranting I’ve done about this specific feature, or just in general. I didn’t mean it personally, but nonetheless, I apologise.

A1 is pretty well programmed overall, especially given some of the quirks of the original game (e.g., whose idea was it in Bungie’s dev team to have only two variables for external velocity on monsters?), but there’s certainly room for improvement in the implementation of some of its feature set. If I saw a better solution than rewriting some of the code, I wouldn’t be asking for it, but I have people literally asking for the levels of Eternal’s soundtrack to be restored to the volumes that were giving me headaches, and I don’t see another solution.
People should not be afraid of their governments. Governments should be afraid of their people.

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

Fool's Gold · Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Jan 1st '19, 21:00

If anything, an improvement to Aleph One's volume controls would be to make them logarithmic (corresponding to your perception) rather than linear.
User avatar

treellama
Pittsburgh

Post Jan 7th '19, 13:22

I looked into this more, and I'm even more confused by this request. The two sound controls in the game are for the master volume, and the music volume. If the music is too quiet in comparison to the sound effects, how would having additional levels for either help? All that would let you do is reduce the music volume in finer increments (which wouldn't help) or the master volume in finer increments (which wouldn't help).

Also, the design of the mixer was never intended to allow you to hear music over heavy combat. It's more for ambiance.
User avatar

treellama
Pittsburgh

Post Jan 11th '19, 05:56

Wait, so all this time I've been playing with "Volume" set to 14% and "Music" to 100% in a vain hope of being able to hear the music better without being deafened by the sound effects, and it never actually made any difference?

*runs some tests*

Huh. Well, that's disappointing. I sure would love it if those sliders did what I thought they did. M1 had no mixer, so if you're going to say there was never any intention of being able to make the music louder, you can't say there was ever any intention of being able to make the music quieter, either, yet somehow the latter was added to A1 but not the former.

A three-way mixer, with options for Music, Effects, and Ambient in addition to the Master volume would be ideal.
Failing that, it may be helpful if Volume was simply relabeled "Master Volume" to be clear about what it does.
User avatar

ravenshining
Hawai'i

Post Jan 11th '19, 13:25

Original Marathon had a very low limit to the number of sound effects playing at once, which may have helped the music be audible. You could try adjusting the number of channels down and see if that helps. I think Marathon could do three channels (but I think you can only pick two or four in Aleph One? it's been a long time since I changed that)
User avatar

treellama
Pittsburgh


Return to Aleph One Discussion



Who is online

Users browsing this forum: No registered users