Page 1 of 1

Custom sound not working in map

Posted: Fri Dec 29, 2017 12:45 am
by darthtrax98
So I'm new to the community but not super new to modding SWBF2, however I am trying to mod sound on a map I'm working on and even after all the tutorials on here that I've read it's still not working and I cant figure out why.

Here are my snd, req, stm, and mus files along with my lua for my map.

ctmcw.req
Hidden/Spoiler:
[code]
ucft
{
REQN
{
"config"
"ctmcw_music"
"ctmcw_music_config"
}
}
[/code]
ctmcw_music.stm
Hidden/Spoiler:
[code]
Streams\Music1.wav  rep_ctm_amb_start
Streams\Music2.wav  rep_ctm_amb_start02
Streams\Music3.wav  rep_ctm_amb_start03
Streams\Music4.wav  cis_ctm_amb_start
Streams\Music5.wav  cis_ctm_amb_start02
Streams\Music6.wav  cis_ctm_amb_start03
Streams\victory1.wav  rep_ctm_amb_victory
Streams\DEFEAT1.wav  rep_ctm_amb_defeat
Streams\victory2.wav  rep_ctm_amb_victory02
Streams\DEFEAT2.wav  rep_ctm_amb_defeat02
[/code]
ctmcw_music_s.mus
Hidden/Spoiler:
[code]
Music()
{
    Name("rep_ctm_amb_start");
    Priority(0.0);
    FadeInTime(1.0);
    FadeOutTime(1.0);
    MinPlaybackTime(480.0);
    MinInactiveTime(0.0);
    SoundStream("rep_ctm_amb_start");
}

Music()
{
    Name("rep_ctm_amb_victory");
    Priority(1.0);
    FadeInTime(0.0);
    FadeOutTime(1.0);
    MinPlaybackTime(12.0);
    MinInactiveTime(5.0);
    SoundStream("rep_ctm_amb_victory");
}

Music()
{
    Name("rep_ctm_amb_defeat");
    Priority(1.0);
    FadeInTime(0.0);
    FadeOutTime(1.0);
    MinPlaybackTime(12.0);
    MinInactiveTime(5.0);
    SoundStream("rep_ctm_amb_defeat");
}
[/code]
ctmcw_music_config.snd
Hidden/Spoiler:
[code]
SoundStream()
{
    Name("rep_ctm_amb_start");
    Pitch(1.0);
    PitchDev(0.0);
    Gain(1.0);
    GainDev(0.0);
    ReverbGain(0.0);
    Bus("ingamemusic");
    Looping(0);
    Pan(0.0);
    Mode3D(0);
    Stream("ctmcw_music");  //.stm file
    SegmentList()
    {
        Segment("rep_ctm_amb_start", 1.0);
        Segment("rep_ctm_amb_start02", 1.0);
        Segment("rep_ctm_amb_start03", 1.0);
    }
}

SoundStream()
{
    Name("cis_ctm_amb_start");
    Pitch(1.0);
    PitchDev(0.0);
    Gain(1.0);
    GainDev(0.0);
    ReverbGain(0.0);
    Bus("ingamemusic");
    Looping(0);
    Pan(0.0);
    Mode3D(0);
    Stream("ctmcw_music");  //.stm file
    SegmentList()
    {
        Segment("cis_ctm_amb_start", 1.0);
        Segment("rep_ctm_amb_start02", 1.0);
        Segment("rep_ctm_amb_start03", 1.0);
    }
}

SoundStream()
{
    Name("rep_ctm_amb_victory");
    Pitch(1.0);
    PitchDev(0.0);
    Gain(1.0);
    GainDev(0.0);
    ReverbGain(0.0);
    Bus("ingamemusic");
    Looping(0);
    Pan(0.0);
    Mode3D(0);
    Stream("ctmcw_music");
    SegmentList()
    {
        Segment("rep_ctm_amb_victory", 1.0);
        Segment("rep_ctm_amb_victory02", 1.0);
    }
}

SoundStream()
{
    Name("rep_ctm_amb_defeat");
    Pitch(1.0);
    PitchDev(0.0);
    Gain(1.0);
    GainDev(0.0);
    ReverbGain(0.0);
    Bus("ingamemusic");
    Looping(0);
    Pan(0.0);
    Mode3D(0);
    Stream("ctmcw_music");
    SegmentList()
    {
        Segment("rep_ctm_amb_defeat", 1.0);
        Segment("rep_ctm_amb_defeat02", 1.0);
    }
}

[/code]
ctm.req
Hidden/Spoiler:
[code]
ucft
{
REQN
{
"str"
"align=2048"
"ctmcw_music"

}
REQN
{
"lvl"
"ctmcw"

}
}
[/code]
and then my lua
Hidden/Spoiler:
[code]
--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

-- load the gametype script
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("setup_teams")

-- REP Attacking (attacker is always #1)
REP = 1;
CIS = 2;
-- These variables do not change
ATT = REP;
DEF = CIS;


function ScriptPostLoad()


--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}



