smml 0.0.1.5 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/smml/msm.rb +29 -6
- data/lib/smml/version.rb +1 -1
- 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: e9e4b5e286515548fd779124d93a0e4af0033544
|
4
|
+
data.tar.gz: 1d03edbde6611b9765734e39876c150bbd18174e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4594fbee45fd10fc83d777f96771f6a9c8f661bd6ff8de91530798541ae6c3f072aff4a62c8e2104720c9bfe3e1d05154e494391359a42e64d1e8f867832df8
|
7
|
+
data.tar.gz: 16ac496ecb4c88b4d357371dd02efd3f4f67b6e65b7d478415f1aab981a893ed273a961b1a4d3ba6181a8aca52265c10040ed95b8c11318547818d9d22d82f44
|
data/lib/smml/msm.rb
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
require 'kconv'
|
4
4
|
require 'optparse'
|
5
5
|
|
6
|
+
$debuglevel=0
|
7
|
+
|
6
8
|
def hint
|
7
9
|
cmd=File.basename($0)
|
8
10
|
puts <<EOF
|
@@ -140,7 +142,7 @@ class String
|
|
140
142
|
def cmark
|
141
143
|
@@cmark
|
142
144
|
end
|
143
|
-
def
|
145
|
+
def commentoff ofs="",com=@@cmark
|
144
146
|
lines=self.split("\n")
|
145
147
|
d=multilineTrim(lines,com)
|
146
148
|
d=d.map{|i|i.sub(/(#{com}).*/){}.chomp}*ofs
|
@@ -269,7 +271,7 @@ def rawdata d
|
|
269
271
|
d.gsub(","){" "}
|
270
272
|
end
|
271
273
|
def trackSizeHex d,cmark="#"
|
272
|
-
d=d.
|
274
|
+
d=d.commentoff("",cmark).split.join
|
273
275
|
i=(d.size+8)/2
|
274
276
|
# p [d,i,i.to_s(16)]
|
275
277
|
#("00000000"+i.to_s(16))[-8..-1]
|
@@ -646,6 +648,7 @@ end
|
|
646
648
|
module MidiHex
|
647
649
|
# 設定のため最初に呼ばなければならない
|
648
650
|
def self.prepare bpm,tbase=480,vel=0x40,oct=:near,vfuzzy=2
|
651
|
+
@autopan=true
|
649
652
|
@startBpm=bpm
|
650
653
|
@midiname=false
|
651
654
|
@cmark="#"
|
@@ -684,6 +687,7 @@ module MidiHex
|
|
684
687
|
@basekeyRythm=@basekeyOrg=@basekey
|
685
688
|
@bendrange=2
|
686
689
|
@bendCent=1
|
690
|
+
@pancenter=64
|
687
691
|
@prepareSet=[@tbase,@ch,@velocity,@velocityFuzzy,@basekey,@gateRate,@bendrange,@bendCent]
|
688
692
|
@chmax=15
|
689
693
|
@bendrangemax=127
|
@@ -714,7 +718,7 @@ module MidiHex
|
|
714
718
|
@midiname+=".mid" if @midiname !~ /\.mid$/
|
715
719
|
end
|
716
720
|
end
|
717
|
-
@data=File.read(name).
|
721
|
+
@data=File.read(name).commentoff(" ;").toutf8 if name && File.exist?(name)
|
718
722
|
end
|
719
723
|
def self.getdata
|
720
724
|
@data
|
@@ -758,8 +762,9 @@ module MidiHex
|
|
758
762
|
@preBefore=[]
|
759
763
|
@preAfter=[]
|
760
764
|
@tracknum=tc+1
|
761
|
-
tc+=1 if tc
|
765
|
+
tc+=1 if tc>=@rythmChannel # ch10 is drum kit channel
|
762
766
|
tc=@chmax if tc>@chmax
|
767
|
+
@panoftrack=panbytrack(tc)
|
763
768
|
@ch=tc
|
764
769
|
end
|
765
770
|
def self.header format,track,tbase=@tbase
|
@@ -1352,6 +1357,19 @@ module MidiHex
|
|
1352
1357
|
end
|
1353
1358
|
}
|
1354
1359
|
end
|
1360
|
+
def self.autopan v
|
1361
|
+
@autopan=v
|
1362
|
+
end
|
1363
|
+
def self.autopanset tnum
|
1364
|
+
@panstep=0x7f/(tnum+2)
|
1365
|
+
end
|
1366
|
+
def self.panbytrack tc
|
1367
|
+
if @autopan
|
1368
|
+
tc==@rythmChannel ? @pancenter : (tc+1)*@panstep
|
1369
|
+
else
|
1370
|
+
@pancenter
|
1371
|
+
end
|
1372
|
+
end
|
1355
1373
|
def self.strokeSpeed s
|
1356
1374
|
s=s.to_i
|
1357
1375
|
@strokespeed=s
|
@@ -1451,6 +1469,7 @@ module MidiHex
|
|
1451
1469
|
@shiftbase=40
|
1452
1470
|
accent=false
|
1453
1471
|
sharp=0
|
1472
|
+
@h<<[:controlChange,"10,#{@panoftrack}"] if @autopan
|
1454
1473
|
cmd=rundata.scan(/&\([^)]+\)|\([-+]*[[:digit:]]?\)|:[^\(,]+\([^\)\(]+\),|:[^,]+,|\([^:]*:[^)\(]*\)|_[^!_]+!|_[^_]__[^\?]+\?|v[[:digit:]]+|[<>][[:digit:]]*|\*?[[:digit:]]+\.[[:digit:]]+|\*?[[:digit:]]+|[-+[:alpha:]]|\^|`|'|./)
|
1455
1474
|
cmd<<" " # dummy
|
1456
1475
|
p "make start: ",cmd if $DEBUG
|
@@ -2166,7 +2185,7 @@ end
|
|
2166
2185
|
|
2167
2186
|
class MmlTracks
|
2168
2187
|
attr_accessor :tracknum, :tbase, :rundatas, :rawdatas, :mx
|
2169
|
-
attr_accessor :bpm, :velocity, :octave, :vfuzzy, :data, :infile, :outfile
|
2188
|
+
attr_accessor :bpm, :velocity, :octave, :vfuzzy, :data, :infile, :outfile, :autopan
|
2170
2189
|
def initialize tbase=480,pagesep='///',expfile=false,cmark=';;'
|
2171
2190
|
String.new.setcmark(cmark)
|
2172
2191
|
@mx=MidiHex
|
@@ -2183,6 +2202,7 @@ class MmlTracks
|
|
2183
2202
|
@velocity=0x40
|
2184
2203
|
@octave=:near
|
2185
2204
|
@vfuzzy=2
|
2205
|
+
@autopan=true
|
2186
2206
|
end
|
2187
2207
|
def init test,fz
|
2188
2208
|
@mx.prepare(@bpm,@tbase,@velocity,@octave,@vfuzzy)
|
@@ -2238,6 +2258,9 @@ class MmlTracks
|
|
2238
2258
|
end
|
2239
2259
|
def settracks
|
2240
2260
|
@htracks=[]
|
2261
|
+
tcall=@rundatas.size
|
2262
|
+
@mx.autopanset(tcall)
|
2263
|
+
@mx.autopan(@autopan)
|
2241
2264
|
tc=0
|
2242
2265
|
# remember starting position check if data exist before sound
|
2243
2266
|
@htracks << @mx.metaTitle + @mx.generaterText + @mx.starttempo.data + @mx.makefraze(@rundatas[0],tc) + @mx.lastrest
|
@@ -2250,7 +2273,7 @@ class MmlTracks
|
|
2250
2273
|
@header=@mx.header(1, @tracknum, @tbase)
|
2251
2274
|
alla=[@header]+@htracks.map{|t|@mx.trackMake(t)}.flatten
|
2252
2275
|
puts alla if $DEBUG
|
2253
|
-
all=alla.map{|i|i.
|
2276
|
+
all=alla.map{|i|i.commentoff("","#")}*""
|
2254
2277
|
array=[all.split.join]
|
2255
2278
|
@binary = array.pack( "H*" )
|
2256
2279
|
end
|
data/lib/smml/version.rb
CHANGED
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.0.
|
4
|
+
version: 0.0.2
|
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-
|
11
|
+
date: 2014-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|