General soundtrack stuff

What do you want to see in Armagetron soon? Any new feature ideas? Let's ponder these ground breaking ideas...
User avatar
klax
Project Developer
Posts: 481
Joined: Tue Jun 08, 2004 3:51 pm
Location: Barcelona, Spain
Contact:

Post by klax »

Lucifer: great job!!

While trying to compile armagetronad dedicated it throwed these errors (seems you forgot the dedicated server in the last coding).

Here are the non defined when compiling dedicated server:
eMusicTrack.h: Mix_MusicType and Mix_HaltMusic
eChannel.h: Mix_Music and Mix_HaltChannel
eMusicTrack.cpp: Mix_FreeMusic

I prefer you to solve them ;)
User avatar
Lucifer
Project Developer
Posts: 8758
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Fixed, sorry about that.

/me sets up a dedicated server build directory finally
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
klax
Project Developer
Posts: 481
Joined: Tue Jun 08, 2004 3:51 pm
Location: Barcelona, Spain
Contact:

Post by klax »

Very fast Lucifer (and you also fixed se_SoundMenu() that I forgot to point out) :D

z-man: Code::Blocks projects updated and now dedicated server compiles from cvs trunk. I haven't achieved my promise of fixing it in 2005 ;)
User avatar
Z-Man
God & Project Admin
Posts: 11748
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

I'll check it out on the weekend and tell you whether it was good work then :) I assume it is.
User avatar
Lucifer
Project Developer
Posts: 8758
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

WIth the semester starting, I may have to leave the sound engine alone for awhile. Awwwww. So I updated the page on the wiki. If I leave it as it is right this minute, there are a few bugs that will likely be a pain in the neck. Hopefully the wiki page will tell you what you need to know to troubleshoot or disable the annoying behavior so you can get on with what you're doing. Also, it will hopefully give anybody a start who wants to give me a hand with this.

http://wiki.armagetronad.net/index.php/New_Sound_Engine

The page may reflect changes I haven't yet committed that I need to spend a little more time with, but I will either commit or throw away everything I've done between my last commit and the start of the new semester, so what I leave in there on Tuesday will reflect what I have here, one way or another, and the wiki page will be updated as needed.

Edit: Congratulations me, the wiki's been running for almost 12 hours now! :)
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Lucifer
Project Developer
Posts: 8758
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Ok, now there's a tIniFile class available in the tools directory. It compiles, I don't know if it works. :) I got too sleepy before finishing the aatrack reader, so I've only tested the LoadFile method of tIniFile. The accessors should work, the neat thing about STL is that if the program builds, it probably works. So, if you need an ini formatted file for anything, there's a parser. It doesn't save, nor does it allow you to specify keys and values, it can only read from a file. That's good enough for the music engine, but if you want it for something else, you might need these things. Shouldn't be too hard to add, though.

Also fixed a couple of minor annoyance bugs in the music player that I hadn't expected to deal with yet, but they were really getting in the way after all. Shouldn't crash anymore on account of the playlist. The problem apparently was that I was sending an empty string to some method in tString that caused tString to segfault working with it. I fixed the method in tString to deal with empy strings properly, and then fixed the tPlaylist class to not store empty strings as songs.

And I surfed around a bit reading about id3 tag libraries. Since it wasn't much fun, I left it alone. I'll hammer out what tSong should look like with aatrack and then someone else can plug in an id3 tag reader for it. :) (Unless I decide I really want to know what song it is)
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Lucifer
Project Developer
Posts: 8758
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Haha, sometimes I'm just braindead. Corrected tIniFile to use const chars instead of tStrings for names and values. So I don't have to make a new tString from a const char whenever I need to access something, but we can still use tStrings to access stuff. And it should still return values as tStrings, but I can't think of a reason we'd need a key as a tString, although we still get them that way. Lots of reasons we might need values to be tStrings, though.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Lucifer
Project Developer
Posts: 8758
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Alright, well, maybe, probably, I just don't know what I'm doing. tIniFile didn't work with const char *s as keys and values, so I switched it back to tStrings. I suspect it would have worked fine if I'd've used std::string instead of const chars, heh.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Lucifer
Project Developer
Posts: 8758
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Ok, sequence support is implemented. That means the aatrack format, which means you can break a song up into multiple files, and using an aatrack file, chain them together to make a complete song. This should make it possible for me to record about 6 fortress walk tracks, each about the same length as the existing one, and chain them together into a 20 minute song. :) Compression doesn't get much better than that... ;)

Not thoroughly tested, however. I tried to count the number of times a sequence played to verify it against what the aatrack file specified, but that was really hard to do in-game with people trying to kill you. :(
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
Post Reply