Difference between revisions of "User:Darkfrei/example functions"

(Draw grid)
(Beep)
Line 19: Line 19:
  
 
== Beep ==
 
== Beep ==
 
+
Define it:
 
<source lang="lua">
 
<source lang="lua">
 
 
local rate = 44100
 
local rate = 44100
local length = 1/16
+
local length = 1/32
local tone = 344 -- Hz
+
local tone = 440 -- Hz
 
local p = math.floor(rate/tone) -- 128
 
local p = math.floor(rate/tone) -- 128
 
local soundData = love.sound.newSoundData(length*rate, rate, 16, 1)
 
local soundData = love.sound.newSoundData(length*rate, rate, 16, 1)
 
for i=0, length*rate-1 do soundData:setSample(i, i%p>p/2 and 1 or -1) end
 
for i=0, length*rate-1 do soundData:setSample(i, i%p>p/2 and 1 or -1) end
 
local source = love.audio.newSource(soundData)
 
local source = love.audio.newSource(soundData)
source:play()
+
local function beep() source:play() end
 +
</source>
 +
 
 +
Call it:
 +
<source lang="lua">
 +
beep()
 
</source>
 
</source>

Revision as of 20:31, 23 August 2021

Draw grid

function draw_grid ()
	local grid_size = 20
	love.graphics.setLineWidth (1)
	love.graphics.setColor(0.25,0.25,0.25)
	local width, height = love.graphics.getDimensions( )
	for x = grid_size, width-1, grid_size do
		love.graphics.line(x, 0, x, height)
	end
	for y = grid_size, height-1, grid_size do
		love.graphics.line(0, y, width, y)
	end
end


Beep

Define it:

local rate = 44100
local length = 1/32
local tone = 440 -- Hz
local p = math.floor(rate/tone) -- 128
local soundData = love.sound.newSoundData(length*rate, rate, 16, 1)
for i=0, length*rate-1 do soundData:setSample(i, i%p>p/2 and 1 or -1) end
local source = love.audio.newSource(soundData)
local function beep() source:play() end

Call it:

beep()