ruby-mext 0.15.3 → 0.16.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8e05f91f8b3453a105147a9d4fc3ccf56cbb5c8b2ede5f4ab1e0cba89a659054
4
- data.tar.gz: 1d28728e1a17b43e67099b01dc49e18cfa33cf53550b0056cc3a05017da173f4
3
+ metadata.gz: 99f6292abec34cd042d4c36de64c339fb020bb867f636b9f37406e427be91b57
4
+ data.tar.gz: af95264284365db5f8e2f1ac77c6660735a00ea921181786c486afea93372689
5
5
  SHA512:
6
- metadata.gz: df981d8cf1a992a21509e148f9fec04176ff1c6ffeb7040d36b775f8a513f8c64d8467085923f1b9aa1148c3eb078f5ae625d54bf01116cdceae3510837b9958
7
- data.tar.gz: 88b73c56c537a049d89054b73ab2bc7af7ab126fa136d258ca183056ec34e8810d46f8d23bbdbc3bbe094be05bbbec7965cbf56120cd277f5e6fcd43eea750ac
6
+ metadata.gz: b77a6a5d99dd8a738d7131dfa7c4e1cfb18d257179d41c5bad3e13f81ff69af6c62e15caf9f5c002d14d68fc1fb643df0b809b44f130cf821b6cee1591253db3
7
+ data.tar.gz: 43b43dce16bc537f3f17b8aea8268530d704dfe99d148cddc7c0d0b018b4933193fa556c12ebe1e85980f845c921a04ccdc4ae4dacbb468494a38e6bfdaf2d83
data/lib/mext.rb CHANGED
@@ -11,4 +11,5 @@ end
11
11
  array
12
12
  math
13
13
  music
14
+ sound
14
15
  ).each { |f| require File.join(Mext::PATH, f) }
data/lib/mext/sound.rb ADDED
@@ -0,0 +1,11 @@
1
+ module Mext
2
+ module Sound
3
+
4
+ PATH = File.expand_path(File.join('..', 'sound'), __FILE__)
5
+
6
+ end
7
+ end
8
+
9
+ %w(
10
+ info
11
+ ).each { |f| require File.join(Mext::Sound::PATH, f) }
@@ -0,0 +1,51 @@
1
+ require 'wavefile'
2
+
3
+ module Mext
4
+ module Sound
5
+
6
+ #
7
+ # +Mext::Sound::Info+
8
+ #
9
+ # +Mext::Sound::Info+ is a class that holds all the information
10
+ # about a given sound sample.
11
+ #
12
+ # PLEASE NOTE: current implementation only supports wav files.
13
+ # You are welcome to contribute a more encompassing one.
14
+ #
15
+ class Info
16
+ attr_reader :filename, :sound_dir
17
+ attr_reader :sample_rate, :channels, :num_frames
18
+
19
+ def initialize(f, dir)
20
+ @filename = f
21
+ @sound_dir = dir
22
+ setup
23
+ end
24
+
25
+ #
26
+ # +dur+
27
+ #
28
+ # returns the total duration in seconds, calculating it with
29
+ # sample precision
30
+ #
31
+ def dur
32
+ self.num_frames.to_f / self.sample_rate.to_f
33
+ end
34
+
35
+ private
36
+
37
+ def setup
38
+ path = File.join(self.sound_dir, self.filename)
39
+ WaveFile::Reader.new(path) do
40
+ |reader|
41
+ @sample_rate = reader.format.sample_rate
42
+ @num_frames = reader.total_sample_frames
43
+ @total_dur = reader.total_duration # FIXME: kept but not used for now
44
+ @channels = reader.format.channels
45
+ end
46
+ end
47
+
48
+ end
49
+
50
+ end
51
+ end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mext
2
- VERSION = '0.15.3'
2
+ VERSION = '0.16.0'
3
3
  end
data/ruby-mext.gemspec CHANGED
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
30
  spec.require_paths = ['lib']
31
31
 
32
+ spec.add_dependency 'wavefile'
32
33
  spec.add_development_dependency 'bundler', '~> 1.13'
33
34
  spec.add_development_dependency 'rake', '~> 10.0'
34
35
  spec.add_development_dependency 'rspec', '~> 3.0'
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-mext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.3
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicola Bernardini
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-01 00:00:00.000000000 Z
11
+ date: 2019-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: wavefile
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -149,6 +163,8 @@ files:
149
163
  - lib/mext/numeric/pitch_fork.rb
150
164
  - lib/mext/numeric/rrand.rb
151
165
  - lib/mext/numeric/semitopch.rb
166
+ - lib/mext/sound.rb
167
+ - lib/mext/sound/info.rb
152
168
  - lib/mext/utilities.rb
153
169
  - lib/ruby-mext.rb
154
170
  - lib/ruby.rb