|
|
|
@ -13,29 +13,49 @@ local function StartDrones()
|
|
|
|
|
volume = 1.0,
|
|
|
|
|
decaytime = 20}
|
|
|
|
|
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
drones.wail = love.audio.newSource("sounds/drone3.flac", "stream")
|
|
|
|
|
drones.fuck = love.audio.newSource("sounds/noiseloop.flac", "static" )
|
|
|
|
|
drones.subs = love.audio.newSource("sounds/27Hz.flac", "static" )
|
|
|
|
|
drones.bass = love.audio.newSource("sounds/drone.flac", "stream")
|
|
|
|
|
drones.alto = love.audio.newSource("sounds/drone.flac", "stream")
|
|
|
|
|
|
|
|
|
|
drones.subs:setLooping( true )
|
|
|
|
|
drones.subs:setVolume( 0 )
|
|
|
|
|
drones.subs:setPitch( 2.0 )
|
|
|
|
|
--drones.subs:setEffect( "droneReverb", true )
|
|
|
|
|
drones.subs:stop()
|
|
|
|
|
|
|
|
|
|
drones.bass:setLooping( true )
|
|
|
|
|
drones.bass:setVolume( 0 )
|
|
|
|
|
drones.bass:setPitch( 0.25 )
|
|
|
|
|
drones.bass:setEffect( "droneReverb", true )
|
|
|
|
|
drones.bass:stop()
|
|
|
|
|
|
|
|
|
|
drones.alto:setLooping( true )
|
|
|
|
|
drones.alto:setVolume( 0 )
|
|
|
|
|
drones.alto:setPitch( 2 )
|
|
|
|
|
drones.alto:setEffect( "droneReverb", true )
|
|
|
|
|
drones.alto:stop()
|
|
|
|
|
|
|
|
|
|
drones.fuck:setLooping( true )
|
|
|
|
|
drones.fuck:setVolume( 0 )
|
|
|
|
|
drones.fuck:setPitch( 0.125 )
|
|
|
|
|
drones.fuck:setPitch( 1.0 )
|
|
|
|
|
drones.fuck:setEffect( "droneReverb", true )
|
|
|
|
|
drones.fuck:stop()
|
|
|
|
|
|
|
|
|
|
drones.wail:setLooping( true )
|
|
|
|
|
drones.wail:setVolume( 0 )
|
|
|
|
|
drones.wail:setPitch( 1.0 )
|
|
|
|
|
drones.wail:setEffect( "droneReverb", true )
|
|
|
|
|
drones.wail:stop()
|
|
|
|
|
|
|
|
|
|
love.audio.play( drones.bass )
|
|
|
|
|
love.audio.play( drones.alto )
|
|
|
|
|
love.audio.play( drones.fuck )
|
|
|
|
|
love.audio.play( drones.subs )
|
|
|
|
|
love.audio.play( drones.wail )
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
love.audio.setEffect( "passChimeReverb", {
|
|
|
|
@ -115,7 +135,7 @@ local function OnImpact( impact, score, pass, level )
|
|
|
|
|
-- Chimes
|
|
|
|
|
local chime = pass and GetNextPassChime() or GetNextFailChime()
|
|
|
|
|
chime:setPitch( GetPitch( th ) )
|
|
|
|
|
chime:setPosition( r * math.cos( th ), r * math.sin( th ) )
|
|
|
|
|
chime:setPosition( 2.0 * r * math.cos( th ), 2.0 * r * math.sin( th ) )
|
|
|
|
|
chime:setVolume( 0.1 + 0.9 * level / 120.0 )
|
|
|
|
|
local highgain = math.max( 0, math.min( score, 1.0 ) - (pass and 0.5 or 0.9))
|
|
|
|
|
chime:setFilter{
|
|
|
|
@ -129,7 +149,7 @@ local function OnImpact( impact, score, pass, level )
|
|
|
|
|
local wineChime = GetNextWineChime()
|
|
|
|
|
wineChime:setPitch( GetPitch( th ) )
|
|
|
|
|
wineChime:setPosition( love.math.random(), love.math.random() )
|
|
|
|
|
wineChime:setVolume( impact.speed * math.max( 0.0, level / 60.0 - 0.5 ) )
|
|
|
|
|
wineChime:setVolume( 0.2 * impact.speed * math.max( 0.0, level / 60.0 - 0.5 ) )
|
|
|
|
|
|
|
|
|
|
love.audio.stop( wineChime )
|
|
|
|
|
love.audio.play( wineChime )
|
|
|
|
@ -156,13 +176,14 @@ end
|
|
|
|
|
--score is the hypothetical "beat score" that would be attained
|
|
|
|
|
--if an impact took place at this instant.
|
|
|
|
|
local function Update( score, level )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if level > 2 then
|
|
|
|
|
level = level / 120.0
|
|
|
|
|
drones.bass:setVolume( 0.5 * math.sqrt( score ) * level )
|
|
|
|
|
drones.alto:setVolume( 0.3 * score * level * level)
|
|
|
|
|
drones.bass:setVolume( 0.7 * (0.2 + math.pow( score, 0.25 )) * level )
|
|
|
|
|
drones.alto:setVolume( 0.3 * (0.3 + math.pow( score, 0.25 )) * level * level)
|
|
|
|
|
drones.fuck:setVolume( 4.0 * math.max( 0, level - 0.75 ))
|
|
|
|
|
drones.subs:setVolume( 0.5 * math.max( 0, level - 0.5 ))
|
|
|
|
|
drones.wail:setVolume( 2.0 * math.max( 0, level - 0.666 ))
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
@ -171,6 +192,11 @@ local function Reset( )
|
|
|
|
|
for i = 1, N do
|
|
|
|
|
love.audio.stop( passChimes[i] )
|
|
|
|
|
love.audio.stop( failChimes[i] )
|
|
|
|
|
love.audio.stop( wineChimes[i] )
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
for _, drone in pairs(drones) do
|
|
|
|
|
love.audio.stop( drone )
|
|
|
|
|
end
|
|
|
|
|
StartDrones()
|
|
|
|
|
end
|
|
|
|
|