smml 0.1.0.4 → 0.1.1

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/smml/msm.rb +53 -19
  3. data/lib/smml/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5502e954b9a84c81d1589125b9c6bff866c7a47c
4
- data.tar.gz: 7a54373e442e7d92e5200fd699bd99cbddff5118
3
+ metadata.gz: 17054e465ae5c0f404fa3670cd8baed2c8084ad0
4
+ data.tar.gz: 5f256889f73d29076c707924367ba4ead7a51a07
5
5
  SHA512:
6
- metadata.gz: 3724df4add3c3d66ac9cc733149a5762bf8e899d0bf28e673d4d01b066b529d72ed612f77cca459612ea5ee06df9bd2d3669f0668fcc2f3320ac318108624117
7
- data.tar.gz: f65ca001292854935dfd31c15d73d5556d7e4fee703026a864d62760c4fea85b5746b44434239caa49964f0e189fee9e484ec0f18ba648431615cb620a4cf514
6
+ metadata.gz: b6aa7ea713b36761c92e9d931f7414f045a136b601015038f56ff86eda259211e34d83a2fd7a3523f72cfdb78f4b21c686e800acc143c2f08d122821bae8c051
7
+ data.tar.gz: a7f56ee6a605dd5033dde9404342bed36f5a97ca4b68ba6a108610b1f463dfa3eaf538bbbe7ad6f43275fe91d65c1a88bc6c9109e5b574748b6991f29843b01e
data/lib/smml/msm.rb CHANGED
@@ -198,6 +198,47 @@ class Array
198
198
  r
199
199
  end
200
200
  end
201
+ class Notes < Hash
202
+ @@rythmChannel=9
203
+ @@n={
204
+ "c"=>0,
205
+ "C"=>1,
206
+ "d"=>2,
207
+ "D"=>3,
208
+ "e"=>4,
209
+ "f"=>5,
210
+ "F"=>6,
211
+ "g"=>7,
212
+ "G"=>8,
213
+ "a"=>9,
214
+ "A"=>10,
215
+ "b"=>11,
216
+ "t"=>[0,@@rythmChannel],
217
+ "s"=>[3,@@rythmChannel],
218
+ "u"=>[6,@@rythmChannel]
219
+ }
220
+ @@invert=@@n.invert
221
+ @@octave=12
222
+ def initialize
223
+ @@n.each{|k,v|self[k]=v}
224
+ end
225
+ def self.get last,n=0
226
+ last=~/(\-*)(\+*)([[:alpha:]])/
227
+ oct=$1.size*(-1)+$2.size
228
+ last=$3
229
+ lastnote=@@n[last]+oct*@@octave
230
+ num=lastnote+n.to_i
231
+ octave= num / @@octave
232
+ pre=if octave>0
233
+ "+"*octave
234
+ elsif octave<0
235
+ "-"*(octave*-1)
236
+ else
237
+ ""
238
+ end
239
+ pre+@@invert[num%@@octave]
240
+ end
241
+ end
201
242
  class ScaleNotes < Array
202
243
  def setSampleRate c
203
244
  @samplerate=c
@@ -213,6 +254,9 @@ class ScaleNotes < Array
213
254
  self.sample
214
255
  end
215
256
  end
257
+ def reset
258
+ initialize
259
+ end
216
260
  end
217
261
  def unirand n,c,reset=false
218
262
  a=[0,n]
@@ -741,23 +785,7 @@ module MidiHex
741
785
  @onlist=[]
742
786
  @waitingtime=0
743
787
  @rythmChannel=9
744
- @notes={
745
- "c"=>0,
746
- "C"=>1,
747
- "d"=>2,
748
- "D"=>3,
749
- "e"=>4,
750
- "f"=>5,
751
- "F"=>6,
752
- "g"=>7,
753
- "G"=>8,
754
- "a"=>9,
755
- "A"=>10,
756
- "b"=>11,
757
- "t"=>[0,@rythmChannel],
758
- "s"=>[3,@rythmChannel],
759
- "u"=>[6,@rythmChannel]
760
- }
788
+ @notes=Notes.new
761
789
  @ch=0
762
790
  @velocity=vel
763
791
  @velocityOrg=vel
@@ -1160,7 +1188,7 @@ module MidiHex
1160
1188
  end
1161
1189
  def self.generaterText
1162
1190
  file=__FILE__
1163
- thisVer=File.mtime(file).strftime("%Y-%m-%d")
1191
+ thisVer="v#{Smml::VERSION}"
1164
1192
  thisVer="" if $debuglevel && $debuglevel>1
1165
1193
  pos=@tbase
1166
1194
  self.metaText("generated by midi-simple-make.rb (#{thisVer})",pos)
@@ -1384,11 +1412,17 @@ module MidiHex
1384
1412
  @chordCenter=[[0,@chordCenter].max,0x7f].min
1385
1413
  @firstchordbase=@chordCenter
1386
1414
  end
1415
+ # todo: use scale name
1387
1416
  def self.scale s
1417
+ @scalenotes.reset
1388
1418
  s=s.split(",")
1419
+ first=s.first
1389
1420
  s.each{|i|
1390
- @scalenotes<<i
1421
+ note=i
1422
+ note=Notes.get(first,i) if i=~/^[-+]+[[:digit:]]+$/
1423
+ @scalenotes<<note
1391
1424
  }
1425
+ p @scalenotes if $DEBUG
1392
1426
  end
1393
1427
  def self.preLength v
1394
1428
  @preLength=v.map{|i|
data/lib/smml/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Smml
2
- VERSION = "0.1.0.4"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.4
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - tabasano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-23 00:00:00.000000000 Z
11
+ date: 2014-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler