I'm a composer with limited experience in sound design and sound effect design.

When I started playing this game, I instantly noticed the lack of sound. I'd love to incorporate sound into the game, or even just into my own copy.

Should I come up with audio files for the game to load, or use something like Csound or PureData to render sounds in real time? The second option would give for much more dynamic music, but could also be much harder to implement. What would work with this game, even if only in a Tiled mode?

I feel that while the console-version of the game may be weird with sounds and music, the tiles version could only benefit. If given a little bit of direction, I'm more than willing to do a lot of composing and effect creation.

I generally like music in fantasy games, but please don't make sound make playing the game easier - for instance, it is important in DoomRL and that is one of the dumbest things in DoomRL. If it adds flavour that's good, if it alters gameplay, e.g. by allowing monster detection before they enter LoS, that's incredibly annoying because you have to pay attention all the time so you don't miss sounds. Also I would include a no-sound version in the download page, or simply make a better version of the sound mod.

My feeling is it would be great to have an "official" sound pack available for download separately to the main game. I agree with you that most console players wouldn't really be interested in this, and even a lot of tiles players, but it's something that people ask about from time to time, and I do think: we have graphics, why not sound?

We wouldn't want this in the main release because it'd be a much bigger download and inflate the repository size a lot; but if kept totally separate maybe there could be two versions of the installer and have sounds bundled into the second one.

On the other hand your idea of procedurally generated sounds is really interesting as this gives a lot of flexibility in a very small amount of disk space; and really simple synth noise can be very effective if used well. But this would requite additional implementation/integration when we already have the ability to trigger static audio files.

My suggestion would be to experiment and see what works. You can use that other sound mod as a basis for implementation, but be aware as I commented there, those sounds could never be officially used without sorting out all the attributions. I had a quick listen through those sounds and whilst some seemed quite good I wasn't sure about others. I think something like this should be done subtly. Perhaps it's worth thinking about how audio can be used to actually improve the interface -- by this I mean audio is a good way to, in addition to the display, convey important information the player should be aware of -- e.g. a dangerous monster has entered LOS, the player is at low HP, you make a particularly damaging hit in melee, a portal is timing out, this kind of thing; stuff that the interface tells you already but a small audio cue helps you notice it sooner.

(Regarding cerebovssquire's comment -- of course we couldn't allow sound to convey any information you can't already access; this would strictly be an information leak and I would additionally consider it an accessibility issue. The same kind of issue comes up with Tiles all the time, we have to be really careful sometimes not to give away any information that console players can't see. Audio should not be treated any differently.)

I really like the idea of just doing a sound pack of sound files that the game would access. Yeah, my first priorities would be subtle sounds to make the UI sort of click more (just small pops and clicks as you hover over buttons, click buttons, etc. Nothing obtrusive). Then, sound effects for attacks and throwing and magic, then some music. Again, nothing obtrusive.

Edit: I've looked at the file. The implimentation appears to be that the init file looks for text in the game and plays sound as cues to certain triggers. I'd still like to have music that changes for different types of floors. Also, some of those sounds are awful. Just a matter of taste. I can't find anywhere in the init file how he (she?) declares the syntax for how his "sound = x.wav" is loaded into the game, or any extra programming that'd be involved, so I'm not sure if there is any. I'm definitely going to use this as a starting point.

There are two parts to this: background music/noises and sound effects.I don't know what would be easier: sound effects means coming up with a huge number of aural snippets (door opens, monster X takes damage, etc., preferably in variations even). That's certainly a very, very long term thing. On the other hand, the same is true for tiles, and the Crawl community has been awesome in coming up with tiles!

Regarding background music, it seems natural to have different themes for different branches. Here are two more idea I always fancied: change some musical parameter with depth, so that there's subtle different to hear between Lair:1 and Lair:5. Secondly, maybe you can tell me: how feasible would it be to have procedurally generated music? Of course, themes could still be entered manually (this is similar to a vault in a randomly generated level) but this approach feels so appropriate for a roguelike...

corvett wrote:Edit: I've looked at the file. The implimentation appears to be that the init file looks for text in the game and plays sound as cues to certain triggers. I'd still like to have music that changes for different types of floors. Also, some of those sounds are awful. Just a matter of taste. I can't find anywhere in the init file how he (she?) declares the syntax for how his "sound = x.wav" is loaded into the game, or any extra programming that'd be involved, so I'm not sure if there is any. I'm definitely going to use this as a starting point.

