Music

Samples of sound/music, ideas or suggestions related to the development of audio assets for FreeOrion.
Message
Author
User avatar
LienRag
Vacuum Dragon
Posts: 506
Joined: Fri May 17, 2019 5:03 pm

Re: Music

#16 Post by LienRag »

Also, when turns take a few minutes to compute (which happens on large galaxies), a specific music for the time between the moment the player clicks "end of turn" and the moment the new turn actually begins ?
This one could use vocals for example.

On an unrelated topic, the serie Battlestar Galactica is completely stupid (and not Science Fiction at all) but I really like its music.

User avatar
human2
Space Squid
Posts: 64
Joined: Tue Mar 10, 2020 3:22 am
Location: USA, Utah, Salt Lake City

Re: Music

#17 Post by human2 »

LienRag wrote: Wed Feb 24, 2021 11:18 am As an example it's quite nice but after 10 minutes of the same I'd go crazy...
(I originally made a typo and wrote "I'd go cray" which was weirdly appropriate).
This would be for the title screen and I have no intention of using it in-game. Elements of it might be in the in-game music but I'd definitely avoid a build up like that in the game music.

This also isn't done. I plan on having some sort of melodic theme that the build-up leads to. Not sure what. I'm just kind of going with whatever comes to the top of my head when I sit down and work on it. What I have can also be improved a lot. The levels between the parts aren't very good right now. I did this all without headphones on so I couldn't really hear it well. I was more brainstorming and trying to get something. I probably wont fix it until I have an idea of what is in the entire thing because a lot may still change. I'm thinking of 3-4 minutes of music for the title screen, which is probably more than anyone will ever listen to. The last part will probably be a long 1-2 minute die down so that if someone does take forever on the title screen when it loops they don't keep hearing that build up.
LienRag wrote: Wed Feb 24, 2021 11:18 am A lot of very good ideas, is there a way you could do that in an incremental manner ?
That way it would be usable quite soon and not wait for you to complete a ginormous amount of work on your free time.
I have kind of changed my mind how I would do this. When the first turn starts, I would play ambient background noise, not even music. Something like this.

https://www.youtube.com/watch?v=8wLwxmjrZj8

Once the player presses the next turn the "human" theme starts. Something like this.

https://soundcloud.com/asbsounds/andrea ... ll-version

Obviously I can't copy it but I can try to get the same feel. I wouldn't even know how to find out what license it uses. I suppose I could research this. https://freeorion.org/index.php/Audio says the license needs to be https://creativecommons.org/licenses/by-sa/3.0/.

Anyway, this would play until it's done and then it goes back to ambient sounds. Then some other type of trigger would lead to another song. At this point it's really too early to know what triggers to pick until some music is composed. To be honest, I am more interested in finding out how fast I can get this plugged in to try it out. I have been playing FreeOrion on and off for over a year now and I haven't really looked at the forums so I don't really know who any of you are or what your roadmap is. As far as programming this in, it would be great if there was a text file (Python is fine) that allowed me to hook into the game to specify what plays when. I'm actually kind of excited about this. It's the type of thing I always have wanted to do but never really had the opportunity.

The ambient sounds would reflect the game status and not songs.

Regarding pacing this out, I'd start with the human theme and nobody even needs to know there's more than one theme until they are done.

Lots of sit reps would be a problem. I suppose they could be ranked by importance and the most important one is what is played. It would be hard to know what the player views as most important.

If you haven't heard this you should listen to it. A long time ago I listened to this a few times while playing the game. If I composed all the music I probably wouldn't compose something like this. But it is cool anyway.

https://www.youtube.com/watch?v=ktELSSOCARg

User avatar
LienRag
Vacuum Dragon
Posts: 506
Joined: Fri May 17, 2019 5:03 pm

Re: Music

#18 Post by LienRag »

