smml 0.0.1.2 → 0.0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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