Yes, I absolutely agree with this. As with anything, it's much better to have a small amount of very well-realised content, at least to begin with. I also think that borrowing sounds from public libraries isn't at all in keeping with Crawl's general approach to design (sure we have some code libraries from external sources, but when it comes to graphics everything has been painstakingly drawn by contributors, although there are some procedural techniques in there as well).

Triggering audio based on text is certainly not an ideal implementation, especially now that translations are supported. It's good enough for testing purposes or for users creating their own sound config. But going further down this road there should be a specific system of named audio triggers which get fired in appropriate contexts.

dpeg wrote:There are two parts to this: background music/noises and sound effects.I don't know what would be easier: sound effects means coming up with a huge number of aural snippets (door opens, monster X takes damage, etc., preferably in variations even). That's certainly a very, very long term thing. On the other hand, the same is true for tiles, and the Crawl community has been awesome in coming up with tiles!

There is a certain amount we can do procedurally even with pre-rendered sounds: filters and effects, slight pitch and volume variations, that kind of thing. There are some very good open source libraries for audio effects, we could add nice touches in certain places e.g. reverb / echo in Crypt / Tomb...

dpeg wrote:.Regarding background music, it seems natural to have different themes for different branches. Here are two more idea I always fancied: change some musical parameter with depth, so that there's subtle different to hear between Lair:1 and Lair:5. Secondly, maybe you can tell me: how feasible would it be to have procedurally generated music? Of course, themes could still be entered manually (this is similar to a vault in a randomly generated level) but this approach feels so appropriate for a roguelike...

Something else that occurred to me is different themes for different gods.

One thing I experimented previously (in a game I was developing which is pretty much abandoned unfortunately) is having a number of audio loops which are synched, then fading in extra parts based on context. So as one example you could have something based on tension so the music gets more exciting in battles. This is a very simple form of procedural music; much more complicated things are possible but certainly not easy.

What I think could make a nice effect is if each branch had a particular ambient noise track - no music, just subtle ambient effects, it's easy to imagine what this might be in, say, Lair, but other places might be harder - then sometimes, snippets of music fade in. So the music isn't a constantly looping thing that gets repetitive, but when it does come in it adds to the ambience.

Ok. Can someone work with me on what the triggers in the script would look like? I'm open to generating sound effects, and can work on that tonight, actually. I've done quite a bit with procedurally generated audio in Puredata; if there's any way to work with raw sound in whatever programming environment we're using for DCSS, I'm pretty good with the synthesizing side of it. I build many synths and environments from scratch in PureData.

I, too, like the idea of different tracks lining up that fade in and out. Also, if the music is procedural, we can have a "tempo" variable that can increase at low health or in the presence of many monsters as different tracks fade in and out, too. I'll get a library of some effects up tonight.

Personally, I hate the footstep sounds. I don't think we need sounds for footsteps, and I really don't want to implement them. However, if you guys want, I have generated more subtle, softer sounding footsteps than the ones in the current sound mod, and I can put them in, but I don't think we need them.

As a musician and composer myself, and one who has always been interested in video game music, I'm also intrigued at the prospect of working on music in Crawl.

I think that the idea of procedurally generated or highly thematic music is a fantastic idea. I particularly like the idea of god themes. I think also short themes that can play or loop while fighting uniques (maybe in ways that conflict, contrast, or combine depending on if/when there are multiple uniques in view) would be really interesting. Also obviously branch/depth thematic audio files as stated above.

Hopefully nobody minds if I also ponder this and start working on some themes that might work!

edit: I also have very little experience in sound design, though I am a fast learner, and if I get into this I could probably pick up enough to be useful rather quickly in terms of making music that's capable of being integrated. I don't have much interest in generating sfx though, just music.

Last edited by ZipZipskins on Tuesday, 16th April 2013, 18:51, edited 1 time in total.

Puredata is written in C, compiles on at least most of the platforms Crawl supports, and has a BSD-style license so it at least looks totally compatible to me, but someone with slightly more knowledge in that area would have to comment.