Some nice things and ideas indeed.
human2 wrote: Wed Feb 24, 2021 8:22 pm
I wouldn't even know how to find out what license it uses. I suppose I could research this. https://freeorion.org/index.php/Audio says the license needs to be https://creativecommons.org/licenses/by-sa/3.0/.
About the license, apparently on Soundcloud if it's Creative Common it's written under the genre, so if nothing is written there then it's not free.
I think a better way would be to explore free music catalogs (either by searching for "creative commons" in Soundcloud or using dedicated websites like https://freemusicarchive.org/curator/Creative_Commons or https://www.tribeofnoise.com/ ) to see if you find something to your liking.

You didn't exactly answer to my question about the ability to do this work in an incremental way ? Or did you mean that the "ambient noise" part was easy to do quickly and you would do the other themes and hookable music one after the other ?

Also, the maintenance of all this has to be planned for. Either we'll need a "Lead music designer" in charge of coordinating the efforts (that might be you) or you must design your playlist in a way that others can add to it without breaking its harmony (maybe documenting your art process and goals in a publicly accessible repository or a Dokuwiki?).

Note that I'm not a member of the official FreeOrion development team, so my word is not authoritative, I'm just trying to help.

User avatar
human2
Space Squid
Posts: 64
Joined: Tue Mar 10, 2020 3:22 am
Location: USA, Utah, Salt Lake City

Re: Music

#19 Post by human2 »

LienRag wrote: Wed Feb 24, 2021 10:58 pm I think a better way would be to explore free music catalogs (either by searching for "creative commons" in Soundcloud or using dedicated websites like https://freemusicarchive.org/curator/Creative_Commons or https://www.tribeofnoise.com/) to see if you find something to your liking.
My experience with royalty free music in the past hasn't been too positive. It's ok if it's exactly what you want. But I wasn't too optimistic about the idea of finding something that would fit this genre. I'll look around though.
LienRag wrote: Wed Feb 24, 2021 10:58 pm You didn't exactly answer to my question about the ability to do this work in an incremental way ?
I guess I don't really know. I wasn't sure I'd even write anything last night. But I made time to do it. I also wasn't sure if I'd be able to make something that was worth listening to. Writing just to write doesn't work for me. Kind of like writers block. So that's why I wasn't sure. But when I have a reason to write music I've been able to do it in the past (I just don't have that many reasons to write music). I'm happy with what I made last night, even if it's barely scratching the surface, and think I might be able to pull this off.
LienRag wrote: Wed Feb 24, 2021 10:58 pm Also, the maintenance of all this has to be planned for. Either we'll need a "Lead music designer" in charge of coordinating the efforts (that might be you) or you must design your playlist in a way that others can add to it without breaking its harmony (maybe documenting your art process and goals in a publicly accessible repository or a Dokuwiki?).
Hm. I better not commit to anything. I realize the backend coding needs to be planned out and I guess that's why I said I don't know anything about your roadmap. I've never really worked on a successful project with other people (I only learned git this last year) although I'm starting to do that a little bit more for my work. I guess that's why I thought it would be great if the music "hooks" or whatever it's called is exposed to a Python script or something. That way how it's implemented would be easy to change. Maybe it's already possible. I still haven't really looked at the source code, it's kind of a lot to digest. I'm guessing this is using SDL. I would like to play with the AI someday, but again, I tend to play this on and off. I kind of cycle around my projects. So I really better not commit to anything.

Ambient "music" is pretty easy to write too. Almost all music programs have some sort of very ambient space instruments. Honestly, the thing I can't stand are artificial sounding orchestra instruments (anything that takes a bow or breath) so I pretty much avoid those no matter what.

User avatar
LienRag
Vacuum Dragon
Posts: 506
Joined: Fri May 17, 2019 5:03 pm

Re: Music

#20 Post by LienRag »

human2 wrote: Thu Feb 25, 2021 12:27 am My experience with royalty free music in the past hasn't been too positive. It's ok if it's exactly what you want.
I don't get this part ? The point of Creative Commons (which is more extensive than just "royalty free" if I'm not mistaken) is that you can modify anything, so if you like something but it's not exactly what you want you can use the good part and change what's not to your liking.

human2 wrote: Thu Feb 25, 2021 12:27 am Hm. I better not commit to anything.
Yes, that's the point of the "incremental" (or "atomic" if you prefer) aspect I insist on : something usable even if you stop working on it for a while or even abandon it (as you are certainly free to do anytime you want or need).
Also of the "maintenance" aspect : your work has to be either maintained by a central "music leader" or designed in a way to allow others to add their own music or modify yours.

