Mercurial > games > semicongine
annotate tests/test_audio.nim @ 1332:df3c075e5dea
did: formatting
| author | sam <sam@basx.dev> | 
|---|---|
| date | Thu, 22 Aug 2024 18:31:59 +0700 | 
| parents | e0326aa067c8 | 
| children | 3b8a736c45a7 | 
| rev | line source | 
|---|---|
| 1225 | 1 import std/os | 
| 2 import std/sequtils | |
| 3 import std/times | |
| 4 | |
| 1267 | 5 import ../semicongine | 
| 1225 | 6 | 
| 7 proc test1() = | |
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
8 mixer[].addSound("test1", sineSoundData(1000, 2, 44100)) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
9 mixer[].addSound("test2", sineSoundData(500, 2, 44100)) | 
| 1225 | 10 | 
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
11 let s1 = mixer[].play("test1", loop = true) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
12 let s2 = mixer[].play("test2", loop = true) | 
| 1225 | 13 | 
| 14 let t0 = now() | |
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
15 mixer[].setLevel(0.5) | 
| 1225 | 16 while true: | 
| 17 let runtime = (now() - t0).inMilliseconds() | |
| 18 if runtime > 1500: | |
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
19 mixer[].setLevel(0.2) | 
| 1225 | 20 if runtime > 3000: | 
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
21 mixer[].stop(s2) | 
| 1225 | 22 if runtime > 6000: | 
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
23 mixer[].stop("") | 
| 1225 | 24 if runtime > 8000: | 
| 25 break | |
| 26 | |
| 27 proc test2() = | |
| 28 let | |
| 29 # notes | |
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
30 c = sineSoundData(261.6256, 0.5, 44100) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
31 d = sineSoundData(293.6648, 0.5, 44100) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
32 e = sineSoundData(329.6276, 0.5, 44100) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
33 f = sineSoundData(349.2282, 0.5, 44100) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
34 g = sineSoundData(391.9954, 0.5, 44100) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
35 a = sineSoundData(440.0000, 0.5, 44100) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
36 b = sineSoundData(493.8833, 0.5, 44100) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
37 bb = sineSoundData(466.1638, 0.5, 44100) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
38 c2 = sineSoundData(523.2511, 0.5, 44100) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
39 d2 = sineSoundData(587.3295, 0.5, 44100) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
40 bbShort = sineSoundData(466.1638, 0.25, 44100) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
41 c2Short = sineSoundData(523.2511, 0.25, 44100) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
42 d2Short = sineSoundData(587.3295, 0.25, 44100) | 
| 1225 | 43 | 
| 44 # song | |
| 45 frerejaquesData = concat( | |
| 1332 | 46 f, g, a, f, f, g, a, f, a, bb, c2, c2, a, bb, c2, c2, c2Short, d2Short, c2Short, | 
| 47 bbShort, a, f, c2Short, d2Short, c2Short, bbShort, a, f, f, c, f, f, f, c, f, f, | |
| 1225 | 48 ) | 
| 49 | |
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
50 mixer[].addSound("frerejaques", frerejaquesData) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
51 discard mixer[].play("frerejaques") | 
| 1225 | 52 | 
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
53 while mixer[].isPlaying(): | 
| 1225 | 54 sleep(1) | 
| 55 | |
| 56 proc test3() = | |
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
57 mixer[].addSound("toccata et fugue", loadAudio("toccata_et_fugue.ogg")) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
58 mixer[].addSound("ping", sineSoundData(500, 0.05, 44100)) | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
59 mixer[].addTrack("effects") | 
| 
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
60 discard mixer[].play("toccata et fugue") | 
| 1225 | 61 | 
| 62 when isMainModule: | |
| 63 test1() | |
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
64 mixer[].stop() | 
| 1225 | 65 test2() | 
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
66 mixer[].stop() | 
| 1225 | 67 test3() | 
| 68 | |
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
69 while mixer[].isPlaying(): | 
| 1225 | 70 # on windows we re-open stdin and this will not work | 
| 71 when defined(linux): | |
| 1332 | 72 discard | 
| 73 mixer[].play("ping", track = "effects", stopOtherSounds = true, level = 0.5) | |
| 1225 | 74 echo "Press q and enter to exit" | 
| 75 if stdin.readLine() == "q": | |
| 
1282
 
3308b88e53a6
did: undo part of stupid API renaming a few weeks back ;(
 
sam <sam@basx.dev> 
parents: 
1267 
diff
changeset
 | 
76 mixer[].stop() | 
| 1225 | 77 elif defined(windows): | 
| 1332 | 78 sleep(1000) | 
