Mercurial > games > semicongine
annotate tests/test_audio.nim @ 1427:676fc13685a9
did: restructure files and imports
author | sam <sam@basx.dev> |
---|---|
date | Sat, 11 Jan 2025 14:04:39 +0700 |
parents | 3b8a736c45a7 |
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) |