Hexen 1 CD Music Question

Sat Aug 20, 2016 11:19 pm

Is there a way in Zdoom to run the CD Music for Hexen 1 off the hard drive, rather than physically loading the CD itself? Quakespasm, a sourceport for Quake, allows mp3, wav, and flac versions of that game's music to be loaded from folders on a hard drive. Dxxrebirth does the same thing for Descent.

I searched the Zdoom forums and did not find any instructions on how to do that within Zdoom. If there is any documentation for it that I may have missed, can someone point me to it? Is it even possible or not?

Re: Hexen 1 CD Music Question

Sun Aug 21, 2016 5:39 am

Well if you really want to do that, you'll have to make a MAPINFO patch that associates the level with the ripped soundtrack. No problem playing OGG, MP3, FLAC or whatever music format you want; it's just that Hexen has fully functional MIDI music when the CD isn't used, and the music is actually more varied than with the CD so the MIDI soundtrack is generally preferred. See Hexen music on the Doom Wiki for further information.

Re: Hexen 1 CD Music Question

Sun Aug 21, 2016 6:21 am

The CD doesn't really sound that much better than the MIDIs played with a decent software synth - because that's what the CD essentially is.

Re: Hexen 1 CD Music Question

Sun Aug 21, 2016 7:16 am

Here, create a file named SNDINFO.HXN and put this inside it:
Code:
$MAP    1               track13
$MAP    2               track02
$MAP    3               track22
$MAP    4               track15
$MAP    5               track09
$MAP    6               track21
$MAP    8               track14
$MAP    9               track20
$MAP    10              track06
$MAP    11              track05
$MAP    12              track16
$MAP    13              track08
$MAP    21              track20
$MAP    22              track12
$MAP    23              track15
$MAP    24              track08
$MAP    25              track19
$MAP    26              track03
$MAP    27              track19
$MAP    28              track17
$MAP    30              track10
$MAP    31              track18
$MAP    32              track22
$MAP    33              track21
$MAP    34              track14
$MAP    35              track16
$MAP    36              track10
$MAP    37              track11
$MAP    38              track09
$MAP    39              track17
$MAP    40              track02

Load it along with the directory in which you've put your ripped CD tracks.

And for Deathkings, create a file named SNDINFO.HDK with this content:
Code:
$MAP    33              track07
$MAP    34              track13
$MAP    35              track16
$MAP    36              track09
$MAP    37              track03
$MAP    38              track10
$MAP    41              track13
$MAP    42              track02
$MAP    43              track22
$MAP    44              track15
$MAP    45              track09
$MAP    46              track21
$MAP    47              track14
$MAP    48              track08
$MAP    49              track20
$MAP    50              track06
$MAP    51              track05
$MAP    52              track16
$MAP    53              track18
$MAP    54              track15
$MAP    55              track09
$MAP    56              track19
$MAP    57              track17
$MAP    58              track08
$MAP    59              track06
$MAP    60              track15

Likewise, load your SNDINFO file along with the directory containing all the tracks.


Keep in mind that for Quake ports, it's a very different story because the Quake games don't have soundtracks without the CD audio otherwise; whereas for Hexen arguably the MIDI fallback is the better soundtrack.

Re: Hexen 1 CD Music Question

Sun Aug 21, 2016 11:22 am

Gez wrote:Here, create a file named SNDINFO.HXN and put this inside it:
Code:
$MAP    1               track13
$MAP    2               track02
$MAP    3               track22
$MAP    4               track15
$MAP    5               track09
$MAP    6               track21
$MAP    8               track14
$MAP    9               track20
$MAP    10              track06
$MAP    11              track05
$MAP    12              track16
$MAP    13              track08
$MAP    21              track20
$MAP    22              track12
$MAP    23              track15
$MAP    24              track08
$MAP    25              track19
$MAP    26              track03
$MAP    27              track19
$MAP    28              track17
$MAP    30              track10
$MAP    31              track18
$MAP    32              track22
$MAP    33              track21
$MAP    34              track14
$MAP    35              track16
$MAP    36              track10
$MAP    37              track11
$MAP    38              track09
$MAP    39              track17
$MAP    40              track02

Load it along with the directory in which you've put your ripped CD tracks.

And for Deathkings, create a file named SNDINFO.HDK with this content:
Code:
$MAP    33              track07
$MAP    34              track13
$MAP    35              track16
$MAP    36              track09
$MAP    37              track03
$MAP    38              track10
$MAP    41              track13
$MAP    42              track02
$MAP    43              track22
$MAP    44              track15
$MAP    45              track09
$MAP    46              track21
$MAP    47              track14
$MAP    48              track08
$MAP    49              track20
$MAP    50              track06
$MAP    51              track05
$MAP    52              track16
$MAP    53              track18
$MAP    54              track15
$MAP    55              track09
$MAP    56              track19
$MAP    57              track17
$MAP    58              track08
$MAP    59              track06
$MAP    60              track15

Likewise, load your SNDINFO file along with the directory containing all the tracks.


Keep in mind that for Quake ports, it's a very different story because the Quake games don't have soundtracks without the CD audio otherwise; whereas for Hexen arguably the MIDI fallback is the better soundtrack.


Just for the record, how exactly do you load the new SNDINFO with the audio directory? Do you drag the directory and file onto the Zdoom icon or is it done through the zdoom.ini?

Re: Hexen 1 CD Music Question

Sun Aug 21, 2016 11:58 am

Select both and drag and drop both at once.

Alternatively, you can also do this:
Inside the music directory, create a "filter" directory
Inside the filter directory, create a "hexen.hexen" directory (yes, with the dot in the middle) and a "hexen.deathkings" directory.
Put SNDINFO.HXN inside hexen.hexen, and SNDINFO.HDK inside hexen.deathkings.