--This sets up the actual objective. This needs to happen after cp's are defined
conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF,
textATT = "game.modes.con",
textDEF = "game.modes.con2",
multiplayerRules = true}

--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)

conquest:Start()

EnableSPHeroRules()

end


---------------------------------------------------------------------------
-- FUNCTION: ScriptInit
-- PURPOSE: This function is only run once
-- INPUT:
-- OUTPUT:
-- NOTES: The name, 'ScriptInit' is a chosen convention, and each
-- mission script must contain a version of this function, as
-- it is called from C to start the mission.
---------------------------------------------------------------------------
function ScriptInit()

ReadDataFile("ingame.lvl")


SetMaxFlyHeight(30)
SetMaxPlayerFlyHeight (30)

SetMemoryPoolSize ("ClothData",20)
SetMemoryPoolSize ("Combo",50) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",650) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",550) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",6000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",100) -- should be ~1x #combo

ReadDataFile("dc:sound\\ctm.lvl;ctmcw")
ReadDataFile("sound\\yav.lvl;yav1cw")
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_ep3_rifleman",
"rep_inf_ep3_rocketeer",
"rep_inf_ep3_engineer",
"rep_inf_ep3_sniper",
"rep_inf_ep3_officer",
"rep_inf_ep3_jettrooper",
"rep_hover_fightertank",
"rep_hero_anakin",
"rep_hover_barcspeeder")
ReadDataFile("dc:SIDE\\rs3.lvl",
"rep_bf3_trooper",
"rep_bf3_pilot",
"rep_bf3_sharpshooter",
"rep_bf3_heavytrooper",
"rep_bf3_commander",
"rep_bf3_jettrooper",
"rep_bf3_skytrooper")
ReadDataFile("dc:SIDE\\fer.lvl",
"rep_hero_ferroda")
ReadDataFile("SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_officer",
"cis_inf_droideka",
"cis_hero_darthmaul",
"cis_hover_aat")


ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_laser",
"tur_bldg_tower")

SetupTeams{
rep = {
team = REP,
units = 20,
reinforcements = 150,
soldier = { "rep_bf3_trooper",9, 25},
assault = { "rep_bf3_heavytrooper",1, 4},
engineer = { "rep_bf3_pilot",1, 4},
sniper = { "rep_bf3_sharpshooter",1, 4},
officer = {"rep_bf3_commander",1, 4},
special = { "rep_bf3_jettrooper",1, 4},

},
cis = {
team = CIS,
units = 20,
reinforcements = 150,
soldier = { "cis_inf_rifleman",9, 25},
assault = { "cis_inf_rocketeer",1, 4},
engineer = { "cis_inf_engineer",1, 4},
sniper = { "cis_inf_sniper",1, 4},
officer = {"cis_inf_officer",1, 4},
special = { "cis_inf_droideka",1, 4},
}
}

SetHeroClass(CIS, "cis_hero_darthmaul")
SetHeroClass(REP, "rep_hero_ferroda")


-- Level Stats
-- ClearWalkers()
AddWalkerType(0, 4) -- special -> droidekas
AddWalkerType(1, 0) -- 1x2 (1 pair of legs)
AddWalkerType(2, 0) -- 2x2 (2 pairs of legs)
AddWalkerType(3, 0) -- 3x2 (3 pairs of legs)
local weaponCnt = 1024
SetMemoryPoolSize("Aimer", 75)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 1024)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("EntityCloth", 32)
SetMemoryPoolSize("EntityFlyer", 32)
SetMemoryPoolSize("EntityHover", 32)
SetMemoryPoolSize("EntityLight", 200)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("EntitySoundStatic", 32)
SetMemoryPoolSize("MountedTurret", 32)
SetMemoryPoolSize("Navigator", 128)
SetMemoryPoolSize("Obstacle", 1024)
SetMemoryPoolSize("PathNode", 1024)
SetMemoryPoolSize("SoundSpaceRegion", 64)
SetMemoryPoolSize("TreeGridStack", 1024)
SetMemoryPoolSize("UnitAgent", 128)
SetMemoryPoolSize("UnitController", 128)
SetMemoryPoolSize("Weapon", weaponCnt)

SetSpawnDelay(10.0, 0.25)
--ReadDataFile("dc:CTM\\CO3.lvl", "CO3_conquest")
ReadDataFile("dc:CTM\\CO3.lvl", "CO3_conquest")
SetDenseEnvironment("false")




-- Sound

SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")

voiceSlow = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_slow")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_slow", voiceSlow)
AudioStreamAppendSegments("sound\\global.lvl", "global_vo_slow", voiceSlow)

voiceQuick = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_quick")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_quick", voiceQuick)

OpenAudioStream("dc:sound\\ctm.lvl", "ctmcw_music")
OpenAudioStream("sound\\global.lvl", "cw_music")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
OpenAudioStream("sound\\yav.lvl", "yav1")
OpenAudioStream("sound\\yav.lvl", "yav1")
OpenAudioStream("sound\\yav.lvl", "yav1_emt")

SetBleedingVoiceOver(REP, REP, "rep_off_com_report_us_overwhelmed", 1)
SetBleedingVoiceOver(REP, CIS, "rep_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, REP, "cis_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, CIS, "cis_off_com_report_us_overwhelmed", 1)

