Musical scale: Difference between revisions

Added Wren
(Added Commodore BASIC.)
(Added Wren)
Line 1,095:
Next
End Sub</lang>
 
=={{header|Wren}}==
{{trans|Sparkling}}
{{libheader|Wren-sound}}
As Wren-cli doesn't have any built-in audio support, we instead build a .wav file which can then be played using a utility such as rhythmbox or SoX.
<lang ecmascript>import "/sound" for Wav
 
var sampleRate = 44100
var duration = 8
var data = List.filled(sampleRate * duration, 0)
var freqs = [261.6, 293.6, 329.6, 349.2, 392.0, 440.0, 493.9, 523.3]
for (j in 0...duration) {
var freq = freqs[j]
var omega = 2 * Num.pi * freq
for (i in 0...sampleRate) {
var y = (32 * (omega * i / sampleRate).sin).round & 255
data[i + j * sampleRate] = y
}
}
Wav.create("musical_scale.wav", data, sampleRate)</lang>
<br>
It's also possible to play .wav files which (preferably) have a sample rate of 44.1 kHz using DOME:
{{libheader|DOME}}
<lang ecmascript>import "audio" for AudioEngine
 
class Main {
construct new() {}
 
init() {
AudioEngine.load("doremi", "musical_scale.wav")
AudioEngine.play("doremi")
}
 
update() {}
 
draw(alpha) {}
}
 
var Game = Main.new()</lang>
 
=={{header|XPL0}}==
9,488

edits