Commit Graph

275 Commits

Author SHA1 Message Date
Hajime Hoshi
f0ef1ecad0 all: add float32 version of audio APIs
This change adds these APIs

 * (*audio.Context).NewPlayerF32
 * (*audio.Context).NewPlayerF32FromBytes
 * audio.NewInfiniteLoopF32
 * audio.NewInfiniteLoopWithIntroF32
 * audio.ResampleF32
 * mp3.DecodeF32
 * vorbis.DecodeF32
 * wav.DecodeF32

Closes #2160
2024-07-21 19:12:18 +09:00
Hajime Hoshi
1d260eac51 audio/internal/convert: bug fix: StereoI16 didn't work in some cases
There are no such actual use cases, so this is not a critical bug.
2024-07-21 11:37:07 +09:00
Hajime Hoshi
f36ea4125d audio/internal/convert: split some tests 2024-07-21 11:37:07 +09:00
Hajime Hoshi
f6c9c88f78 audio/internal/convert: better tests for Seek 2024-07-21 11:25:47 +09:00
Hajime Hoshi
e43ab06f35 audio/internal/convert: bug fix: the test input must be even number of float32s 2024-07-21 11:10:20 +09:00
Hajime Hoshi
a5213de991 audio/internal/convert: use math/rand instead of crypto/rand 2024-07-21 10:54:33 +09:00
Hajime Hoshi
f63c1c8fc5 audio/internal/convert: add StereoF32
Updates #2160
2024-07-21 10:52:10 +09:00
Hajime Hoshi
4689d656aa audio/vorbis: refactoring 2024-07-21 10:10:48 +09:00
Hajime Hoshi
531dc7efd9 audio/internal/convert: return an error when not seekable 2024-07-14 23:39:52 +09:00
Hajime Hoshi
1d75c9e967 audio/internal/convert: Seek with incomplete bytes should work
Usually users use audio.Player objects and doesn't use Resampling
object directly. Resampling object itself is exposed by
audio.Resample, but this is usually used with audio.Player objects.
Thus, this issue is not so serious in the real world.
2024-07-14 18:37:15 +09:00
Hajime Hoshi
fc70392093 audio/internal/convert: typo 2024-07-14 17:51:44 +09:00
Hajime Hoshi
b552266afe audio/internal/convert: enable to resample a float32 stream
Updates #2160
2024-07-14 17:51:24 +09:00
Hajime Hoshi
91cdaa9f11 audio/internal/convert: bug fix: Read never returned io.EOF when seeked 2024-07-14 00:04:32 +09:00
Hajime Hoshi
03ca5c3b26 audio/internal/convert: bug fix: skip tests on browsers correctly 2024-07-14 00:03:44 +09:00
Hajime Hoshi
6f74e03cb3 audio/internal/convert: better tests 2024-07-13 22:42:26 +09:00
Hajime Hoshi
96a07c1bf2 audio/internal/convert: bug fix: skip some tests on browsers 2024-07-13 22:39:37 +09:00
Hajime Hoshi
43f505b3a0 audio: use float32 format under the hood
Updates #2160
2024-07-13 21:46:39 +09:00
Hajime Hoshi
f8e3bef368 audio/internal/convert: refactoring: move utilities to audio/vorbis 2024-07-07 17:03:11 +09:00
Pierre Curto
4de807cc44
all: fix typos (#2558)
Signed-off-by: Pierre Curto <pierre.curto@gmail.com>
2023-01-28 19:06:38 +09:00
Hajime Hoshi
1906262ef4 audio/internal/convert: refactoring 2022-10-23 01:14:30 +09:00
Nathan Levett
18123a6336
audio/internal/convert: add a lazy-load getter for cosTable (#2404)
Closes #2286
2022-10-23 00:24:51 +09:00
Hajime Hoshi
5404e4d68a all: replace io/ioutil with io and os
Closes #1770
2022-09-15 02:54:25 +09:00
Hajime Hoshi
344d66c365 audio/internal/convert: remove Resampling.Close
This function is not used anywhere.
2022-08-21 23:48:33 +09:00
Hajime Hoshi
2b248ef783 audio: refactoring: remove audio/internal/cbackend 2022-08-08 23:58:46 +09:00
Hajime Hoshi
3fe59e75cb audio: remove go2cpp support
Updates #2126
2022-08-07 21:56:57 +09:00
Hajime Hoshi
921aeb4ea7 audio: rename channelNum -> channelCount 2022-07-13 02:08:38 +09:00
Hajime Hoshi
428b1263d9 add ebitenginecbackend build tag besides ebitencbackend
Updates #2111
Updates #2190
2022-07-09 15:23:52 +09:00
Hajime Hoshi
8cb023e3c8 audio: refactoring: remove Reset from Player 2022-07-01 02:33:39 +09:00
Hajime Hoshi
a516a5b092 update Oto (for refactoring) 2022-07-01 02:28:20 +09:00
Hajime Hoshi
858f3926ee audio/internal/cbackend: add comments 2022-07-01 02:26:09 +09:00
Hajime Hoshi
12d274eb0a update Oto for a player's Seek
Updates hajimehoshi/oto#172
2022-07-01 02:21:19 +09:00
Hajime Hoshi
d6e257084d audio: bug fix: potential busy reading after the source reaches EOF
Closes #2167
Updates hajimehoshi/oto#171
2022-06-27 22:54:33 +09:00
Hajime Hoshi
3f0b3f9686 audio/internal/cbackend: refactoring: remove unnecessary mutex locks 2022-04-12 21:04:10 +09:00
Hajime Hoshi
08783542eb audio: add Player.SetBufferSize
This change also adds examples/realtimepcm.

Closes #2026
2022-03-25 19:27:25 +09:00
Hajime Hoshi
d74a627f41 audio/internal/cbackend: adjust the defalut buffer size to Oto's 2022-03-25 03:47:21 +09:00
Hajime Hoshi
e2de758160 audio/internal/cbackend: update comments 2022-03-25 03:46:57 +09:00
Hajime Hoshi
e4fba8b047 bug fix: compile error with Go 1.16 and older 2022-03-08 00:08:53 +09:00
Hajime Hoshi
6a1c17b06f audio/internal/cbackend: bug fix: use CompareAndSwap 2022-03-07 23:45:42 +09:00
Hajime Hoshi
1cb7633ff6 internal/ui: bug fix: atomic.Value.Store cannot be called when a differnet type value is already stored 2022-02-27 17:41:19 +09:00
Hajime Hoshi
011e5061df internal/cbackend: simplify the audio API 2021-12-23 22:20:04 +09:00
Hajime Hoshi
e6131894a7 internal/cbackend: add AudioBufferSizeInSeconds 2021-12-23 02:55:54 +09:00
Hajime Hoshi
1799ed0b28 add a build tag 'ebitencbackend' and internal/cbackend
This enables to create a C archive with Ebiten without an actual driver
implementation. This enables Ebiten work on a platform Go doesn't support.
See also Hitsumabushi project: github.com/hajimehoshi/hitsumabushi.

The backend C API is not stable and might change later. Then, the build
tag 'ebitencbackend' is not documented on purpose.

Closes #1900
2021-12-22 21:12:48 +09:00
Hajime Hoshi
a3eb8933e5 audio/internal/convert: Simplify f32Reader implementation 2021-10-31 19:49:40 +09:00
Hajime Hoshi
630df60894 audio/internal/convert: Reuse a buffer cache 2021-10-31 19:40:58 +09:00
Hajime Hoshi
611cbad5d7 audio/internal/convert: Use byte instead of uint8 2021-10-31 19:34:52 +09:00
Hajime Hoshi
d9967c53e5 audio: Treat Oto context's error 2021-10-22 15:29:00 +09:00
r3vit
57c45a13e4
Remove dot imports from tests - Remove dot imports (#1837)
Closes #1824
2021-10-02 19:58:48 +09:00
Hajime Hoshi
7422a3353a audi/internal/conver: Fix ring-buffer-like slice usages 2021-09-12 17:06:36 +09:00
Hajime Hoshi
21e0768937 audio/internal/reader: Move the driver part to Oto v2
Closes #1779
2021-08-22 02:10:39 +09:00
Hajime Hoshi
7a5254f48f audio: Refactoring 2021-08-22 00:36:28 +09:00