SetOutOfBoundsVoiceOver(2, "cisleaving")
SetOutOfBoundsVoiceOver(1, "repleaving")

SetAmbientMusic(REP, 1.0, "rep_ctm_amb_start", 0,1)
SetAmbientMusic(REP, 0.8, "rep_ctm_amb_start02", 1,1)
SetAmbientMusic(REP, 0.2, "rep_ctm_amb_start03", 2,1)
SetAmbientMusic(CIS, 1.0, "cis_ctm_amb_start", 0,1)
SetAmbientMusic(CIS, 0.8, "cis_ctm_amb_start02", 1,1)
SetAmbientMusic(CIS, 0.2, "cis_ctm_amb_start03", 2,1)

SetVictoryMusic(REP, "rep_ctm_amb_victory")
SetDefeatMusic (REP, "rep_ctm_amb_defeat")
SetVictoryMusic(CIS, "rep_ctm_amb_victory02")
SetDefeatMusic (CIS, "rep_ctm_amb_defeat02")

SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
--SetSoundEffect("BirdScatter", "birdsFlySeq1")
--SetSoundEffect("WeaponUnableSelect", "com_weap_inf_weaponchange_null")
--SetSoundEffect("WeaponModeUnableSelect", "com_weap_inf_modechange_null")
SetSoundEffect("SpawnDisplayUnitChange", "shell_select_unit")
SetSoundEffect("SpawnDisplayUnitAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplaySpawnPointChange", "shell_select_change")
SetSoundEffect("SpawnDisplaySpawnPointAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplayBack", "shell_menu_exit")


--OpeningSateliteShot
AddCameraShot(0.908386, -0.209095, -0.352873, -0.081226, -45.922508, -19.114113, 77.022636);

AddCameraShot(-0.481173, 0.024248, -0.875181, -0.044103, 14.767292, -30.602322, -144.506851);
AddCameraShot(0.999914, -0.012495, -0.004416, -0.000055, 1.143253, -33.602314, -76.884430);
AddCameraShot(0.839161, 0.012048, -0.543698, 0.007806, 19.152437, -49.802273, 24.337317);
AddCameraShot(0.467324, 0.006709, -0.883972, 0.012691, 11.825212, -49.802273, -7.000720);
AddCameraShot(0.861797, 0.001786, -0.507253, 0.001051, -11.986043, -59.702248, 23.263165);
AddCameraShot(0.628546, -0.042609, -0.774831, -0.052525, 20.429928, -48.302277, 9.771714);
AddCameraShot(0.765213, -0.051873, 0.640215, 0.043400, 57.692474, -48.302277, 16.540724);
AddCameraShot(0.264032, -0.015285, -0.962782, -0.055734, -16.681797, -42.902290, 129.553268);
AddCameraShot(-0.382320, 0.022132, -0.922222, -0.053386, 20.670977, -42.902290, 135.513001);
end

[/code]
if anyone could help it would be much appreciated!! Thanks in advance.

Re: Custom sound not working in map

Posted: Fri Dec 29, 2017 2:21 pm
by Marth8880
Welcome to Gametoast! :)
darthtrax98 wrote:ctmcw.req

Code: Select all

ucft
{
   REQN
   {
      "config"
      "ctmcw_music" 
      "ctmcw_music_config"
   }
 }
ctmcw_music_s.mus
In the "config" section of your ctmcw.req file you're calling for "ctmcw_music" and "ctmcw_music_config". "ctmcw_music_config" is correct, but you don't appear to have any config files named "ctmcw_music".

Valid config file types:
*.snd
*.mus
*.tsr

Source: http://www.secretsociety.com/forum/down ... 0Guide.txt

Everything else appears to be fine. ;)

Also, side-question, your music WAV files aren't 32kHz mono, are they? (Music and environmental ambient streams should almost always be 44-48kHz stereo)

Re: Custom sound not working in map

Posted: Sat Dec 30, 2017 1:43 am
by darthtrax98
I tried removing ctmcw_music from my ctm.req and my map still doesn't have any sound :? but to answer your question I made sure all my audio files were stereo 48000hz 16bit PCM wav.
I'm at an absolute loss honestly.

Re: Custom sound not working in map

Posted: Sat Dec 30, 2017 3:59 pm
by Marth8880
darthtrax98 wrote:I tried removing ctmcw_music from my ctm.req and my map still doesn't have any sound
The idea was for you to change "ctmcw_music" to "ctmcw_music_s" so that it matches the name of your .mus file haha, not just remove the line altogether. ;)

And good re: the WAV quality.

Re: Custom sound not working in map

Posted: Tue Jan 02, 2018 10:40 pm
by darthtrax98
Marth8880 wrote: The idea was for you to change "ctmcw_music" to "ctmcw_music_s" so that it matches the name of your .mus file haha, not just remove the line altogether. ;)
I tried that and still no avail, it seems the file is recognized in game since no sound is played but for some reason it isn't playing the custom ambient music even though I have it in the correct format.