smml 0.0.1.5 → 0.0.2
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 +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
|