Now you can load just the directory, if that's easier for you. Here, I've attached a working filter setup. Extract that in your music directory and it should work; I've tested it successfully in both Hexen and Deathkings.


You can also use the autoload sections of the zdoom.ini, of course.

Oh yeah, this will only replace the soundtracks during level, so you still won't hear the ripped CD music during game load, menu, intermission, and end.
You do not have the required permissions to view the files attached to this post.

Re: Hexen 1 CD Music Question

Sun Aug 21, 2016 2:32 pm

Graf Zahl wrote:The CD doesn't really sound that much better than the MIDIs played with a decent software synth - because that's what the CD essentially is.
I never cared for the CD tracks. I'm not sure how they're recorded; if they're SC-55 recordings, they don't sound like it. (Seems closer to the cheap built-in that comes with Windows.) This is besides the fact that it's missing a few songs entirely.

Hexen 2's CD music is fantastic, it's too bad Kevin never revisited the first two games with that instrument set.

Re: Hexen 1 CD Music Question

Sun Aug 21, 2016 5:59 pm

Gez wrote:Select both and drag and drop both at once.

Alternatively, you can also do this:
Inside the music directory, create a "filter" directory
Inside the filter directory, create a "hexen.hexen" directory (yes, with the dot in the middle) and a "hexen.deathkings" directory.
Put SNDINFO.HXN inside hexen.hexen, and SNDINFO.HDK inside hexen.deathkings.

Now you can load just the directory, if that's easier for you. Here, I've attached a working filter setup. Extract that in your music directory and it should work; I've tested it successfully in both Hexen and Deathkings.


You can also use the autoload sections of the zdoom.ini, of course.

Oh yeah, this will only replace the soundtracks during level, so you still won't hear the ripped CD music during game load, menu, intermission, and end.


One last question, as for the filenames for the tracks themselves, should it look like:

track2.mp3/wav/flac
track3.mp3/wav/flac
track4.mp3/wav/flac

etc..

all the way up to track22?

Looking at that SNDINFO.HXN, it lists the track names like below, which is why I'm asking.

track07
track13
track16

Re: Hexen 1 CD Music Question

Sun Aug 21, 2016 6:29 pm

I used Track02.mp3, Track03.mp3, etc. If you want to use Track2, Track3, etc. instead of always having two digits, just edit the text file accordingly.

Re: Hexen 1 CD Music Question

Sun Aug 21, 2016 6:29 pm

ZDoom cares more about the actual content of the file than the extension, so your files could be called Track22.SPLURBYWHEEFUN and it'd still be able to identify that they're in MP3 format. If the files are in the right place, you don't even need to specify the extensions in the sndinfo.

Re: Hexen 1 CD Music Question

Tue Nov 21, 2017 1:34 am

I realize I'm necromancing the thread here, but could anyone explain to me exactly how to get GZDoom to even play a CD during the game as normal? Not using the CD play options, but actually playing it like Hexen did back when I got it?

I know that the right soundfonts can either recreate the original CD Soundtrack or make it even better... but actually when I played Hexen when it first came out, I used to put non-Hexen CDs in the drive for their audio, that fit quite well, and I'd like to do so again.

I'm using a Steam copy of Hexen with GZDoom, I even tried Zandronum first, and neither will bloody recognize the CD in the drive during the game. I've tried setting the drive as E , as E: , and as E:\ , and nothing works. I even dug out my old Hexen CD and copied over the WAD from it to Steam, thinking that the Windows 95 CDROM might have a different WAD with different MAPINFO to run the CD.

Nothing's bloody working. It's driving me bonkers.

Re: Hexen 1 CD Music Question

Tue Nov 21, 2017 8:37 am

I'm not even sure that CD Audio playback works anymore with modern systems. Back in the day you had do connect a separate cable to the CD drive to get the audio data. I've never seen one of those in years.

Re: Hexen 1 CD Music Question

Tue Nov 21, 2017 11:21 am

Graf Zahl wrote:Back in the day you had do connect a separate cable to the CD drive to get the audio data.

Back in the early CD-ROM era, you'd connect a cable from the CD drive to the audio card to have the audio play without going over the system bus (essentially making the CD drive act as a plain old CD player, piping its red book audio output to the audio card's line-in and completely bypass the main CPU and system memory). Though because of limitations (minimal control over volume and pausing, extra hardware connections, etc), that eventually changed so that the CD audio was read as data over the normal data channels, which could then be played as a typical audio stream. The direct-to-audio-card bypass started falling out of favor as the overhead of the "digital CD playback" method became negligible.

I once had code that was capable of playing CD audio tracks over the data channel, for both Windows and Linux, although I don't remember where it got to.

EDIT:
Found it: http://repo.or.cz/alure.git/blob/refs/heads/alure-1.x:/examples/alurecdplay.c. It's for an old version of the Alure API, but the relevant code should be understandable.

Re: Hexen 1 CD Music Question

Tue Nov 21, 2017 9:07 pm

I get audio from CDs on my computer all the time. I put in a CD, I listen to it, boom, it works. It's all going through the SATA cable.

GZDoom can play CD tracks, I know that much, I tested it already in the console, I used the play and stop commands, I could hear the CD I had in the drive.

But how can I get Hexen to recognize that there's a CD in the drive and use that instead of the MIDI? There's no "choose to use CD Audio or choose to use MIDI for music" option that I can find.

Re: Hexen 1 CD Music Question

Wed Nov 22, 2017 1:55 am

I can't help you here . The entire CD playback feature is essentially deprecated because the API it is built on is some crusty old legacy stuff and Windows only. Don't expect anyone to invest work there, it's far more likely to be ditched than fixed.