smml 0.1.8 → 0.1.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/smml/msm.rb +30 -12
- data/lib/smml/version.rb +1 -1
- data/sample/midi-test.mml +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: 21c1875b3d3c6af5a1ab009c3061b3b414fc38a7
|
4
|
+
data.tar.gz: 81e2af2f63f365d8e8023cce052b5568055a6eb2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05da008c658c956c680682349dc51ea61e82947d20d9f5ba9dff6e6c332adef2829ce81e27392bdd00be622e8bda06c7f16ceb38454200c409eb1ac81949223f
|
7
|
+
data.tar.gz: ba55e9d66319fb206069149b90b2b436714ddaaaf0b12318049531e3b4ff5fa4dd1f1fd548ef60aa87bd85b6bd55cf6c8461387d87fee8f63bd7931191234ae3
|
data/lib/smml/msm.rb
CHANGED
@@ -1059,14 +1059,16 @@ module MidiHex
|
|
1059
1059
|
@basekey=0x3C
|
1060
1060
|
@chordCenter=@chordCenterOrg=@basekey
|
1061
1061
|
@basekeyRythm=@basekeyOrg=@basekey
|
1062
|
+
@bendCentOn=false
|
1062
1063
|
@bendrange=2
|
1063
|
-
@
|
1064
|
+
@bendNow=0
|
1065
|
+
self.bendCentReset
|
1064
1066
|
@pancenter=64
|
1065
1067
|
@scalenotes=ScaleNotes.new.reset
|
1066
1068
|
@gtune=guitarTuning
|
1067
1069
|
self.setDefault
|
1068
1070
|
@chmax=15
|
1069
|
-
@bendrangemax=
|
1071
|
+
@bendrangemax=24
|
1070
1072
|
file="midi-programChange-list.txt"
|
1071
1073
|
pfile="midi-percussion-map.txt"
|
1072
1074
|
base=File.dirname(__FILE__)
|
@@ -1076,13 +1078,16 @@ module MidiHex
|
|
1076
1078
|
self.loadPercussionMap(pfile)
|
1077
1079
|
self.dumpstatus if $DEBUG && $debuglevel>3
|
1078
1080
|
end
|
1081
|
+
def setBendRangeMax v
|
1082
|
+
@bendrangemax=v
|
1083
|
+
end
|
1079
1084
|
def self.setDefault
|
1080
1085
|
@prepareSet=[
|
1081
|
-
@tbase,@ch,@velocity,@expression,@velocityFuzzy,@basekey,@gateRate,@bendrange,@bendCent,@scalenotes,@gtune,@expressionRest,@expressionDef
|
1086
|
+
@tbase,@ch,@velocity,@expression,@velocityFuzzy,@basekey,@gateRate,@bendCentOn,@bendrange,@bendCent,@bendNow,@scalenotes,@gtune,@expressionRest,@expressionDef
|
1082
1087
|
]
|
1083
1088
|
end
|
1084
1089
|
def self.getDefault
|
1085
|
-
@tbase,@ch,@velocity,@expression,@velocityFuzzy,@basekey,@gateRate,@bendrange,@bendCent,@scalenotes,@gtune,@expressionRest,@expressionDef=
|
1090
|
+
@tbase,@ch,@velocity,@expression,@velocityFuzzy,@basekey,@gateRate,@bendCentOn,@bendrange,@bendCent,@bendNow,@scalenotes,@gtune,@expressionRest,@expressionDef=
|
1086
1091
|
@prepareSet
|
1087
1092
|
end
|
1088
1093
|
def self.dumpstatus
|
@@ -1135,15 +1140,20 @@ module MidiHex
|
|
1135
1140
|
@bendrange=v.to_i
|
1136
1141
|
end
|
1137
1142
|
@bendrange=[[@bendrange,@bendrangemax].min,0].max
|
1143
|
+
self.bendCentReset
|
1138
1144
|
r=[]
|
1139
1145
|
r<<self.controlChange("101,0")
|
1140
1146
|
r<<self.controlChange("100,0")
|
1141
1147
|
r<<self.controlChange("6,#{@bendrange}")
|
1142
1148
|
r
|
1143
1149
|
end
|
1150
|
+
def self.bendCentReset
|
1151
|
+
cent= @bendCentOn ? 100.0 : 1
|
1152
|
+
@bendCent=@bendHalfMax/@bendrange/cent
|
1153
|
+
end
|
1144
1154
|
def self.bendCent on
|
1145
|
-
@
|
1146
|
-
|
1155
|
+
@bendCentOn=on
|
1156
|
+
self.bendCentReset
|
1147
1157
|
@lastbend=0
|
1148
1158
|
end
|
1149
1159
|
def self.trackPrepare tc=0
|
@@ -1235,11 +1245,13 @@ module MidiHex
|
|
1235
1245
|
@waitingtime=0
|
1236
1246
|
pos-=start
|
1237
1247
|
depth=(key-@thereminNote)*100
|
1248
|
+
depth=depth+@bendNow
|
1238
1249
|
r<<self.bend(start,depth.to_s,ch)
|
1239
1250
|
r<<self.bend(pos,depth.to_s,ch)
|
1240
1251
|
r
|
1241
1252
|
end
|
1242
1253
|
def self.oneNote len=@tbase,key=@basekey,velocity=@velocity,ch=@ch,sharp=0
|
1254
|
+
bendStart=@bendNow
|
1243
1255
|
velocity=@preVelocity.shift if @preVelocity.size>0
|
1244
1256
|
gate=@gateRate
|
1245
1257
|
ch=[ch,0x0f].min
|
@@ -1275,7 +1287,8 @@ module MidiHex
|
|
1275
1287
|
end
|
1276
1288
|
@nowtime+=slen
|
1277
1289
|
r<<Event.new(:e,slen," 8#{ch} #{key} 00 # #{slen}(gate:#{@gateRate})- #{len.to_i}(#{len.round(2)})ticks later, sound off [#{(@nowtime/@tbase).to_i}, #{@nowtime%@tbase}]\n")
|
1278
|
-
r<<self.bend(0,
|
1290
|
+
r<<self.bend(0,bendStart) if bends
|
1291
|
+
@bendNow=bendStart
|
1279
1292
|
r<<self.expre(0,127) if expre
|
1280
1293
|
if rest>0
|
1281
1294
|
@nowtime+=rest
|
@@ -1316,6 +1329,7 @@ module MidiHex
|
|
1316
1329
|
self.oneNote(len,key,vel,@rythmChannel,sharp)
|
1317
1330
|
end
|
1318
1331
|
def self.notes c,l=false,accent=false,sharp=0,sharpFloat=false
|
1332
|
+
bendStart=@bendNow
|
1319
1333
|
@lastnoteName=c
|
1320
1334
|
n=@notes[c]
|
1321
1335
|
if @octmode==:near && n.class != Array
|
@@ -1330,11 +1344,14 @@ module MidiHex
|
|
1330
1344
|
end
|
1331
1345
|
r=[]
|
1332
1346
|
if sharpFloat && sharpFloat!=0
|
1333
|
-
v=sharpFloat*@bendHalfMax
|
1334
|
-
v=sharpFloat*100 if @
|
1347
|
+
v=sharpFloat*@bendHalfMax/@bendrange
|
1348
|
+
v=sharpFloat*100 if @bendCentOn
|
1349
|
+
v+=bendStart
|
1335
1350
|
r<<self.bend(0,v)
|
1351
|
+
@bendNow=v
|
1336
1352
|
r<<self.notekey(n,l,accent,sharp)
|
1337
|
-
r<<self.bend(0,
|
1353
|
+
r<<self.bend(0,bendStart)
|
1354
|
+
@bendNow=bendStart
|
1338
1355
|
else
|
1339
1356
|
r<<self.notekey(n,l,accent,sharp)
|
1340
1357
|
end
|
@@ -1594,6 +1611,7 @@ module MidiHex
|
|
1594
1611
|
Event.new(:sys,len," #{ex} # GM\n")
|
1595
1612
|
end
|
1596
1613
|
def self.XGsystemOn len=0
|
1614
|
+
@bendrangemax=127
|
1597
1615
|
@nowtime+=len
|
1598
1616
|
ex=self.sysExEvent("43 10 4C 00 00 7E 00")
|
1599
1617
|
Event.new(:sys,len," #{ex} # XG\n")
|
@@ -1689,7 +1707,7 @@ module MidiHex
|
|
1689
1707
|
end
|
1690
1708
|
depth=@lastbend+depth if plus
|
1691
1709
|
@lastbend=depth
|
1692
|
-
depth=(depth*@bendCent).to_i
|
1710
|
+
depth=(depth*@bendCent).to_i if @bendCentOn
|
1693
1711
|
pos+=@waitingtime
|
1694
1712
|
@waitingtime=0
|
1695
1713
|
@nowtime+=pos
|
@@ -1896,7 +1914,7 @@ module MidiHex
|
|
1896
1914
|
ch=format("%01x",@ch)
|
1897
1915
|
vel=format("%02x",@velocity)
|
1898
1916
|
r<<Event.new(:e,0," 9#{ch} #{key} #{vel} # theremin sound on note #{@thereminNote} velocity #{@velocity}\n")
|
1899
|
-
r<<self.bendRange(
|
1917
|
+
r<<self.bendRange(@bendrangemax)
|
1900
1918
|
self.bendCent(true)
|
1901
1919
|
else
|
1902
1920
|
@thereminNote=false
|
data/lib/smml/version.rb
CHANGED
data/sample/midi-test.mml
CHANGED
@@ -10,7 +10,7 @@ t:=abcde
|
|
10
10
|
tt(x):=ee$xff
|
11
11
|
|
12
12
|
a`b'cd (stroke:86) [ef{e,f,g}g_c!:cmaj7,<(stroke:3)]4>>>> (p:flut)(g:80)[/2:aAbcCdef/(g:20)-]2
|
13
|
-
(bendCent:off)[c(bend:200.2)/cc/(bend:0)c(bendCent:on)]2
|
13
|
+
(bendCent:off)[c(bend:200.2)/cc/(bend:0)(+0.3)c(bendCent:on)]2
|
14
14
|
(mark:tes)(p:guit)/2:c2gc/[/2:~{e,g}=f/] (g:100) f*240e*120d*60 --(p:organ) $t (+3)a(+)b(0)c $tt(4:1,2,3)
|
15
15
|
|
16
16
|
|
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.1.8
|
4
|
+
version: 0.1.8.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-09-
|
11
|
+
date: 2014-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|