User avatar
human2
Space Squid
Posts: 64
Joined: Tue Mar 10, 2020 3:22 am
Location: USA, Utah, Salt Lake City

Re: Music

#21 Post by human2 »

Holy cow this is long...

I think there should just be explosions at the start of the turn that represent how much damage was done and maybe a triumphant jingle or doom jingle depending on if the player had more casualties than dealt. And I think the game civilization had hammering sounds when a building was finished.

I just looked in the source code and I see battle sound files. I've never heard any of these though. I'm guessing they aren't hooked up. And yeah, I just grepped the project and it doesn't appear to be used anywhere. And I just found UI/Sound.cpp. And it's using OpenAL. And yup, all that code is why I like easy high level frameworks and don't like low level programming...

It looks like this is everything that deals with sound or music.

Code: Select all

PlayMusic
	UI/OptionsWnd.cpp
	client/human/GGHumanClientApp.cpp

PlaySound
	UI/MapWnd.cpp		ui.button.turn.press.sound.path
	UI/MapWnd.cpp		ui.turn.start.sound.path
	UI/FleetButton.cpp	ui.map.fleet.button.rollover.sound.path
	UI/FleetButton.cpp	ui.map.fleet.button.press.sound.path
	UI/CUISpin.h		ui.button.press.sound.path
	UI/CUIWnd.cpp		ui.window.maximize.sound.path
	UI/CUIWnd.cpp		ui.window.minimize.sound.path
	UI/CUIWnd.cpp		ui.window.close.sound.path
	UI/SystemIcon.cpp	ui.map.system.icon.rollover.sound.path
	UI/SidePanel.cpp	ui.map.sidepanel.open.sound.path
	UI/CUIControls.cpp	ui.button.press.sound.path
	UI/CUIControls.cpp	ui.button.rollover.sound.path
	UI/CUIControls.cpp	ui.listbox.select.sound.path
	UI/CUIControls.cpp	ui.dropdownlist.select.sound.path
	UI/CUIControls.cpp	ui.listbox.drop.sound.path
	UI/CUIControls.cpp	ui.input.keyboard.sound.path
	UI/OptionsWnd.cpp	ui.button.press.sound.path
	UI/OptionsWnd.cpp	ui.button.press.sound.path
	UI/ClientUI.cpp		ui.alert.sound.path
Regrading the UI sounds, I think they should all be smaller dits and dats unless it's a rare sound like opening the Pedia, which I actually think can add a lot of character (I'm thinking of Asimov's Foundation story, which I haven't read, but have listened to the old radio show). I don't think each UI element needs it's own sound because I doubt the player will actually get meaning from differences in sound. I think the main thing is that either something was clicked, or something can be clicked (rollover). I personally don't think rollover sounds are useful unless it's something that the player wouldn't think is clickable, and I can't think of any examples of that.

The UI already gives a lot of visual feedback that says the same thing and I think it's easier for the player to digest that information without it overloading the player. But I think the audio feedback is so much more powerful than visual feedback that it should be minimized. That is, people have a hard time ignoring and filtering sound because the mind has to be really focused to actually exclude a sound, where it's easy exclude visual information just by looking away or not focusing on something. I don't know if I'm making sense. Processing audio information demands more mental processing than visual information so it should be saved for when you really want to get someone's attention.

And avoid repetition like crazy. Having UI elements slightly change color when they are rolled over doesn't annoys people. I bet most aren't even aware of it, the mind just processes it without thinking. A blinking window (like my Messages window right now) does grab attention and so requires way more processing. It's like the difference in access RAM vs a virtual page swap, or worse, a network request. UI sounds are like the blinking Messages window. People don't usually ignore them. Well, I can't. My wife can ignore the kids even when they've started to punch each other but I usually hear the fight coming minutes before that. So maybe I"m just sensitive.

I think a good way to determine if it should play the beginning turn sound is if it takes longer then x seconds between pressing the next turn button.

I don't know if a player would really want to replace all of the sounds but I think if they did they should do it in a config file and just remove it all from the "Options" window.

I just found the Combat Report window. I didn't know this window existed... Maybe this will take a lot of the mystery out of why battles are won or lost. LOL

Ok. I've looked the source code over quite a bit now. I can definitely say that the "jingles" is just Sit Rep feedback that only occurs at the start of a turn. These would obviously eliminate the need for a turn start sound unless there is no feedback.

I don't know how you're bridging between C++ and Python. I see a Parse directory but don't quite understand what it's purpose is. But if it isn't too much trouble, to get the Sit Rep feedback, I'd either have to modify UI/SitRepPanel.cpp with hooks that basically calls out to something else to decide what audio feedback to play. [I don't know that I would do it, but someone did mention that if I wanted something I should do it... Except, you know, I don't really know C++, I can read it, but it was 25 years ago that I learned it and I never got that far into it and I see stuff I don't understand.] Obviously the code that picks what to play shouldn't be in SitRepPanel.cpp. It would be great if it was a Python file because then it could be changed without recompiling, but I'm not sure how that would affect performance (Python is slow, right?).

Anyway. The other audio feedback similar to Sit Rep audio feedback is the Message window. The audio feedback for chats would obviously be sound clips that mimic what each race would sound like. Humans make me think of Crazy Dave in Plants vs Zombies. The ocean races would be whale sounds. The replicons would be a teletype LOL (or a modem connection sound). Etc. Also declarations of war or peace should have feedback.

Teletype -> https://www.youtube.com/watch?v=CwblSeIdi0s

Regrading the music. The motivation behind all of the stuff I said before was really to generate feedback on the game. Sit Rep audio feedback can accomplish all of this really. It is still possible to alter the background music though. These are the different ways I can imagine that happening.

One way is to have a whole bunch of background song files that reflect what race the player picked, what is being researched, and if the game is going well or not. This is what I first thought of. Another way that I mentioned earlier today to make the background music more ambient sounding and to play thematic songs when certain triggers occur. And it could be combination of these 2 methods too. Either way, this part is probably a ton of work.

The best way to tackle this is to start by making a couple of ambient songs (easy) and some logic that decides which one to play. If I did what I want, this logic would probably look at a lot of aspects of the game that is mostly visible in the game graphs. It could also include triggers. Do we do agile here? At first it could simply be a random number.

I have no idea where this code would go. The song start code is in client/human/GGHumanClientApp.cpp. And now I'm betting that is the main file for the GUI app. And it looks like GGHumanClientApp::GGHumanClientApp is the main function (I can't remember how C++ does constructors but this doesn't look like it... is this part of a framework, maybe GG?). The current song loading function needs to be changed to play the Title music. And then the actual game music needs to be started in LoadSinglePlayerGame, NewSinglePlayerGame, and I'm guessing MultiPlayerGame. I think the code that decides what to play should also be moved into a Python file so it can be tweaked without having to recompile.

I've already mentioned what would change the background ambient sound but here's a list just to recap.

- Race of home planet
- A "score" built up from a lot of the graphs like "armed ships", "buildings produced", etc.
- The majority tech the player has researched (I'm not sure this actually changes per game or player, but it's an idea).
- If the player has more research points or production points.
- The proximity of enemy ships
- If battles are currently taking place

Here's triggers I am thinking of that would start playing a thematic song or change the default background ambient sound.

- First turn completed
- Landmark techs
- First contact w/ another empire
- First contact w/ another empire's ship
- First battle w/ another empire
- Sighting different monsters (any Experimentor should trigger switch to intense mode)
- Finding a Sentinel

In looking at what would be considered a landmark tech, for me, the game is almost always divided into different phases based on which weapon I research, i.e., lasers, plasma cannons, death rays. I believe it's possible to play a non-violent game and win but I don't know how. So maybe those techs don't represent all landmark techs, but it's probably a good place to start.

Side note: I saw a note about Python on macOS. I don't know if you know this but Apple has deprecated "scripting languages" in macOS. At some point in time a macOS is going to be released that no longer includes Python (which most people don't care about because macOS ships with Python 2 anyway). Almost everyone is now recommending shipping python and never rely on the OS python anymore.

I think I'm done for the night.

