A flashcard app for drilling on spellings of words based on audio recordings
save_wav = function(filename, sounddata)
	-- credit to Intas and zorg on the LÖVE forum <3
	-- https://love2d.org/forums/viewtopic.php?t=86173
	local samples = {}
	for i = 0, sounddata:getSampleCount() - 1 do
		local sample = sounddata:getSample(i)
		local n
		local to16bit = sample * 32767
		if (to16bit > 0) then
			n = math.floor(math.min(to16bit, 32767))
		else
			n = math.floor(math.max(to16bit, -32768))
		end
		table.insert(samples, n)
	end
	local w = wav.create_context(filename, "w")
	w.init(sounddata:getChannelCount(), sounddata:getSampleRate(), sounddata:getBitDepth())
	w.write_samples_interlaced(samples)
	w.finish()
end