Jump to content
johnnyboy

Make music script using Vanilla ARMA Sounds

Recommended Posts

I found these nice sounding music sounds in ARMA vanilla sounds.  I think somebody could take the sample script below and create music by ordering the sounds correctly, with correct sleeps between sounds.  Anybody up for doing that?  If so, post your music creation scripts here, and we can have a little library of the music scripts.

 

UPDATE 1/7/2020 @Tova and @Maff have created a brilliant script to convert the 7 notes into a full scale.  See Tova's post below.  It contains a great demo video and the scripts.  With these scripts you should be able to recreate any music.  Hats off to Tova and Maff!

 

 

Sample script to run in console and hear the sounds:

Spoiler

_n=[player] spawn 
{
	params["_source"];
	while {true} do
	{
		{
			playSound3d[_x, _source];
			sleep .5;
		} foreach 
			[
				"a3\Ui_F_Curator\Data\Sound\CfgSound\ping01.wss",
				"a3\Ui_F_Curator\Data\Sound\CfgSound\ping02.wss",
				"a3\Ui_F_Curator\Data\Sound\CfgSound\ping03.wss",
				"a3\Ui_F_Curator\Data\Sound\CfgSound\ping04.wss",
				"a3\Ui_F_Curator\Data\Sound\CfgSound\ping05.wss",
				"a3\Ui_F_Curator\Data\Sound\CfgSound\ping06.wss",
				"a3\Ui_F_Curator\Data\Sound\CfgSound\ping07.wss"
			];
	};
};

 

Credits:  The smoke hiss and coughing sounds in background are from @aliascartoons
 awesome Leak scripts.  I'm using these scripts in the mission I am working on, and also re-purposed a few of his sounds for the hookah smokers you see in the video (hopefully he approves!  If not, I'll replace them with my own custom sounds.).

  • Like 3

Share this post


Link to post
Share on other sites

Yeah bro, you can use any sounds you find in my scripts, i spent so many hours to find and edit them and will be a waste not to be used as much as possible.

Keep up the good work!

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites
12 hours ago, johnnyboy said:

I found these nice sounding music sounds in ARMA vanilla sounds.  I think somebody could take the sample script below and create music by ordering the sounds correctly, with correct sleeps between sounds. 

 

That's a cool idea! Although I would avoid using "sleep" in this context (the pause can lack precision depending on the framerate - you definitely don't want that if you're making music), waitUntil used along the "time" variable might be a better option. 😉 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
4 hours ago, aliascartoons said:

Yeah bro, you can use any sounds you find in my scripts, i spent so many hours to find and edit them and will be a waste not to be used as much as possible.

Keep up the good work!

You are a generous man.  Thank you!  That's my policy with all my scripts as well.  Anybody can use them in whole or cherry pick any part of them.

  • Like 3

Share this post


Link to post
Share on other sites

@johnnyboy

Here’s a rendition of Beethoven’s Ode To Joy using those ping sounds.

 

 

Actually, it was a bit harder than simply choosing the right sound file from those 7 « pings ».

In fact, @Maffwas able to get the note correspondence for each of the files :

Track = Note
1 = F3
2 = A3
3 = G2
4 = E4
5 = F4
6 = G4
7 = A4

 

And as you can see, the 7 sound files ARE NOT the 7 notes of an octave (letters from A to G), the 7 elemental pieces you need to make music !

 

So we ended up using the pitch parameter from playSound3D to alter sound files and get more notes.

 

Taking A3 as our base, we used this table to get the frequencies of each note and “convert” one note to another.

For example, A3 frequency is 220.00Hz, and B3 frequency is 246.94Hz, so to play a B3 in Arma, we have to play an A3 with a pitch adjustment of 246.94/220.00=1.1224545.

 

So using that trick, we were able to get all the notes we needed, and then, transcribed this music sheet to work with our script.

 

Spoiler

274KwQl.png

 

Also, this is how music sheets are read. Note that there are two of D, E and F notes :

 

aid2667-v4-900px-Read-Music-Step-2.jpg

 

We added the DL, EL and FL notes as parameters for the lower D, E and L.

 

But enough talking !

Here’s the script used in the video, playNote is the “framework” to play notes and can be reused, _odeToJoy is the music sheet transcribed to the playNote format, and pianoSource is the piano object seen in the video.

 

Spoiler

playNote={
	params ["_note",["_length",1],["_source",player]];
	_mySound="a3\Ui_F_Curator\Data\Sound\CfgSound\ping0";
	_pitch=1;
	
	switch (toUpper _note) do {
		case "DL": { _mySound=_mySound+"2"; _pitch=0.66740; };
		case "EL": { _mySound=_mySound+"2"; _pitch=0.74913; };
		case "FL": { _mySound=_mySound+"2"; _pitch=0.79368; };
		case "G": { _mySound=_mySound+"2"; _pitch=0.89090; };
		case "A": { _mySound=_mySound+"2" };
		case "B": { _mySound=_mySound+"2"; _pitch=1.12245; };
		case "C": { _mySound=_mySound+"2"; _pitch=1.18922; };
		case "D": { _mySound=_mySound+"2"; _pitch=1.33481; };
		case "E": { _mySound=_mySound+"2"; _pitch=1.49831; };
		case "F": { _mySound=_mySound+"2"; _pitch=1.58740; };
		default { hint "I don't know this note" };
	};
	
	_mySound=_mySound+".wss";
	_cTime=time+_length;
	playSound3d[_mySound, _source,false,_source,5,_pitch];
	waitUntil {time>_cTime};
};

