smml 0.0.1.2 → 0.0.1.3

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
  SHA1:
3
- metadata.gz: 6bf2824c9bd756298a61dd85c3ba78c2adef2528
4
- data.tar.gz: f54b53bffa1e535c2da4a4b7a1064b0bb7e6baf1
3
+ metadata.gz: 67aa246a5209bbc55a5ba1356a63ef39b10c87bc
4
+ data.tar.gz: 696a7e1b9642fb167bc719a2a04e4d425e866a34
5
5
  SHA512:
6
- metadata.gz: 49195b2fe4dc36160ec7b8cfd8701796555bb15f0c48ffade3b085348537b644251da15af74fe06531622b2fee1f8ecae6f813d9d981992a0290a7f222802ef0
7
- data.tar.gz: 8802d8ed531d9e38d5472a051920d38b53ce2ae9544840d815ad732c37d67534d00a031b53dc023125142b922c4276dcffacd4b670edde6a01a47b659a61a1f0
6
+ metadata.gz: 1a93e8f14b8ea8d1a4147601989e4e7777be71f07b63c7bd0e118291d50c6224b9e970327b6c554c078d4f923594496b1065359f2dd3577709b7ac2579e99f24
7
+ data.tar.gz: dd1dc625e001fdf571cd8bb5dfd10c75c7becff2961a7e9c0248968181da89295fa53fd5a7b2936b5bc8fdde4ff425923868e4a21a20ff22e31e785f1f524448
data/README_smml.md ADDED
@@ -0,0 +1,32 @@
1
+ # Smml
2
+
3
+ simple Music Macro Language to MIDI
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'smml'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install smml
20
+
21
+ ## Usage
22
+
23
+ m=MmlTracks.new
24
+ m.compile('infile.mml','outfile.mid')
25
+
26
+ ## Contributing
27
+
28
+ 1. Fork it ( https://github.com/[my-github-username]/smml/fork )
29
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
30
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
31
+ 4. Push to the branch (`git push origin my-new-feature`)
32
+ 5. Create a new Pull Request
data/lib/smml/msm.rb CHANGED
@@ -67,6 +67,7 @@ syntax: ...( will be changed time after time)
67
67
  (syswait:) =when using '(gm:on)' etc., this command is needed for all other tracks to adjust wait-time.
68
68
  ||| = track separater
69
69
  /// = page separater
70
+ series of page seperaters insert unique '(mark:all track mark)' to allready running tracks automaticaly.
70
71
  (mark:posname) =position name for adjustment of tracks after long rest etc.
71
72
  .DC .DS .toCODA .CODA .FINE =coda mark etc.
72
73
  .SKIP =skip mark on over second time
@@ -128,6 +129,9 @@ def multilineTrim l,com
128
129
  puts " ? mismatch end mark of multiline comment." if on
129
130
  r
130
131
  end
132
+ def allTrackMark c
133
+ "(mark:.ALL_TRACK_MARK_#{c}.)"
134
+ end
131
135
  class String
132
136
  def setcmark c
133
137
  @@cmark=c
@@ -144,17 +148,24 @@ class String
144
148
  def sharp2cmark
145
149
  self.gsub!("#"){@@cmark}
146
150
  end
147
- def tracks pspl
151
+ def tracksep pspl
148
152
  tracks={}
149
153
  pages=self.split(/#{pspl}+/)
154
+ markc=0
150
155
  pages.each{|p|
151
- p.split('|||').each_with_index{|t,i|
152
- if tracks[i]
153
- tracks[i] << t
154
- else
155
- tracks[i] = [t]
156
- end
157
- }
156
+ if p=~/^[ ;]+$/
157
+ p=allTrackMark(markc)
158
+ tracks.values.each{|v| v << p }
159
+ markc+=1
160
+ else
161
+ p.split('|||').each_with_index{|t,i|
162
+ if tracks[i]
163
+ tracks[i] << t
164
+ else
165
+ tracks[i] = [t]
166
+ end
167
+ }
168
+ end
158
169
  }
159
170
  tracks.keys.sort.map{|k|tracks[k]*";"}
160
171
  end
@@ -2151,7 +2162,7 @@ end
2151
2162
  class MmlTracks
2152
2163
  attr_accessor :tracknum, :tbase, :rundatas, :rawdatas, :mx
2153
2164
  attr_accessor :bpm, :velocity, :octave, :vfuzzy, :data, :infile, :outfile
2154
- def initialize tbase=480,pagesep='///',expfile='expfile.txt',cmark=';;'
2165
+ def initialize tbase=480,pagesep='///',expfile=false,cmark=';;'
2155
2166
  String.new.setcmark(cmark)
2156
2167
  @mx=MidiHex
2157
2168
  @rundatas=[]
@@ -2175,7 +2186,7 @@ class MmlTracks
2175
2186
  @mx.setdata(@data) if ! @mx.getdata
2176
2187
  (hint;exit) if (! @mx.getdata || ! @mx.getmidiname ) && ! test
2177
2188
  settest if test
2178
- @tracks=@mx.getdata.tracks(@pagesep)
2189
+ @tracks=@mx.getdata.tracksep(@pagesep)
2179
2190
  showtracks if $DEBUG && $debuglevel>1
2180
2191
  fuzzy(fz)
2181
2192
  end
data/lib/smml/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Smml
2
- VERSION = "0.0.1.2"
2
+ VERSION = "0.0.1.3"
3
3
  end
data/smml.gemspec CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = ""
14
14
  spec.license = "MIT"
15
15
 
16
- spec.files = Dir.glob("lib/*")+Dir.glob("lib/smml/*")+["Gemfile","Rakefile","LICENSE.txt","smml.gemspec"]
16
+ spec.files = Dir.glob("lib/*")+Dir.glob("lib/smml/*")+["Gemfile","Rakefile","LICENSE.txt","smml.gemspec","README_smml.md"]
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
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.2
4
+ version: 0.0.1.3
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-16 00:00:00.000000000 Z
11
+ date: 2014-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -54,6 +54,7 @@ files:
54
54
  - Rakefile
55
55
  - LICENSE.txt
56
56
  - smml.gemspec
57
+ - README_smml.md
57
58
  homepage: ''
58
59
  licenses:
59
60
  - MIT