Rather than defining sounds in the init file as per the mod, I think the most flexible way would be a database file like the speech and other text databases stored in dat/database/*.txt; so we look things up by key, but the keys can be specified to specific monsters. So looking at a very simple case, we can have an "attack" key which would set the generic attack sound, then an "attack axe" key for the sound an axe makes, or "kobold attack axe" if you want a special sound for kobolds attacking.

Those databases also allow you to set multiple different entries for a single key, and it'll pick one at random (they can even be individually weighted) so this is good for having a bit of variation. You can also reference other entries within a given entry. These things can even be parameterised to an extent, which seems good for procedural noise. One question: does it have some text-based syntax for defining sounds, meaning the sound definitions could actually be stored outright in these database files, or would the sounds be stored in separate file; basically, how does it all work?

The layered music / ambient noise things are slightly more complex and maybe stuff can just be hard-coded for this, although at this point I don't have much idea how the Puredata apis work or how you can interact with them.

I totally agree about the footstep noise, it was something I noticed in the audio pack that sounded like it'd be really jarring to hear constantly; and it adds a lot of complexity like having to vary the noise based on terrain and character race. The only advantages would be you could e.g. make the noise quieter for stealthy characters, faster for quick characters, and it would give an additional audio cue when flight runs out and the footsteps kick back in. But I'd be happy with no footsteps.

It might be worth having a chat in the ##crawl-dev IRC channel (you can find details on the Main Site homepage) as there will be other developers around who can give comments and specifically advise on how integrable Puredata would be and other ideas about how audio support could work better.

ZipZipskins wrote:Hopefully nobody minds if I also ponder this and start working on some themes that might work!

I can't see that anyone would mind! I'm kind of really intrigued to see where this goes and how people might interpret different gods in audio form ...

I should also note that I'm a guitar player and have written music myself, and electronic music and audio is also something I've dabbled in a few times, hence my particular interest in this area. So maybe I can make one or two contributions here as well. Music tends to work out better as a collaborative process anyway And of course I'm happy to help as much as I can with the implementation details.

Puredata is written in C, compiles on at least most of the platforms Crawl supports, and has a BSD-style license so it at least looks totally compatible to me, but someone with slightly more knowledge in that area would have to comment.

Awesome. I'm totally interested in writing out some environments in Puredata, then. If we can somehow communicate variables between puredata and Crawl, it would make the idea of generative/responsive music even easier. I read a tutorial online about using PureData to render such game effects in real time; I'm going to contact the author and ask how he actually implemented it.

I know I said I would have something up tonight, and I don't. In the meantime, I'm going to plug my soundcloud: https://soundcloud.com/corvett - I should note that the first track "Awakening" was almost all done in Puredata.

Edit: I found the original tutorial at http://obiwannabe.co.uk/html/sound-design/sound-design-all.html. It looks like he was using the Open Sound Control protocol to communicate between Puredata and the game, but this would require the user or game to boot up an instance of Puredata while it ran. This might be ok, but it would be nice if there were a way to internalize the process.

corvett wrote:Edit: I found the original tutorial at http://obiwannabe.co.uk/html/sound-design/sound-design-all.html. It looks like he was using the Open Sound Control protocol to communicate between Puredata and the game, but this would require the user or game to boot up an instance of Puredata while it ran. This might be ok, but it would be nice if there were a way to internalize the process.

This sounds to me like a problem; of course Puredata is open source so there would certainly be a way around this but it sets a certain barrier to implementation.

There's another worry with procedural audio in that audio processing and filtering can be fairly CPU-intensive and a great thing about Crawl is the extremely wide range of system specs it can run on.

I think a more realistic aim is to pre-render samples and music tracks in Puredata and other audio tools, and then use much simpler techniques in-game to proceduralise things; mixing two or three pre-rendered tracks together (with time stretching to adjust tempo) sounds feasible. Simple audio filters: reverb, echo, high/low-pass, pitch-shift - we can achieve a lot with these and they are well understood techniques for which we should be able to find optimised algorithms. Another option for the music is to use tracker-style libraries, i.e. the sequencing of loops from instrument samples, rather than generating synthetic sounds from scratch in real-time.

Using pre-rendered sounds would theoretically allow audio support in webtiles, too; without any fancy filters of course but it would be possible.

proteaAudio looks great, perfect for what I described above, and the Lua API is very interesting. Some of the examples on this page look actually very interesting in terms of procedural audio. But it might be good to start off simple.

I was inspired by the vault that is a Temple of various shrines surrounded by water. If there are any vaults in which this would be better, please let me know. If it totally doesn't work, or if it doesn't jive with you, we can make some changes, or just not incorporate it.

I think this sounds perfect for the Temple branch. I like how it's ambient and simple, so it won't be too much of a distraction while the player sits and thinks about which god to pick; and I think it could easily loop without it ever being obvious it was repeating.

The comment about fountains gives me an idea that we should have a watery/bubbly ambient loop that can play when fountains are in LOS. We could do something similar for other environmental features, e.g. lava. The fountains loop would blend in nicely to this temple track for temples that have fountains (not all of them do of course).

mumra wrote:The comment about fountains gives me an idea that we should have a watery/bubbly ambient loop that can play when fountains are in LOS. We could do something similar for other environmental features, e.g. lava. The fountains loop would blend in nicely to this temple track for temples that have fountains (not all of them do of course).

I've already synthesized some water gurgling sounds as an exercise for myself a couple months (or maybe even a year?) ago. Let me try and find them. I created a PD patch that let me control the size of the water source, from a thin brook to a large river. I think they're on my other computer, so I'm going to have to edit this post to upload.

Hmm, I can't get at those sounds - freesound says "Page not found" (I tried registering as well, still no luck).

If you still have the PD patch, it'd be quite cool to have a few variations for different places: Sewer, Swamp, Shoals, Spiders Nest, and Cocytus are all specifically watery places. But also most branches can sometimes generate watery layouts, different water tracks could be chosen based on how many water tiles are on-screen and whether there's any deep water; something like that anyway.

They maybe do sound a bit sharp/tinny. They're also quite hectic - it sounds like a waterfall or maybe a big river running through an underground cavern. There are certain areas and layouts this would work for anyway. For fountains I'd imagine something softer and more relaxing - the first sample on this page is really nice but the sample rate sounds rather low: http://www.sounddogs.com/results.asp?Type=1&CategoryID=1058&SubcategoryID=13

I feel like this project needs a master list of what we need, and where we've uploaded everything. I'll be honest, I'm really bad at DCSS and have never made it very far. I'd greatly appreciate if we all brainstormed and filled in the "needs" as best as possible, fleshing out as large a list as we can.

To keep the number of sound effects manageable there will need to be a lot of re-use. As an example: we need a "swoosh" noise that sounds like someone swinging a weapon through the air. Preferably a few variations of this noise. But it can then be used for any attack by the player or by monsters, and also for throwing, firing missiles, etc. The actual impact noises will be separate sounds - e.g. a "metal impact" for a sword hitting, "wood impact" for a stick hitting, and so on. Actually it's going to be a huge task figuring out everything that's going to be needed, given the huge and complex nature of the game! In a way I feel that the music / ambient soundtrack is an easier thing to focus on first because there are more reasonable limits - basically an ambient track and optionally a theme, and these can be reused amongst a few branches. Whereas with sound effects we're talking about possibly thousands of different things that could trigger audio, it's a massive task just to sort and group these (although I think I have an idea how this can be organised, I need to think about it a bit though).

I'll add some things to the spreadsheet when I get a chance, for instance listing all the branches and environmental sounds that might be needed.

If you want to get an idea about some of the later stages of the game, I recommend either spectating some online games, or using wizmode (&) to go there yourself. It's not quite the same as playing it first hand but it gives you a good idea about the theme. And don't worry, there are a lot of regular contributors and devteam members who have never got all that far in the game either ... Crawl is a really, really tough game

, there are a lot of regular contributors and devteam members who have never got all that far in the game either

O_O! Wow, I - I have to admit I find this shocking and am really impressed! I don't think I'd have the energy to contribute to this game if I couldn't "get very far" as you put it. Whomever these folks are, serious kudos to them.

I also write music (mainly using Renoise tracker), so I'll be happy to chip in when I get the opportunity. I've actually thought about music for Crawl for some time; this thread already seems to include most of my ideas, so it all sounds good to me.

I'll give your stuff a listen corvett when I get the chance - thanks for taking the initiative.

Module format might be a good format, I believe FMOD allows f.e. fading channels in and out. I'd be happy to work with that format, but anything that works is fine with me. One thing I thought could be useful would be making a graphical widget that allows changing all the relevant attributes of the music engine, e.g. branch, depth, god, tension, whatnot, quickly and easily to preview the music and their changes.

My intention from here is to have another piece that follows the exact same structure that crossfades in (and this one, out), as the player goes further in his character selection details going into the game.

Furthermore, I've finally got the spreadsheet to where anyone can edit it.

As a fan of tracker music, I find this BGM very cool, although it does sound a tad optimistic, as Grimm already pointed out. I'd love to have proper sounds and music in the game as an option! The last time I downloaded and used a music pack, it was a pure mess so If something were to be done properly, it would be awesome! I hope this comes to fruition. Sadly I can't help you because I have no idea on how to make music.

I think one challenge for music and sound in crawl is crawl's turn-based nature. The player is in control of how fast the succession of different events is, and playing speed can be very different for different players and different parts of the game. For example I think it would be hard to make attack sounds that sound good even when tab-tapping. Also, autotravel has the potential to take you through several branches in very quick succession, or even instantly if configured that way. This needs to be considered when thinking about how to fade in and out the various themes and ambient sounds.

Oh, and if you're going to make an official music or sound pack, please make it have a proper license, unlike the crawl tiles.

Here's a Castlevania 64 rearrangement I did and that currently stands as accepted for release on OverClocked ReMix (which is a nice stamp of external validation!). I've mostly done game music rearrangements lately, and my older original stuff isn't up to my current ability so I'm not linking to those. I have a disorganized music page set up here, with a few more links. I should perhaps get a soundcloud account too..

I've also done a bit of QA for a couple of OCR projects (one here), so I'm very happy to do that for DCSS music as well.

This is what the title music will cross-fade into as the user goes through the character selection menus. It's darker and more ominous. I was sort of inspired by Majora's Mask's intro, where the happy clocktown music gets overshadowed by the moon.

I know it won't work with seasoned players that already know what they want, but I think it can be neat for players that are still reading their choices and thinking.

Ok, I've been away from my computer over the weekend and only just had a proper chance to listen.

I like the title theme, it's pretty catchy. I actually don't have a problem with the "optimism", I find that there is something about the theme that hints at darkness despite the upbeat overtones. Some might find the instrumentation a bit cheesy however.

The dark version is a nice touch, but I found it hard to hear any of the other parts over that bass drone. This might be due to the laptop speakers I was listening through but it seems the levels need tweaking. Also I felt that noise shouldn't be so constant - it should perhaps pulsate or have some sort of rhythm (maybe the stabby rhythm from the first theme) or have varying dynamics in some other way.

I can also imagine this theme being used in-game as well; perhaps as an occasional main D theme, or for special events like level up; we could even have some variations of this theme for other branches. Just some ideas.

Some people have mentioned mod formats and I do think that would be a really good way to implement things, it would give us an easy way to mix different channels, and we could even parameterise some sounds and effects using a mod library.

I'm also really excited to hear what evktalo comes up with, that Castlevania remix rocks!

I'm sure there are other musicians amongst the Crawl community, if anybody else thinks they can contribute in any way, please go ahead and let us know.

First some feedback to corvett, then some of my own thoughts and whatnot about Crawl music.

mumra wrote:I think this sounds perfect for the Temple branch. I like how it's ambient and simple, so it won't be too much of a distraction while the player sits and thinks about which god to pick; and I think it could easily loop without it ever being obvious it was repeating.

I imagine it also gives a sense of relief (major key, sense of serenity) when the player reaches the Temple. I like that is plenty of harmonic progression but it's slowly paced. It's also easy to imagine melodies on top of it, if we want to play gods' themes during the temple visit on each altar (though all would have to be major key versions I guess?). I do think the higher-pitched instruments starts and stops abruptly and is a bit hissy and noisy. I would perhaps try a low-pass filter that opens and closes on attack and release, respectively. I like the background drone/pad instrument.

Title screen, I'll call it "The March of the Unsuspecting Victims" based on how people indeed are saying that it sounds a bit too optimistic. I feel somewhat like that too. However I do think it's pretty good! The march is uplifting, and the melodies are good. I like it fading it to the sine leads, I like that writing.

I like the idea of fading into a darker version in the character screen, although I do find the dark version you posted muddy, and dissonant in a way that sounds cacophonic rather than say oppressing. To fix this, the march bassline/chords and the melody should be properly rewritten to match the drone. (Cross-fading would probably result in notes clashing dissonantly at that point, though).

My first thought with the bright Title theme was that it could be the version that plays when you win!

When fantasising about Dungeon Crawl (in-game) music, I've imagined it like this:

Each branch has its theme/backing track. Each god has its leitmotif - this is modified for each branch backing track. The branch melodic theme plays first, the modified god theme plays second. The backing track has variance (tracks fading in and out, sounds tweaked, ...?) according to, for example, depth inside branch and tension. These variations should be quite simple to keep things manageable. For instance, the sound of the lead instrument could change according to depth, while the backing track could fade in percussion as tension increases. The god theme could have variance according to piety level (penance being a special mode).

Portal vaults and single-level branches (and Pan) obviously need no variance by depth, perhaps also no god theme (to reduce work). There can be other rules, such as different music for different temple maps (as suggested by corvett's inspiration from a water-themed temple map). Maps that are immediately obvious to be some specific map (Pan lord levels) could have special music, it wouldn't leak information. Similarly, if the knowledge of map before you explore it doesn't give gameplay advantage (such as temple maps).

For each branch, its character can be built from several building blocks, including: instrumentation, key/mode, time signature, tempo, ... I also liked the idea of ambient background noise for each branch.

A list of gods (again, I may forget some):

Ashenzari

Elyvilon

Beogh

Cheibriados

Zin

The Shining One

Makhleb

Fedhas

Nemelex

Jiyva

Lugonu

Kikubaaqudgha

Yredelemnul

Xom

Trog

Sif Muna

Vehumet

Okawaru

Atheist? (Possibly just play the branch theme twice)

Demigod?

Random god?

It would be cool to play the god theme when praying on the altar, especially in the temple, but how to do this? Fade out the branch music?

Again there could be a specific instrument/sound/etc to represent each god.

These are huge lists, and not everything needs to go in at once. A couple of other special in-game cases:

Orb run (different music if orb not carried?)

Shop

Menus:

Title theme (menus in general)

Tutorial?

Arena

Sprint (one for each?)

Zot def

Game over

Won!

(edit: snipped a bit)

The dev wiki would be a good place to start gathering the information, corvett, can you move your Google spreadsheet data there? I've upped your privileges a bit so that you should be able to create a wiki page.

--Eino

Last edited by evktalo on Monday, 20th May 2013, 22:02, edited 4 times in total.

I occasionally dabble in music composition, and some time after first reading this thread, I was suddenly struck by a burst of creativity. ("The thread gestures. The creativity explodes! The burst of creativity engulfs you!")

This is the tentative result for the moment; it's intended to be a track for an as-yet-undecided tense situation. (I think I initially had something in mind, but I'm not sure it quite matches that any longer, and I'll leave it to the collective imagination as to what it would be used for.

I thought Tension was a pretty good composition. Tense and melodious, and plenty of development. Reminded me of Japanese action RPG soundtracks, which is definitely a good thing. I'm imagining it would be good for an intense portal vault, such as Ziggurat (which I forgot from the above list, will add).

To me, the tension track screams the fps themed dungeon sprint.EDITIt could also fit in some of the wizlabs.It's the technological undertone to it that makes it hard to place. Doesn't seem to fit with that much.

Personally I think it'd be great for any battle scenario in the main Dungeon branch, although the flutey sounds make me think of snake charmers. At least until we have a large pool of music, tracks will need to be reused in a few places; we can tighten up branch themes later. So initially I would assign this to combat situations in at least D/Snake/Tomb/Zig (Tomb due to Egyptian feel of the flutes).

On another note, what has happened to corvett? You got this whole thread started and I was looking forward to hearing more!

I now (re)spotted ZipZipskin's idea of giving unique's their own theme tunes, and I think it's a super fun idea. Also I mentioned FMOD before, but didn't realise it was proprietary. It's free to use for non-commercial games though. An open source solution would be nice to have, if only because we could extend it according to our needs.

This all sounds great. As a composer myself I'd love to contribute stuff when you guys are ready to start implementing things. Here is my take on how this could be implemented.

I don't think it is necessary to have music playing all the time while playing the game. In fact I believe that it will usually be harmful. Long stretches of silence (or better, subtle ambient noises) followed by fitting bits of music will take you a long way in a game like crawl. Punctuating events like finding the temple or meeting Sigmund with music and then letting the silence come back will be most effective and efficient, especially while you are in the early stages and have only a small amount of music to draw from.

That's a good idea, DarkWolf. Something to consider. I can think of at least one game that employs this to a neat effect, Knight 'n' Grail (a Commodore 64 metroidvania style game from 2012). It alternates between music and sound effects.