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