ruby-mext 0.15.3 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
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