User avatar
human2
Space Squid
Posts: 64
Joined: Tue Mar 10, 2020 3:22 am
Location: USA, Utah, Salt Lake City

Re: Music

#22 Post by human2 »

LienRag wrote: Thu Feb 25, 2021 5:42 am I don't get this part ? The point of Creative Commons (which is more extensive than just "royalty free" if I'm not mistaken) is that you can modify anything, so if you like something but it's not exactly what you want you can use the good part and change what's not to your liking.
I got my college degree in music composition so I'm probably a snob. And I probably think it is easier to just make something from scratch. It's also why I'm doing system administration for my day job instead of working for IBM, Microsoft, Apple, etc. So my "artistic snobbery" only takes me so far, especially because I don't really associate with many musicians anymore.
LienRag wrote: Thu Feb 25, 2021 5:42 amYes, that's the point of the "incremental" (or "atomic" if you prefer) aspect I insist on : something usable even if you stop working on it for a while or even abandon it (as you are certainly free to do anytime you want or need).
Also of the "maintenance" aspect : your work has to be either maintained by a central "music leader" or designed in a way to allow others to add their own music or modify yours.
Right now I'm offering advice on what I think the general soundscape should be and how it should be hooked up with code. If I'm privileged to actually get to put it into practice, I would like that. I don't know if I'll do the actual coding to hook it up, I hope not. But I seem to be taking this rather seriously so far so maybe I will, but you might all regret it. Did I mention that Lua is my favorite language yet? I think it's absolutely amazing. Garbage collection is awesome too. But not Java.

As far as making actual music, I honestly don't want to go too far down this road until I can actually hook it into the game. I'll probably finish the theme I started last night, but the state of the code right now only plays one song and it shouldn't be the theme. When the code can do multiple songs and the other things I've talked about, I'll probably start on those.

Everything I've talked about can be modified by anyone else. I don't actually plan on layering background audio files over each other. It leaves too much to chance and could make someone's ears bleed. So there will need to be a lot of files. It could end up taking a lot of disk space so this might be a good reason to just abandon this and go with a dozen or so background tracks. I think it's why I'm favoring a few ambient backgrounds with a few thematic songs.

As far as letting others edit my music. You might cringe when I say this, but right now I'm just using GarageBand. I haven't touched anything more serious in 25 years. I don't know of any open source apps that do what it does. Almost all of the professional apps I used as a student are completely different now and I don't make money making songs so I can't justify spending money to buy them and it's just not something I do anymore very often. Lately I've wanted to write chiptunes more than symphonies.

Anyway, I'm pretty sure GarageBand doesn't export Midi, and even if it did, it wouldn't be much use without the GarageBand instruments. I'm guessing that unless I keep a virtual machine around frozen with the particular version of GarageBand I'm using that once these songs are made, they wont really be editable and in 5 years they wont even be openable. I don't think it's all that different from code. Adobe released the source code for Photoshop 1.0, but that doesn't really do anyone much good. I think it was Pascal for classic Mac OS. Things change. If there's a way to write this type of music and keep it future proof I don't know it.

I take it back. I'm pretty sure I have GarageBand songs from 10 years ago and I can probably still open them.

Actually, something like SuperCollider https://supercollider.github.io/ is probably future proof but I don't know how to make songs in that and I'm not really looking to learn. It would be so much work that I probably would't get anything done except learn, which isn't bad, but I want to have something tangible when I'm done with this. I have thought I might use it for some of the sound effects.

User avatar
Ouaz
Dyson Forest
Posts: 231
Joined: Wed Aug 13, 2014 7:21 pm
Location: France

Re: Music

#23 Post by Ouaz »

Oberlus wrote: Tue Feb 23, 2021 7:11 pm As long as it is ambient music that reminds me of space, alien and tech it's cool.
Yep.

The music of FO has to be more an "ambiance" than a music. It has to be smooth and not have a well-defined motif, otherwise it can be annoying after hours of play.

Some examples from the game Out There:

https://www.youtube-nocookie.com/embed/UHD_FWr75B8
https://www.youtube-nocookie.com/embed/uakq2RzTVoI
I release every updated file under the CC-BY-SA 3.0 license.

User avatar
Oberlus
Cosmic Dragon
Posts: 3531
Joined: Mon Apr 10, 2017 4:25 pm

Re: Music

#24 Post by Oberlus »

I've got a flashback from MoO2, a music that I could listen to for hours without feeling something was carving into my brain.

This one is the theme that I liked the most, the Antarans theme:

https://youtu.be/Kdus6cpYeHE

The oppressive weight of impending doom.

It is also the theme that I listened to less often (obviously, I guess). I liked it so much that every time the Antarans talked to me I would not press any key for the song to play in loop during several minutes. The string ensemble, how it swings at the right times, the beat rythms, just great.

I really like this Laura Barratt style.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12971
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Music

#25 Post by Geoff the Medio »

I googled a bit for free ogg format music and came across https://patrickdearteaga.com/royalty-free-music/ from which the "The Biggest Discovery" track seemed quite nice for space ambiance, particularly at the start of a game with a big empty galaxy. Could also be a low-key title track.

"Solve The Puzzle" might also work.

"The Ninth Crewman" on page 5 seems Alien-inspired and could be interesting in specific contexts.

His website is a bit vague about the licensing, so we'd need to ask about whether it can be release under the CC-BY-SA 3.0.

User avatar
human2
Space Squid
Posts: 64
Joined: Tue Mar 10, 2020 3:22 am
Location: USA, Utah, Salt Lake City

Re: Music

#26 Post by human2 »

Geoff the Medio wrote: Sat Mar 13, 2021 1:31 pm I googled a bit for free ogg format music and came across https://patrickdearteaga.com/royalty-free-music/ from which the "The Biggest Discovery" track seemed quite nice for space ambiance, particularly at the start of a game with a big empty galaxy. Could also be a low-key title track.
I think there's a lot of tracks on that site that would fit some of the scenarios I imagined. As I've said I don't really compose music that often so I can't say with certainty but I am pretty sure I could remake almost all of this guy's stuff. So if his license isn't compatible, I could make tracks that sound like his (without actually copying his--I'm not that unimaginative).

I just noticed that github issue 3358 was implemented. I'm surprised that github didn't send me an email about it. I'm now excited to try it out. I hope I have time tonight.

About that theme I wrote... I somehow didn't save the original project. I'm pretty sure I did actually but I can't find it on my disks so this is the only explanation that makes sense (I don't have any other files that randomly disappear...). Anyway, I've mostly rebuilt it but it isn't exactly the same and there's a few things I liked better in the original, so I'm still working on replicating what I made already. But I'm also hoping to add several more minutes to it.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12971
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Music

#27 Post by Geoff the Medio »

human2 wrote: Mon Mar 15, 2021 9:02 pm...I've mostly rebuilt it but it isn't exactly the same and there's a few things I liked better in the original
Pretty much always how that goes in my experience.

User avatar
human2
Space Squid
Posts: 64
Joined: Tue Mar 10, 2020 3:22 am
Location: USA, Utah, Salt Lake City

Re: Music

#28 Post by human2 »

Here's my second attempt. I added some ambient sounds to the end so it's almost 2 minutes long now. I think it could be improved but I could call it finished if I never got back to it again.

http://magnusviri.com/freeorion/FreeOrionTheme2.mp3
http://magnusviri.com/freeorion/FreeOrionTheme2.ogg

I moved the original version. I there's some things I like more about this one but I don't remember how I got some of the sounds I did and I haven't been able to recreate them.

http://magnusviri.com/freeorion/FreeOrionTheme.mp3

I'm don't think I'll get far but I'm going to go see if I can improve the Title_and_Background_Music_Options branch. There's 2 issues with it that I know of. It starts the song twice when opening the game and the music doesn't restart if toggled off and back on in the options.

Or maybe I'll go write some more ambient music. I don't know. Or maybe I'll go to bed. Or maybe I'll play the game lol.

User avatar
Oberlus
Cosmic Dragon
Posts: 3531
Joined: Mon Apr 10, 2017 4:25 pm

Re: Music

#29 Post by Oberlus »

human2, I love your track (both older and newer). GJ!

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12971
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Music

#30 Post by Geoff the Medio »

The links to music audio files all seem to be broken...

Post Reply