audio-playback 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +1 -1
- data/lib/audio-playback.rb +1 -1
- data/lib/audio-playback/device/stream.rb +8 -0
- data/lib/audio-playback/playback.rb +5 -1
- data/lib/audio-playback/playback/frame_set.rb +1 -1
- data/lib/audio-playback/playback/stream_data.rb +5 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86feb1c8a53cb706283d6aefbf0cbee23d028ca8
|
4
|
+
data.tar.gz: 8679d8cc6876bedd0cce0a22878b424c2fda5e80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48cf6147b24c28099b0e32cf04cbadde493405ab99da91a102603850cd5c6588d3485814bccf8ca73c6227ae74f4c9be6f65df9ced1e7554d1440f7d0da78133
|
7
|
+
data.tar.gz: 723554296063b7c2169e7ec20b6197a47c18b5088cc5ef9e45723871a271db2c1dd65ef2565e4ae345dcc8999c9d41547147228168b29dc469d5e9b8dce6c1c6
|
data/LICENSE
CHANGED
data/README.md
CHANGED
data/lib/audio-playback.rb
CHANGED
@@ -70,14 +70,22 @@ module AudioPlayback
|
|
70
70
|
|
71
71
|
private
|
72
72
|
|
73
|
+
# Open the stream resource for playback
|
74
|
+
# @param [Playback] playback
|
75
|
+
# @return [Boolean]
|
73
76
|
def open_stream(playback)
|
74
77
|
@userdata = playback.data.to_pointer
|
75
78
|
FFI::PortAudio::API.Pa_OpenStream(@stream, @input, @output, @freq, @frames, @flags, @method, @userdata)
|
79
|
+
true
|
76
80
|
end
|
77
81
|
|
82
|
+
# Reset the stream and continue playback
|
83
|
+
# @param [Playback] playback
|
84
|
+
# @return [Boolean]
|
78
85
|
def continue(playback)
|
79
86
|
playback.reset
|
80
87
|
open_stream(playback)
|
88
|
+
true
|
81
89
|
end
|
82
90
|
|
83
91
|
# Initialize the callback that's fired when the stream exits
|
@@ -23,7 +23,7 @@ module AudioPlayback
|
|
23
23
|
attr_reader :buffer_size, :channels, :data, :output, :num_channels, :sounds, :stream
|
24
24
|
def_delegators :@sounds, :audio_files
|
25
25
|
def_delegators :@data, :reset
|
26
|
-
|
26
|
+
|
27
27
|
# @param [Array<Sound>, Sound] sounds
|
28
28
|
# @param [Output] output
|
29
29
|
# @param [Hash] options
|
@@ -40,10 +40,14 @@ module AudioPlayback
|
|
40
40
|
report(options[:logger]) if options[:logger]
|
41
41
|
end
|
42
42
|
|
43
|
+
# Sample rate of the playback sound
|
44
|
+
# @return [Fixnum]
|
43
45
|
def sample_rate
|
44
46
|
@sounds.last.sample_rate
|
45
47
|
end
|
46
48
|
|
49
|
+
# Size of the playback sound
|
50
|
+
# @return [Fixnum]
|
47
51
|
def size
|
48
52
|
@sounds.map(&:size).max
|
49
53
|
end
|
@@ -24,7 +24,7 @@ module AudioPlayback
|
|
24
24
|
data = sound.data
|
25
25
|
data = ensure_array_frames(data)
|
26
26
|
data = to_frame_objects(data)
|
27
|
-
data = build_channels(data, playback)
|
27
|
+
data = build_channels(data, playback) unless channels_match?(playback, sound)
|
28
28
|
data
|
29
29
|
end
|
30
30
|
|
@@ -19,6 +19,8 @@ module AudioPlayback
|
|
19
19
|
populate
|
20
20
|
end
|
21
21
|
|
22
|
+
# Reset the stream metadata
|
23
|
+
# @param [Boolean]
|
22
24
|
def reset
|
23
25
|
indexes = [
|
24
26
|
Playback::METADATA.index(:pointer),
|
@@ -31,9 +33,9 @@ module AudioPlayback
|
|
31
33
|
# A C pointer version of the audio data
|
32
34
|
# @return [FFI::Pointer]
|
33
35
|
def to_pointer
|
34
|
-
pointer
|
35
|
-
pointer.write_array_of_float(@data.flatten)
|
36
|
-
pointer
|
36
|
+
@pointer ||= FFI::LibC.malloc(@playback.data_size)
|
37
|
+
@pointer.write_array_of_float(@data.flatten)
|
38
|
+
@pointer
|
37
39
|
end
|
38
40
|
|
39
41
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: audio-playback
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ari Russo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|