tonal-tools 0.1.1 → 0.2.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: 104f86d9527406e4ebb2bc443347c1cd6c45c4b8380c8739c435c504a4381842
4
- data.tar.gz: a605b1bdd7c4fc7c20f6a66417422c9e55909bc9eaacaa5e4336280ca8e2f2a4
3
+ metadata.gz: 618bd26c11332eb200cf9b9bf8bb38f7956b1bc084d07f693ebe41f203839ccf
4
+ data.tar.gz: 2de816e7bd17637d912c31ebda7b2f93fb717e89caefc804805e4b0a786cee90
5
5
  SHA512:
6
- metadata.gz: '068a485c121ef0941c05d4fcc2e67e607aa8572fd2ba572e7481f5f54189cdeff0c4e04648b2809db35e2bc533dffe81c406bd0873093719bf5a8ea388718f44'
7
- data.tar.gz: b5d341be94a1ef9bb7c57cf5974b647bcd943151386c8a9fd4615f1a6f3e251ca8567994870d8882263e7963bcdaeb3214490a4bd245fdb423543fc41ef032f9
6
+ metadata.gz: c90617a5ecef6e01195e2e7d95f8d3588e068d119c5b4dbc602de97b5229086efc17e6de7a4e7c539d281693127d57225536bd259bcb435eeaba1e3646710f47
7
+ data.tar.gz: a64f852eab9bc77c7ccf5267a4b48999aa5860728191c8f13e67b0184de6b4766480a33415a82eadf3decfc07b9d804c49ad1c76c4b6fb82122a7b47454be903
data/data/commas.yml ADDED
@@ -0,0 +1,11 @@
1
+ commas:
2
+ # Interval between two enharmonically equivalent notes, as B# and C, in the Pythogorean tuning. ~23 cents
3
+ ditonic: 531441/524288
4
+ # The interval between a just major third (5:4) and a Pythogorean third (81:64). ~22 cents
5
+ syntonic: 81/80
6
+ # Difference between the syntonic and ditonic commas. ~2 cents
7
+ schisma: 32805/32768
8
+ diaschisma: 2048/2025
9
+ dieses1: 648/625
10
+ dieses2: 128/125
11
+ septimal: 64/63
@@ -0,0 +1,17 @@
1
+ class Tonal::Comma
2
+ def self.commas
3
+ @commas ||= JSON.parse(YAML::load_file("#{__dir__}/../../data/commas.yml", aliases: true).to_json)["commas"]
4
+ end
5
+
6
+ def self.values
7
+ @values ||= commas.values.map(&:to_r)
8
+ end
9
+
10
+ def self.keys
11
+ @keys ||= commas.keys
12
+ end
13
+
14
+ def self.method_missing(comma)
15
+ commas[comma.to_s].to_r
16
+ end
17
+ end
data/lib/tonal/ratio.rb CHANGED
@@ -469,7 +469,7 @@ class Tonal::Ratio
469
469
  # Return label, if defined; or,
470
470
  # Return the "antecedent/consequent", if antecedent is less than 7 digits long; or
471
471
  # Return the floating point representation rounded to 2 digits of precision
472
- @label || ((Math.log10(antecedent).to_i + 1) <= 6 ? "#{antecedent}/#{consequent}" : to_f.round(2))
472
+ (@label || ((Math.log10(antecedent).to_i + 1) <= 6 ? "#{antecedent}/#{consequent}" : to_f.round(2))).to_s
473
473
  end
474
474
 
475
475
  # @return [String] the string representation of Tonal::Ratio
data/lib/tonal/tools.rb CHANGED
@@ -1,9 +1,12 @@
1
1
  module Tonal
2
+ require "yaml"
3
+ require "json"
2
4
  require "prime"
3
5
  require "matrix"
4
6
  require "sorted_set"
5
7
  require "continued_fractions"
6
8
  require "fraction_tree"
9
+ require "tonal/comma"
7
10
  require "tonal/cents"
8
11
  require "tonal/hertz"
9
12
  require "tonal/log"
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tonal-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jose Hales-Garcia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-01 00:00:00.000000000 Z
11
+ date: 2023-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: yaml
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.6'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.6'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: prime
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -129,8 +157,10 @@ executables: []
129
157
  extensions: []
130
158
  extra_rdoc_files: []
131
159
  files:
160
+ - data/commas.yml
132
161
  - lib/tonal/approximations.rb
133
162
  - lib/tonal/cents.rb
163
+ - lib/tonal/comma.rb
134
164
  - lib/tonal/extensions.rb
135
165
  - lib/tonal/hertz.rb
136
166
  - lib/tonal/interval.rb
@@ -153,7 +183,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
153
183
  requirements:
154
184
  - - ">="
155
185
  - !ruby/object:Gem::Version
156
- version: '0'
186
+ version: 3.1.2
157
187
  required_rubygems_version: !ruby/object:Gem::Requirement
158
188
  requirements:
159
189
  - - ">="