Hajime Hoshi
a4123a479e
audio: Initialize the context first
...
This is necessary to create an audio's Player before the loop if
we want to create *oto.Player for each *audio.Player.
2019-01-30 00:45:36 +09:00
Hajime Hoshi
13b0d82b6d
audio: Use oto.NewContext
2019-01-30 00:36:47 +09:00
Hajime Hoshi
f16f6cf4b9
audio/internal/convert: Add Float32Reader and NewReaderFromFloat32Reader
2019-01-15 11:46:31 +09:00
Hajime Hoshi
13f6549cb6
audio/vorbis: Remove duplicated decoded data
...
There was duplicated decoded date in audio/vorbis package and Ogg
decoder package. This change removes this duplication and reduces
memory usage.
2019-01-15 03:52:27 +09:00
Hajime Hoshi
6d714a16cf
audio: Remove unneeded 'break'
2019-01-10 02:34:58 +09:00
Hajime Hoshi
a6b3f761f8
audio: Refactoring: Remove dependency on clock package
2019-01-10 00:59:38 +09:00
Hajime Hoshi
28c96d256a
audio: Bug fix: Test compilation error
2019-01-09 23:39:12 +09:00
Hajime Hoshi
14404334e7
audio: Rename players to mux
2019-01-09 22:10:52 +09:00
Hajime Hoshi
e9422a9f2c
audio: Improve test flakiness
2019-01-06 00:11:34 +09:00
Hajime Hoshi
7956e0ebbc
Revert "Revert "audio: No need goroutine for tests""
...
This reverts commit 62a9bb195c
.
2018-12-28 02:18:16 +09:00
Hajime Hoshi
62a9bb195c
Revert "audio: No need goroutine for tests"
...
This reverts commit 7740656054
.
2018-12-28 02:15:11 +09:00
Hajime Hoshi
7740656054
audio: No need goroutine for tests
2018-12-27 03:37:29 +09:00
Hajime Hoshi
ed7552962d
audio: Improve test flakiness
2018-12-27 03:34:27 +09:00
Hajime Hoshi
1760070130
audio: Add comments about GC ( #746 )
2018-12-18 23:07:19 +09:00
Hajime Hoshi
b9eba54115
audio: Use a dummy driver for testing
...
Fixes #750
This also fixes an out-of-index bug when all players are skipped.
2018-12-17 23:06:59 +09:00
Hajime Hoshi
b0cb216f5f
audio: Close audio after its playing finishes
...
Fixes #746
This is a temporal fix and we will need further re-designing of
audio package.
2018-12-17 04:02:32 +09:00
Hajime Hoshi
08a369b8fd
audio: Bug fix: GC audio players correctly
...
Fixes #746
2018-12-15 22:33:45 +09:00
Hajime Hoshi
feca647087
audio/vorbis: Unretain the Ogg decoder on Close ( #733 )
2018-11-09 03:48:28 +09:00
Hajime Hoshi
eda8d61413
audio/vorbis: Unretain the Ogg decoder after decoding is done ( #733 )
2018-11-09 03:46:00 +09:00
Hajime Hoshi
d14202ef7b
audio: Add Context.IsReady
...
Fixes #717
2018-10-16 00:02:19 +09:00
Hajime Hoshi
c0884b5ab2
audio/vorbis: Avoid unnecessary appending
2018-10-06 00:06:47 +09:00
Hajime Hoshi
1cf3022ce6
audio/vorbis: Update stbvorbis.js
...
Fixes #667
2018-10-05 22:12:39 +09:00
Hajime Hoshi
d5ca4c3953
audio/vorbis: Bug fix: compilation error
2018-09-02 23:55:59 +09:00
Hajime Hoshi
70044013e9
audio/vorbis: Rename []uint8 -> []byte
2018-09-02 23:54:50 +09:00
Hajime Hoshi
59bcbca379
audio: Add NewInfiniteLoopWithIntro ( #652 )
2018-07-28 21:25:42 +09:00
Hajime Hoshi
2969de5b1f
audio: Refactoring: Redefine bytesPerSample
2018-07-24 01:54:01 +09:00
Hajime Hoshi
a0bd31ef1f
audio: Rename stream -> src
2018-07-24 01:22:05 +09:00
Hajime Hoshi
6a1afe8fbe
audio: Add test for negative position
2018-07-23 04:01:43 +09:00
Hajime Hoshi
0d5924b448
audio: Add test for InifiniteLoop
2018-07-23 03:30:06 +09:00
Hajime Hoshi
34ac185327
audio: Rename file
2018-07-23 03:15:17 +09:00
Hajime Hoshi
082556ad5c
audio: Better error message
2018-07-23 02:28:07 +09:00
Hajime Hoshi
05ac690db5
audio/vorbis/internal/stb: Use stbvorbis.js
...
Fixes #641
2018-07-22 17:15:28 +09:00
Hajime Hoshi
d752408da3
Fix comments not to use the term 'this function'
2018-07-15 01:04:46 +09:00
Hajime Hoshi
c6842f2cd8
audio/vorbis/internal/stb: Use TypedArrayOf ( #642 )
2018-07-07 17:46:55 +09:00
Hajime Hoshi
c0ccc16767
audio/mp3: Use TypedArray ( #642 )
2018-07-07 17:19:47 +09:00
Hajime Hoshi
e61af537f4
audio/vorbis: Use jfreymuth/oggvorbis when the target is Wasm
2018-07-05 02:27:23 +09:00
Hajime Hoshi
de7065bbf7
audio/vorbis/internal/stb: Use float32 version of decoder for efficiency
2018-07-05 01:37:51 +09:00
Hajime Hoshi
9bf2eaff58
audio/vorbis/internal/stb: Rename files
2018-07-04 12:04:00 +09:00
Hajime Hoshi
992f6c767a
audio/vorbis: Use stb_vorbis.c on browsers
...
This change adds a Ogg/Vorbis decoder stb_vorbis.c usage that is
compiled by Emscripten as WebAssembly.
Fixes #623
2018-07-04 01:23:11 +09:00
Hajime Hoshi
6e51d31524
Use new GopherWasm API ( #634 )
...
I plan to merge this right after
https://github.com/gopherjs/gopherwasm/pull/3 is merged.
2018-06-30 00:02:15 +09:00
Hajime Hoshi
a9359e4ef8
Use GopherJS/GopherWasm
2018-06-24 16:10:24 +09:00
Hajime Hoshi
a8c27b4eb1
audio/mp3: Bug fix: float32ArrayToSlice didn't work for Wasm
2018-06-24 04:33:05 +09:00
Hajime Hoshi
baee2ba4c9
audio/mp3: Bug fix: ArrayBuffer in the backend can be different from Uint8Array range
2018-06-24 02:31:34 +09:00
Hajime Hoshi
4c70ad382d
audio/mp3: Bug fix: Avoid using a detached ArrayBuffer
2018-06-24 02:12:00 +09:00
Hajime Hoshi
5aefa837db
audio/mp3: Use gopherwasm
2018-06-24 01:42:16 +09:00
Hajime Hoshi
273093b237
audio: Skip the player in the state of starting, seeking or EOF
...
This is basically reland of
2fee7a6fe5
.
Before this change, if a player's buffer was not enough for
reading, 0 value were used and this caused noises. The reading
size should be aligned with all the players.
However, there are some cases that the player should be skippped.
For example, just after a player just starts playing or seeking,
the buffer is empty. In this case, other players should not wait
for the player since decoding might take some time. Another case
is that the player reached EOF.
This change aligns the read buffer sizes but use zero values only
when the player just starts or seeks, or reaches EOF.
2018-06-09 22:00:11 +09:00
Hajime Hoshi
facf184548
Revert "audio: Consider the state of the player's starting and seeking"
...
This reverts commit 2fee7a6fe5
.
Reason: This causes freezing on browsers
2018-06-09 19:28:20 +09:00
Hajime Hoshi
b62e07b9bd
audio: Remove println
2018-06-09 19:05:07 +09:00
Hajime Hoshi
2fee7a6fe5
audio: Consider the state of the player's starting and seeking
...
Before this change, if a player's buffer was not enough for
reading, 0 value were used and this caused noises. The reading
size should be aligned with all the players.
Just after a player just starts playing or seeking, the buffer is
empty but other players should not wait for the player read since
decoding might take some time.
To summerize, this change aligns the read buffer sizes but use
zero values only when the player just starts or seeks.
2018-06-09 19:01:57 +09:00
Hajime Hoshi
91958d24ef
audio: Use bigger buffers for mobiles
2018-06-09 18:14:18 +09:00
Hajime Hoshi
faaf391619
audio: Give up syncing audio timer and game timer ( #617 )
...
Syncing was already incomplete (e.g. decoding takes more than one
frame and delays can happen in this case). Giving up syncing audio
timer and game timer should not affect the game experience so much.
Instead, clock implementation will be much simpler.
2018-05-27 00:30:12 +09:00
Hajime Hoshi
5976e4bbbc
audio: More intellegent suspending/resuming ( #617 )
...
Before this change, the audio is suspended when the game stops for
1/12[s]. However, as game often stops for more than 1/12[s]
especially on mobiles, this implemntation caused some audio
glitches.
This change fixes this problem by re-implementing suspending/
resumeing audio by detecting the window is active/focused or not.
2018-05-26 23:31:04 +09:00
Hajime Hoshi
df048d9bf6
audio: Don't use nosync GopherJS
...
nosync package is good in terms of performance, but this assumes
that duplicated lock never happens. As audio package runs multiple
goroutines, theoretically duplicated lock can happen, and it looks
like this is an actual case (#603 ).
This change replaces nosync usages with regular sync usages.
Probably I'll deprecate nosync usages via internal/sync package
everywhere in Ebiten.
This might fix #603 .
2018-05-09 12:14:20 +09:00
Hajime Hoshi
83f168a010
audio/vorbis: Bug fix: fail to decode too short ogg
2018-04-07 22:13:12 +09:00
Hajime Hoshi
75ac8e6f2b
vorbis: Add tests ( #570 )
2018-03-31 01:51:39 +09:00
Hajime Hoshi
a31874ed48
vorbis: Bug fix: Length returned wrong result with monoral source ( #570 )
2018-03-30 11:59:03 +09:00
Hajime Hoshi
f1f0277deb
wav: Set finalizer for the stream
2018-03-27 12:10:57 +09:00
Hajime Hoshi
88cfd219e7
mp3: Set finalizer for the stream
2018-03-27 10:58:13 +09:00
Hajime Hoshi
f4e018a336
vorbis: Bug fix: Read was not responsible with Close ( #569 )
2018-03-27 10:51:21 +09:00
Hajime Hoshi
632a97974d
audio: Fix wrong English word
2018-03-22 00:36:48 +09:00
Hajime Hoshi
18113f259a
audio: NewPlayer now accepts io.ReadCloser
...
Fixes #414
2018-03-22 00:33:17 +09:00
Hajime Hoshi
1b0e71765f
internal/hooks: Rename Update -> BeforeUpdate
2018-03-15 02:50:10 +09:00
Hajime Hoshi
063153e41d
ebitenutil: Speed up to avoid copying by image.Rect
2018-03-11 21:39:22 +09:00
Hajime Hoshi
61950817fa
audio: Bug fix: importing audio without NewContext causes error
2018-03-04 22:18:14 +09:00
Hajime Hoshi
647d8f0094
audio: Use time.NewTimer and Stop instead of time.After
...
Fixes #532
2018-03-04 19:23:38 +09:00
Hajime Hoshi
392ee92aeb
Add internal/hooks to replace internal/audiobinding
2018-02-04 17:33:17 +09:00
Hajime Hoshi
2322c5600b
audio: Revert the buffer size
...
This basically reverts df62b16270
.
2018-01-29 11:57:52 +09:00
Hajime Hoshi
5c55df87d7
audio: Deprecate Size() and add Length() ( #466 )
2018-01-09 01:25:38 +09:00
Hajime Hoshi
ef282f7f4f
audio/internal/convert: Remove unused functions
2018-01-09 00:26:54 +09:00
Hajime Hoshi
e83810fc57
audio/internal/convert: Add resampling_test.go
...
Fixes #369
2018-01-08 23:44:44 +09:00
Hajime Hoshi
d5d5ebb0b3
clock: Make ProceedAudioTimer take a number of frames
2018-01-07 18:32:19 +09:00
Hajime Hoshi
d12a3d4073
clock: Refactoring
2018-01-07 17:10:56 +09:00
Hajime Hoshi
0b3495b81f
audio: Use mock sync on browsers
2018-01-07 15:26:18 +09:00
Hajime Hoshi
11a1e6ec39
audio/internal/convert: Adjust window size again (confirmed this worked well on iPhone 6)
2018-01-06 01:49:55 +09:00
Hajime Hoshi
5b2dbf6036
audio/internal/convert: Adjust resamplingBufferSize again
2018-01-06 01:46:54 +09:00
Hajime Hoshi
ab70f6fc58
audio/internal/convert: Much faster sine/cosine functions
2018-01-06 00:15:07 +09:00
Hajime Hoshi
005d18ceff
audio/internal/convert: Use int64 (now it is fast enough on browsers?)
2018-01-05 20:03:17 +09:00
Hajime Hoshi
c020101afc
audio/internal/convert: Use cosine table
2018-01-05 19:40:12 +09:00
Hajime Hoshi
2884fb7070
audio/internal/convert: Fix algorithm
2018-01-05 18:21:14 +09:00
Hajime Hoshi
df62b16270
audio: Use bigger buffer size for mobile phones
2017-12-31 01:28:08 +09:00
Hajime Hoshi
de1a22d9f3
audio/internal/convert: Bug fix: remove unneeded import
2017-12-31 00:15:36 +09:00
Hajime Hoshi
03942292f5
audio/internal/convert: Change the window smaller for performance
...
On iOS, resapling performance was not good.
2017-12-31 00:14:52 +09:00
Hajime Hoshi
97ec367e23
audio: Use :=
2017-12-30 21:18:34 +09:00
Hajime Hoshi
65c0bf55fc
audio: Fix buffer size for the latest Oto
2017-12-28 20:37:36 +09:00
Hajime Hoshi
a98b03f738
audio/mp3: Flexible timeout
2017-12-27 19:18:02 +09:00
Hajime Hoshi
e2a026138a
audio/internal/convert: Use float64 for positions
2017-12-27 18:55:17 +09:00
Hajime Hoshi
6d6504085c
audio/internal/convert: Rename members
2017-12-27 18:05:55 +09:00
Hajime Hoshi
50a6158513
audio/mp3: Adjust timeout
2017-12-26 14:55:01 +09:00
Hajime Hoshi
3855bcc5a4
audio/mp3: Change the timeout for decoding (for Firefox)
2017-12-26 00:59:36 +09:00
Hajime Hoshi
ad54538d07
audio/mp3: Use byte instead of uint8
2017-12-26 00:11:17 +09:00
Hajime Hoshi
bb44eebe78
audio/mp3: Replace magic numbers with consts in io package
2017-12-26 00:10:30 +09:00
Hajime Hoshi
908ccb9404
audio/mp3: Try again decoding when timed out ( #464 )
2017-12-26 00:08:33 +09:00
Hajime Hoshi
623caad3ec
audio: Bug fix: appropriate buffer size on browsers
2017-12-25 01:54:55 +09:00
Hajime Hoshi
60eef4618d
audio: Revert size (due to noise on browsers)
2017-12-25 00:16:47 +09:00
Hajime Hoshi
4a06198160
audio: Smaller buffers (experimental)
2017-12-24 22:16:45 +09:00
Hajime Hoshi
5679103d71
audio: Use io.CopyN
2017-12-24 21:21:15 +09:00
Hajime Hoshi
a74cf21f21
audio/mp3: Revert calling Gosched(): Looks like this doesn't make sense
2017-12-24 04:53:51 +09:00
Hajime Hoshi
2155b2f04a
audio/mp3: Channels should be used only once
2017-12-24 04:40:20 +09:00
Hajime Hoshi
e14257d76d
audio: A little better buffer size for Android Chrome
2017-12-24 04:01:41 +09:00
Hajime Hoshi
ae6bdf23f2
audio: Recalculate audio buffer size
2017-12-24 03:54:42 +09:00