RosettaCodeData/Task/Musical-scale/Pluto/musical-scale.pluto
2026-04-30 12:34:36 -04:00

18 lines
571 B
Text

local audio = require "audio"
require "table2"
local sample_rate = 44100
local duration = 8
local data = table.rep(sample_rate * duration, 0)
local freqs = {261.6, 293.6, 329.6, 349.2, 392.0, 440.0, 493.9, 523.3}
for j = 0, duration - 1 do
local freq = freqs[j + 1]
local omega = 2 * math.pi * freq
for i = 0, sample_rate - 1 do
local y = math.round(32 * math.sin(omega * i / sample_rate)) & 255
data[i + j * sample_rate + 1] = y
end
end
local filepath = "musical_scale.wav"
audio.create(filepath, data, sample_rate)
audio.play(filepath)