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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/smml/msm.rb +29 -6
  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: 75ff5842372ded20636c957cecf250fd9281aeaa
4
- data.tar.gz: 9fa770527ddb702083efc7e8fadf3de322d2018c
3
+ metadata.gz: e9e4b5e286515548fd779124d93a0e4af0033544
4
+ data.tar.gz: 1d03edbde6611b9765734e39876c150bbd18174e
5
5
  SHA512:
6
- metadata.gz: 85190158c8daf8d4348b4b9a3bdab554296646d2177cd461cea9b31906b27c3595e23b7d12e4bb35a134f232c0822949eeb04271b873fff81e9c250aca2e03c3
7
- data.tar.gz: aaad50efe9d52991caf0742f0144091cd4f407f8bb51feb14a91fe3cf1a91a07494c573e0bbbb0ee9c924682855174b311ef23a702f7af8268dc03d40b42728a
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 trim ofs="",com=@@cmark
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.trim("",cmark).split.join
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).trim(" ;").toutf8 if name && File.exist?(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>=9 # ch10 is drum kit channel
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.trim("","#")}*""
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
@@ -1,3 +1,3 @@
1
1
  module Smml
2
- VERSION = "0.0.1.5"
2
+ VERSION = "0.0.2"
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.0.1.5
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-18 00:00:00.000000000 Z
11
+ date: 2014-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler