How aleph one handles music

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

How aleph one handles music

Post Nov 13th '18, 17:31

I am wanting to implement my own M1 music folder that contains the marathon CD soundtrack as well as the tracks that weren't remixed in it. However I cannot figure it out and I tried the chibi USA soundtrack on simplici7y to get an idea of how this works but it didn't work despite me following all instruction, I also found that removing the games normal music folder from the marathon directory entirely will still have the original music function when you play it. I would like to know how to do this.
kandriod

Post Nov 13th '18, 18:06

Marathon 1 handled music differently than how Aleph One later implemented music. Now that Aleph One can play stock Marathon 1 and doesn't need a port (like M1A1) I imagine it is playing music from M1's "Music" file, which basically contains a bunch of MIDI songs, rather than playing from an external folder of regular audio files like every other scenario does.

So I expect that to change the music in M1 (even playing it through Aleph One now), you would need some way to compile a replacement Music file.
User avatar

Pfhorrest
California

Post Nov 13th '18, 19:18

Original Marathon music is specified by the indexes in the map file. Aleph One looks in a Music directory for files that match the index, so for example it looks for 01.ogg then 01.mp3 for levels that ask for track 1.

So you just need to replace the files in the Music directory.
User avatar

treellama
Pittsburgh

Post Nov 17th '18, 03:05

I replaced the music directory with a new one that had renamed tracks but it still played the normal music. Is there something more to the newest aleph one that needs to be changed or enabled?
kandriod

Post Nov 17th '18, 11:32

I don’t see how it could be playing the old music if you replaced it. Double check that you replaced the right music folder.
User avatar

treellama
Pittsburgh

Post Nov 19th '18, 17:58

There is only a single folder called music, I am certain I replaced the correct one.
kandriod

Post Nov 19th '18, 18:27

Then what music is it playing back? It has to be coming from somewhere...
User avatar

treellama
Pittsburgh

Post Nov 19th '18, 19:38

I know right? I don't know how it plays the original music when it's outside of the marathon directory.
kandriod

Post Nov 19th '18, 20:12

Are you using a Mac? If you're using the Marathon app, it has the data files built in. So you'd have to show package contents, and find the music folder inside there.

If you're using Windows, then I am confused as heck. I guess technically it will search in your user data directory...on the unlikely chance you installed some music to Documents/AlephOne
User avatar

treellama
Pittsburgh

Post Nov 19th '18, 20:45

I am using windows. Maybe I should use the M1 data files with the aleph one standalone download and see how that works out
kandriod

Post Nov 19th '18, 20:55

Well, I forgot that I screwed my copy of marathon 1 by turning stereo off which crashes the newest aleph one. Also by the looks of it this solution of using the M1 data with an aleph one engine standalone download wont work.
kandriod

Post Nov 20th '18, 13:16

It should work, but it will behave the same as far as music goes. You can delete (or edit) the preferences file to fix the stereo issue; the default preferences are stereo so if you remove them Aleph One should start working again. Look for them in C:\Users\username\AppData\Local\AlephOne
User avatar

treellama
Pittsburgh

Post Nov 21st '18, 07:37

Thank you for the solution. Modifying M1 music on windows is a difficult task, perhaps 4 months from now I will just ask the aleph one dev to make the windows version easier to mod in terms of songs.
kandriod

Post Nov 21st '18, 08:53

Treellama here is one of the Aleph One developers.
User avatar

Pfhorrest
California

Post Nov 22nd '18, 04:21

I have an idea for this easier custom music thing, like a new submenu in sound that shows a file that directs what levels play what tracks in a music folder, say you wanted the 4th song in the folder to play 4 times in a row, you list levels 1-4 as track 4 stages. In order to make a new file you make a new text file that it reads as directions, "Stage 4 = track 2", you edit the number after track to determine the slot on the folder the stage takes its song from. By default it has the correct original game config.
kandriod

Post Nov 22nd '18, 07:36

For M2, M∞, and A1 maps, you can already do this easily by splitting a map with Atque and looking up TEXT resource 128. Edit that, re-merge the map, and you've got a custom soundtrack.

M1 maps, on the other hand, are lacking modern editor support. You'd have to open the map in Pfhorte 1.x, open a level, go to Level > Edit Mission Info Data, and see/edit the song index, for each individual level.

I think getting our editors to handle M1 data files is a higher priority than adding a menu to the engine, which at the moment is only receiving bugfixes for the most part.
User avatar

ravenshining
Hawai'i

Post Nov 29th '18, 08:45

Thank you all for your input, I learned a lot! I have even made a custom Infinity OST out of various songs.
kandriod

Post Jan 10th '19, 21:52

treellama wrote:Original Marathon music is specified by the indexes in the map file. Aleph One looks in a Music directory for files that match the index, so for example it looks for 01.ogg then 01.mp3 for levels that ask for track 1.

So you just need to replace the files in the Music directory.


Does this apply to all Marathon games that use music e.g. Eternal or does it only apply to the Weland update Song Index option that replaces the skybox with level music (for some reason)?

Speaking of the Song index, does it really lock the map into using the default environment landscape (skybox) for the base texture set being used e.g. Jjaro? I haven't used it yet but the tool tip makes it look like it does that.
User avatar

Lion O Cyborg
UK (which is IN EUROPE!)

Post Jan 10th '19, 23:25

Only Marathon 1 used music indexed by the map file. Marathon 2 and Infinity had no music, so Aleph One originally reimplemented music in an entirely different way (in the <marathon_levels> MML), which is how most scenarios (including Eternal) do it.
User avatar

Pfhorrest
California

Post Jan 10th '19, 23:39

Pfhorrest wrote:Only Marathon 1 used music indexed by the map file. Marathon 2 and Infinity had no music, so Aleph One originally reimplemented music in an entirely different way (in the <marathon_levels> MML), which is how most scenarios (including Eternal) do it.


I see. Thank you.

Does Weland's Song Index function for M1 Classic compatible maps actually force the game to use the default skybox for that map's base texture set like the tool tip for it in Weland seems to say? If so, then why? It doesn't make much sense to have the music index tied to a Landscape texture. Then again, the liquid behaviours are controlled via the lighting engine according to the Forge manual. Is it something like that?
User avatar

Lion O Cyborg
UK (which is IN EUROPE!)

Post Jan 11th '19, 00:57

I don't know for sure but I would guess that if Weland says so then yes, since Treellama is a main developer of both.

It's probable that the same part of the map file that M1 used to store its music index was later repurposed in the M2 map format to store the landscape index, and that's why there's that trade-off. (M1 only had one landscape texture, so it wouldn't have needed an index in the maps for it).

Although nowadays you can assign textures from any texture set, including landscapes, in VML/Vasara, so I'm not even sure what significance a map's assigned landscape set even has anymore.

(And yes, liquid elevations are defined by lights, but mostly just because lights are a convenient way to define periodic functions, which is what you want for a liquid tide: some value that goes up and down from maximum to minimum and back again in some kind of looping pattern).
User avatar

Pfhorrest
California

Post Jan 11th '19, 04:41

M1 didn't actually have a "landscape texture" in the same sense as M2 at all. It just had a 128x128 texture in with all the other textures in a wall collection that they usually - but not always! - applied with the landscape texture mode. That's why my 8192x3072 starscape plugin works for M1, but not M1A1: it's replacing a wall texture from each collection, rather than the single landscape M1A1 uses across all levels. Also, ever notice that there aren't any windows to space in an M1 lava level? Well, M1's lava texture set lacks a space texture.

You can make M1 maps that use different textures applied in landscape morde, or the stars texture applied normally, like so:

m1landscape.png

m1starfloor.png

m1landscaped.png


Those are screenshots of M1 running under Basillisk II with a map edited in Mia, no Aleph One or modern editors!
User avatar

ravenshining
Hawai'i

Post Jan 11th '19, 13:41

Lion O Cyborg wrote:Does Weland's Song Index function for M1 Classic compatible maps actually force the game to use the default skybox for that map's base texture set like the tool tip for it in Weland seems to say? If so, then why? It doesn't make much sense to have the music index tied to a Landscape texture.

No, and there's no tool tip to that effect.

Bungie repurposed the "song_index" field in the Marathon map format to specify which landscape collection to load in Marathon 2. Aleph One doesn't use that field for landscapes any more--it scans a level beforehand and loads all the collections used in the level. That's why you can use multiple landscapes in the same Aleph One level.
User avatar

treellama
Pittsburgh

Post Jan 11th '19, 17:17

treellama wrote:
Lion O Cyborg wrote:Does Weland's Song Index function for M1 Classic compatible maps actually force the game to use the default skybox for that map's base texture set like the tool tip for it in Weland seems to say? If so, then why? It doesn't make much sense to have the music index tied to a Landscape texture.

No, and there's no tool tip to that effect.

Bungie repurposed the "song_index" field in the Marathon map format to specify which landscape collection to load in Marathon 2. Aleph One doesn't use that field for landscapes any more--it scans a level beforehand and loads all the collections used in the level. That's why you can use multiple landscapes in the same Aleph One level.


Thanks. I got confused as the tool tip for Song Index in Weland's level parameters menu says "Play music based on the level's song index (instead of Landscape)". It wasn't clear what it meant by that.
User avatar

Lion O Cyborg
UK (which is IN EUROPE!)


Return to Aleph One Discussion



Who is online

Users browsing this forum: Flowers