Jump to content

LUA Speaker:SetFilter


Go to solution Solved by Josh,

Recommended Posts

Posted

In the documentation, the example for Speaker:SetFilter throws an error after pressing the space key (which activates the Speaker:SetFilter function).

https://www.ultraengine.com/learn/Speaker_SetFilter?lang=lua

 

Example:

--Get the displays
local displays = GetDisplays()

--Create a window
local window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[1], WINDOW_CENTER + WINDOW_TITLEBAR)

--Create a world
local world = CreateWorld()

--Create a framebuffer
local framebuffer = CreateFramebuffer(window)

--Create a camera
local camera = CreateCamera(world)
camera:SetClearColor(0.125)
camera:SetFov(70)
camera:SetPosition(0, 0, -3)
camera:Listen()

--Create a light
local light = CreateBoxLight(world)
light:SetRotation(35, 45, 0)
light:SetRange(-10, 10)

--Create a box
local box = CreateBox(world)
box:SetColor(0, 0, 1)

--Sound
local sound = LoadSound("https://raw.githubusercontent.com/UltraEngine/Documentation/master/Assets/Sound/notification.wav")
local speaker = CreateSpeaker(sound)
speaker:SetLooping(true)
speaker:SetPosition(box:GetPosition(true))
speaker:Play()
speaker:SetRange(10)

--Main loop
while window:Closed() == false and window:KeyDown(KEY_ESCAPE) == false do

    --Add filter when space key is pressed
    if window:KeyHit(KEY_SPACE) then
        speaker:SetFilter(AUDIOFILTER_REVERB_SEWERPIPE)
    end

    --Move and turn with the arrow keys - best experienced with headphones
    if window:KeyDown(KEY_UP) then
        camera:Move(0, 0, 0.1)
    end
    if window:KeyDown(KEY_DOWN) then
        camera:Move(0, 0, -0.1)
    end
    if window:KeyDown(KEY_LEFT) then
        camera:Turn(0, -1, 0)
    end
    if window:KeyDown(KEY_RIGHT) then
        camera:Turn(0, 1, -0)
    end

    world:Update()
    world:Render(framebuffer)
end

return 0

Error:

[sol2] An error occurred and has been passed to an error handler: sol: runtime error: stack index 2, expected number, received nil: 
stack traceback:
        [C]: in method 'SetFilter'
        [string "G:\development\ultraengine\testbloomeffect\source\main.lua"]:42: in main chunk
sol: runtime error: stack index 2, expected number, received nil:
stack traceback:
        [C]: in method 'SetFilter'
        [string "G:\development\ultraengine\testbloomeffect\source\main.lua"]:42: in main chunk
Error: [string "G:\development\ultraengine\testbloomeffect\source\main.lua"]:42: in main chunk

 

Posted

You are correct. All the constants for this need to be added.

In the meantime, the value for AUDIOFILTER_REVERB_SEWERPIPE is 22.

  • Upvote 1

Let's build cool stuff and have fun. :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...