From 144c61533cdd2293aaf1b3b7cfeec8b7ca0df04f Mon Sep 17 00:00:00 2001 From: cheapie Date: Thu, 23 Dec 2021 20:46:24 -0600 Subject: [PATCH] Add support for fading and cutting noteblock sounds Also add a 1kHz sine wave sample, intended for use with this --- nbsounds.lua | 1 + noteblock.lua | 13 ++++++++++++- sounds/digistuff_sine.ogg | Bin 0 -> 7262 bytes 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 sounds/digistuff_sine.ogg diff --git a/nbsounds.lua b/nbsounds.lua index f9ccb2c..6e6a947 100644 --- a/nbsounds.lua +++ b/nbsounds.lua @@ -33,6 +33,7 @@ local valid_sounds = { digistuff_piezo_long = "digistuff_piezo_long_single", digistuff_piston_extend = "digistuff_piston_extend", digistuff_piston_retract = "digistuff_piston_retract", + sine = "digistuff_sine", } local mod_sounds = { diff --git a/noteblock.lua b/noteblock.lua index 58bb747..ef14224 100644 --- a/noteblock.lua +++ b/noteblock.lua @@ -73,7 +73,18 @@ minetest.register_node("digistuff:noteblock", { if type(msg.pitch) == "number" then pitch = math.max(0.05,math.min(10,msg.pitch)) end - if sound then minetest.sound_play({name = sound,gain = volume,},{pos = pos,pitch = pitch,},true) end + if sound then + if type(msg.cut) == "number" and msg.cut >= 0 then + msg.cut = math.min(msg.cut,10) + local handle = minetest.sound_play({name = sound,gain = volume,},{pos = pos,pitch = pitch,},false) + minetest.after(msg.cut,minetest.sound_stop,handle) + elseif type(msg.fadestep) == "number" and type(msg.fadegain) == "number" and msg.fadegain >= 0 and type(msg.fadestart) == "number" and msg.fadestart >= 0 then + local handle = minetest.sound_play({name = sound,gain = volume,},{pos = pos,pitch = pitch,},false) + minetest.after(msg.fadestart,minetest.sound_fade,handle,msg.fadestep,msg.fadegain) + else + minetest.sound_play({name = sound,gain = volume,},{pos = pos,pitch = pitch,},true) + end + end end end }, diff --git a/sounds/digistuff_sine.ogg b/sounds/digistuff_sine.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ed117117cee9bd90edc0496283142b145cc455f2 GIT binary patch literal 7262 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 P$;-3bYE~JaOv3&T86HPY literal 0 HcmV?d00001