smml 0.1.8 → 0.1.8.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.
- 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
|