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 +4 -4
- data/README_smml.md +32 -0
- data/lib/smml/msm.rb +21 -10
- data/lib/smml/version.rb +1 -1
- data/smml.gemspec +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67aa246a5209bbc55a5ba1356a63ef39b10c87bc
|
4
|
+
data.tar.gz: 696a7e1b9642fb167bc719a2a04e4d425e866a34
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
151
|
+
def tracksep pspl
|
148
152
|
tracks={}
|
149
153
|
pages=self.split(/#{pspl}+/)
|
154
|
+
markc=0
|
150
155
|
pages.each{|p|
|
151
|
-
p
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
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=
|
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.
|
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
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.
|
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-
|
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
|