/////////////////TRANSCRIBED MUSIC SHEET////////////////////////////

_odeToJoy={
	_normal=0.4;
	_dot=_normal*1.5;
	_long=_normal*2;
	_short=_normal/2;
	
	_source=pianoSource;
	
	["B",_normal,_source] call playNote;
	["B",_normal,_source] call playNote;
	["C",_normal,_source] call playNote;
	["D",_normal,_source] call playNote;
	["D",_normal,_source] call playNote;
	["C",_normal,_source] call playNote;
	["B",_normal,_source] call playNote;
	["A",_normal,_source] call playNote;
	["G",_normal,_source] call playNote;
	["G",_normal,_source] call playNote;
	["A",_normal,_source] call playNote;
	["B",_normal,_source] call playNote;
	["B",_dot,_source] call playNote;
	["A",_short,_source] call playNote;
	["A",_long,_source] call playNote;
	
	["B",_normal,_source] call playNote;
	["B",_normal,_source] call playNote;
	["C",_normal,_source] call playNote;
	["D",_normal,_source] call playNote;
	["D",_normal,_source] call playNote;
	["C",_normal,_source] call playNote;
	["B",_normal,_source] call playNote;
	["A",_normal,_source] call playNote;
	["G",_normal,_source] call playNote;
	["G",_normal,_source] call playNote;
	["A",_normal,_source] call playNote;
	["B",_normal,_source] call playNote;
	["A",_dot,_source] call playNote;
	["G",_short,_source] call playNote;
	["G",_long,_source] call playNote;
	
	["A",_normal,_source] call playNote;
	["A",_normal,_source] call playNote;
	["B",_normal,_source] call playNote;
	["G",_normal,_source] call playNote;
	["A",_normal,_source] call playNote;
	["B",_short,_source] call playNote;
	["C",_short,_source] call playNote;
	["B",_normal,_source] call playNote;
	["G",_normal,_source] call playNote;
	["A",_normal,_source] call playNote;
	["B",_short,_source] call playNote;
	["C",_short,_source] call playNote;
	["B",_normal,_source] call playNote;
	["G",_normal,_source] call playNote;
	["G",_normal,_source] call playNote;
	["A",_normal,_source] call playNote;
	["DL",_long,_source] call playNote;
	
	["B",_normal,_source] call playNote;
	["B",_normal,_source] call playNote;
	["C",_normal,_source] call playNote;
	["D",_normal,_source] call playNote;
	["D",_normal,_source] call playNote;
	["C",_normal,_source] call playNote;
	["B",_normal,_source] call playNote;
	["A",_normal,_source] call playNote;
	["G",_normal,_source] call playNote;
	["G",_normal,_source] call playNote;
	["A",_normal,_source] call playNote;
	["B",_normal,_source] call playNote;
	["A",_dot,_source] call playNote;
	["G",_short,_source] call playNote;
	["G",_long,_source] call playNote;
	
};

[] spawn _odeToJoy;

 

 

Edited by Tova
Added more explanations
  • Like 8
  • Thanks 1

Share this post


Link to post
Share on other sites
10 minutes ago, pierremgi said:

What is pianoSource?

 

 

Oh just, the "piano" object I have in the video, so the 3D sound feels more "authentic".

The playNote script has a parameter so you can choose the source of the note. If said parameter is not given, it takes the player by default.

Share this post


Link to post
Share on other sites
9 hours ago, Tova said:

@johnnyboy

Here’s a rendition of Beethoven’s Ode To Joy using those ping sounds.

 

Outstanding!  Bravissimo!  🎵🎶🎼  That sounded perfect man.  Very cool.  Is the piano object from vanilla arma or some mod?

 

The fact that you and @Maff provided the pitch conversion to get the full music scale is pure genius.

 

OK ARMA musicians, Tova and Maff have done the work to give you the full note scale, so its time to make some music!!!!

  • Like 4

Share this post


Link to post
Share on other sites
45 minutes ago, johnnyboy said:

Is the piano object from vanilla arma or some mod? 

 

 

Thanks for the support !

 

You'd be surprised to hear that the "piano" is just 3 vanilla desks arranged in a "triangle-y" shape 😛

  • Haha 1

Share this post


Link to post
Share on other sites

We tried to get a piano that went up to 11, but at 3AM it wasn't happening!

  • Haha 2

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×