smf 0.15.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/MANUAL +172 -0
  2. data/MANUAL.en +135 -0
  3. data/MANUAL.en.html +150 -0
  4. data/MANUAL.en.rd +144 -0
  5. data/MANUAL.html +201 -0
  6. data/MANUAL.rd +179 -0
  7. data/README +33 -0
  8. data/README.en +33 -0
  9. data/lib/smf.rb +736 -0
  10. data/lib/smf/divert.rb +21 -0
  11. data/lib/smf/io.rb +1278 -0
  12. data/lib/smf/toy/beatmap.rb +73 -0
  13. data/lib/smf/toy/gm.rb +327 -0
  14. data/lib/smf/toy/groove.rb +34 -0
  15. data/lib/smf/toy/macro.rb +282 -0
  16. data/lib/smf/toy/macro/mml.rb +34 -0
  17. data/lib/smf/toy/macro/mml/parser.rb +545 -0
  18. data/lib/smf/toy/macro/mml/parser.ry +239 -0
  19. data/lib/smf/toy/macro/stt.rb +33 -0
  20. data/lib/smf/toy/morse.rb +126 -0
  21. data/lib/smf/toy/quantize.rb +32 -0
  22. data/lib/smf/toy/rmi.rb +29 -0
  23. data/lib/smf/toy/searchsegment.rb +24 -0
  24. data/lib/smf/toy/shuffle.rb +39 -0
  25. data/lib/smf/toy/tempomap.rb +75 -0
  26. data/lib/smf/toy/text.rb +369 -0
  27. data/lib/smf/toy/velcomp.rb +42 -0
  28. data/lib/smf/toy/virtual.rb +118 -0
  29. data/lib/smf/toy/xml.rb +377 -0
  30. data/sample/Makefile +58 -0
  31. data/sample/bwv772.mid +0 -0
  32. data/sample/bwv772.mml +94 -0
  33. data/sample/bwv775.mid +0 -0
  34. data/sample/bwv775.mml +157 -0
  35. data/sample/bwv787.mid +0 -0
  36. data/sample/bwv787.mml +129 -0
  37. data/sample/groove.grv +33 -0
  38. data/sample/groove.rb +45 -0
  39. data/sample/ltvddpd2.mid +0 -0
  40. data/sample/ltvddpd2.stt +60 -0
  41. data/sample/merge.rb +38 -0
  42. data/sample/mml-samp.rb +19 -0
  43. data/sample/mml.rb +36 -0
  44. data/sample/morse-samp.rb +11 -0
  45. data/sample/morse.rb +31 -0
  46. data/sample/play-oss.rb +215 -0
  47. data/sample/play-oss2.rb +253 -0
  48. data/sample/play-oss3.rb +150 -0
  49. data/sample/play-spkr.rb +97 -0
  50. data/sample/play-win.rb +195 -0
  51. data/sample/quantize.rb +41 -0
  52. data/sample/rand1.rb +21 -0
  53. data/sample/rand2.rb +24 -0
  54. data/sample/rmi2smf.rb +26 -0
  55. data/sample/shuffle.rb +43 -0
  56. data/sample/smf2rmi.rb +26 -0
  57. data/sample/smf2smf.rb +26 -0
  58. data/sample/smf2text.rb +27 -0
  59. data/sample/smf2wav.rb +123 -0
  60. data/sample/smf2xml.rb +27 -0
  61. data/sample/split.rb +40 -0
  62. data/sample/stt-samp.rb +19 -0
  63. data/sample/stt.rb +36 -0
  64. data/sample/text2smf.rb +28 -0
  65. data/sample/velcomp.rb +45 -0
  66. data/sample/virtual-samp.rb +19 -0
  67. data/sample/xml2smf.rb +28 -0
  68. metadata +128 -0
@@ -0,0 +1,58 @@
1
+ SHELL = /bin/sh
2
+
3
+ RUBY = ruby
4
+ SMFLIB = ../lib
5
+
6
+ .SUFFIXES: .mml .mid .mld .stt .txt .wav .xml .spkr
7
+
8
+ .mml.mid:
9
+ $(RUBY) -I $(SMFLIB) mml.rb $<
10
+
11
+ .mid.mld:
12
+ $(RUBY) -I $(SMFLIB) smf2mld.rb $<
13
+
14
+ .stt.mid:
15
+ $(RUBY) -I $(SMFLIB) stt.rb $<
16
+
17
+ .mid.txt:
18
+ $(RUBY) -I $(SMFLIB) smf2text.rb $<
19
+
20
+ .mid.wav:
21
+ $(RUBY) -I $(SMFLIB) smf2wav.rb $<
22
+
23
+ .mid.xml:
24
+ $(RUBY) -I $(SMFLIB) smf2xml.rb $<
25
+
26
+ .mid.spkr:
27
+ test x`uname` = xFreeBSD && $(RUBY) -I $(SMFLIB) play-spkr.rb $<
28
+
29
+ default:
30
+ if $(RUBY) -r gsl -e exit; then \
31
+ $(MAKE) w_gsl; \
32
+ else \
33
+ $(MAKE) wo_gsl; \
34
+ fi
35
+
36
+ w_gsl: mml stt text xml groove shuffle mml-samp stt-samp morse-samp
37
+ wo_gsl: mml stt text xml mml-samp stt-samp morse-samp
38
+
39
+ mml: bwv772.mid bwv775.mid bwv787.mid
40
+ stt: ltvddpd2.mid
41
+ text: bwv772.txt
42
+ xml: bwv772.xml
43
+
44
+ groove: bwv772.mid
45
+ $(RUBY) -I $(SMFLIB) groove.rb groove.grv bwv772.mid
46
+
47
+ shuffle: bwv772.mid
48
+ $(RUBY) -I $(SMFLIB) shuffle.rb bwv772.mid
49
+
50
+ mml-samp:
51
+ $(RUBY) -I $(SMFLIB) mml-samp.rb
52
+
53
+ stt-samp:
54
+ $(RUBY) -I $(SMFLIB) stt-samp.rb
55
+
56
+ morse-samp:
57
+ $(RUBY) -I $(SMFLIB) morse-samp.rb
58
+
Binary file
@@ -0,0 +1,94 @@
1
+ "sq:Inventio 1 C-Dur BWV 772"
2
+
3
+ {
4
+ ti=1,4 te=240 gm=1
5
+
6
+ q r
7
+ }
8
+
9
+ ke=0,0
10
+
11
+ {
12
+ ti=4,4 te=78 pr=0 co91=96 oc=4 ve=6/10
13
+
14
+ s r c d e f d e c i {du*=2/3 g} c' z b a s b i c'
15
+ s d' g a b c' a b g i {du*=2/3 d'} g' z f' e' s f' i g'
16
+
17
+ s e' a' g' f' e' g' f' a' g' f' e' d' c' e' d' f'
18
+ s e' d' c' b a c' b d' c' b a g f# a g b
19
+
20
+ i a d z c' b i c' s d' b a g f# e g f# a
21
+ s g b a c' b d' c' e' d' z b c' s d' g'
22
+ s/3 b c' q/3 b s a g
23
+
24
+ // 7
25
+ i g r q r s r g a b c' a b g
26
+ i f# r q r s r a b c' d' b c' a
27
+
28
+ i b r q r s r d' c' b a c' b d'
29
+ i c' r q r s r e' d' c' b d' c#' e'
30
+
31
+ i {du*=2/3 d'} c#' {du*=2/3 d'} e' {du*=2/3 f'} a {du*=2/3 b} c#'
32
+ i {du*=2/3 d'} f# {du*=2/3 g#} a {du*=2/3 b c'} q+s d'
33
+
34
+ s e f# g# a f# g# e e' d' c' e' d' c' b d'
35
+ s c' a' g#' b' a' e' f' d' g# f' e' d' s/3 c' d' q/3 c' s b a
36
+
37
+ // 15
38
+ s a a' g' f' e' g' f' a' h+s g'
39
+ s e' f' g' a' f' g' e' h+s f'
40
+
41
+ s g' f' e' d' f' e' g' h+s f'
42
+ s d' e' f' g' e' f' d' h+s e'
43
+
44
+ s c' d' e' f' d' e' c' d' e' f' g' a' f' g' e'
45
+ s f' g' a' b' c'' a' b' g' i c'' g' e' s d' c'
46
+
47
+ s c' b$ a g f a g b$ te*=15/16 a b c' e te*=14/16 d c' te*=13/16 f b
48
+ te*=17/16 w e& g& c'
49
+ }&
50
+
51
+ {
52
+ oc=3 ve=5/10
53
+
54
+ h r s r c d e f d e c
55
+ i g {du*=2/3 g,} q r s r g a b c' a b g
56
+
57
+ i {du*=2/3 c'} b {du*=2/3 c'} d' {du*=2/3 e'} g {du*=2/3 a} b
58
+ i {du*=2/3 c'} e {du*=2/3 f#} g {du*=2/3 a b} q+s c'
59
+
60
+ s d e f# g e f# d i {du*=2/3 g} b, c {du*=2/3 d}
61
+ i {du*=2/3 e} f# g {du*=2/3 e} i. b, s c i d d,
62
+
63
+ // 7
64
+ s r g, a, b, c a, b, g, i {du*=2/3 d} g {du*=2/3 f#} g
65
+ s a d e f# g e f# d i {du*=2/3 a} d' {du*=2/3 c'} d'
66
+
67
+ s g g' f' e' d' f' e' g' i {du*=2/3 f'} e' {du*=2/3 f'} d'
68
+ s e' a' g' f' e' g' f' a' i {du*=2/3 g'} f' {du*=2/3 g'} e'
69
+
70
+ s f' b$' a' g' f' a' g' b$' a' g' f' e' d' f' e' g'
71
+ s f' e' d' c' b d' c' e' d' c' b a g# b a c'
72
+
73
+ i b {du*=2/3 e} z d' c' i d' s e' c' b a g f# a g# b
74
+ s a c' b d' c' e' d' f' i {du*=2/3 e'} a {du*=2/3 e' e}
75
+
76
+ // 15
77
+ i a {du*=2/3 a,} q r s r e' d' c' b d' c#' e'
78
+ h+s d' s a b c' d' b c' a
79
+
80
+ h+s b s d' c' b a c' b d'
81
+ h+s c' s g a b$ c' a b$ g
82
+
83
+ i {du*=2/3 a} b$ a g {du*=2/3 f} d' c' b$
84
+ i {du*=2/3 a} f' e' d' s e' d e f g e f d
85
+
86
+ i {du*=2/3 e} c d e s f d e f i {du*=2/3 g} g,
87
+ w c,
88
+ }
89
+
90
+ {
91
+ ti=1,4 te=240
92
+
93
+ q r
94
+ }
Binary file
@@ -0,0 +1,157 @@
1
+ "sq:Inventio 4 d-Moll BWV 775"
2
+
3
+ {
4
+ ti=1,4 te=240 gm=1
5
+
6
+ q r
7
+ }
8
+
9
+ ke=-1,1
10
+
11
+ {
12
+ ti=3,8 te=96 pr=0 co91=96 oc=4 ve=6/10
13
+
14
+ s d e f g a b
15
+ s c# b a g f e
16
+ i {du*=2/3 f a d'}
17
+ i {du*=2/3 g c#' e'}
18
+ s d' e' f' g' a' b'
19
+
20
+ s c#' b' a' g' f' e'
21
+ s f' d' e' f' g' a'
22
+ s b a' g' f' e' d'
23
+ s e' c' d' e' f' g'
24
+ s a g' f' e' d' c'
25
+ s d' e' f' d' e' f'
26
+
27
+ i {du*=2/3 g} i*2 r
28
+ s c' d' e' c' d' e'
29
+ i {du*=2/3 f} r i+i b
30
+ s/3 b a b i-s/3*3 a i g
31
+ s c' b a g f e
32
+ s f g i/5 a g a g a s g f
33
+
34
+ // 18
35
+ i f {du*=2/3 c' c'}
36
+ z d' c' {ve*=9/10 d' c' d' c' d' c' d' c' d' c'
37
+ z d' c' d' c' d' c' d' c' d' c' {te*=14/16 d' c'}}
38
+ z d' c' {ve*=9/10 d' c' d' c' d' c' d' c' {te*=14/16 d' c'}}
39
+ s c' b a g f {du*=2/3 e}
40
+
41
+ s c' d e f# g a
42
+ s b a g f e {du*=2/3 d}
43
+ s b c d e f g
44
+ s a b% c' d' e' f'
45
+ s g# f' e' d' c' b%
46
+ s c' b% d' c' b% a
47
+
48
+ s g# a g# f# e d
49
+ s c d e f# g# {du*=2/3 te*=14/16 a}
50
+ s d c' b% a g# f#
51
+ s e f# g# a b% {du*=2/3 te*=14/16 c'}
52
+
53
+ s f# e' d' c' b% {du*=2/3 te*=14/16 a}
54
+ s g# a b% c' d' e'
55
+ s a f' e' d' c' b%
56
+ s a' g#' f#' e' i+s a'
57
+ s d' i/5 c' b% c' b% c' s b% a
58
+
59
+ // 38
60
+ i. a s a b c'
61
+ i {du*=2/3 d f# a}
62
+ s b g a b c' d'
63
+ s e d' c' b a g
64
+ i {du*=2/3 a} s f' e' i f'
65
+
66
+ i {du*=2/3 g} s/3 e' d' i-s/3*2 e' i r
67
+ s d' e' f' g' a' b'
68
+ s c#' b' a' g' f' e'
69
+ i {du*=2/3 f' d'} i+s g
70
+ s d' c#' e' a c#'
71
+
72
+ s d' b% i/5 d' c#' d' c#' d' s {te*=12/16 c#' te*=12/16 d'
73
+
74
+ // 49
75
+ te*=12/16 s d'} s te*=14/16 c' b a g {du*=2/3 f}
76
+ s b c# d e f g
77
+ te*=14/16 s a d' te*=13/16 i f te*=12/16 z/2 f e f e te*=12/16 s d
78
+
79
+ te*=12/16 s/3 d c te*=12/16 q.-s/3*2 d
80
+ }&
81
+
82
+ {
83
+ oc=3 ve=5/10
84
+
85
+ i*3 r
86
+ i*3 r
87
+ s d e f g a b
88
+ s c# b a g f e
89
+ i {du*=2/3 f a d'}
90
+
91
+ i {du*=2/3 e g c#'}
92
+ i {du*=2/3 d d' f}
93
+ i {du=1 g a b}
94
+ i {du*=2/3 c c' e}
95
+ i {du=1 f g a}
96
+ s b g a b c' d'
97
+
98
+ s e d' c' b a g
99
+ s a f g a b c'
100
+ s d c' b a g f
101
+ s e c d e f g
102
+ s a, g f e d c
103
+ s d b, i {du*=2/3 c c,}
104
+
105
+ // 18
106
+ s f, g, a, b, c {du*=2/3 d}
107
+ s e, d c b, a, g,
108
+ s a, b, c d e {du*=2/3 f}
109
+ s g, f e d c b,
110
+ s a, b, c a, b, c
111
+
112
+ i f#, i*2 r
113
+ s g, a, b, g, a, b,
114
+ i e, i*2 r
115
+ i {du*=2/3 ve*=13/10 f, f d}
116
+ i {du*=2/3 ve*=12/10 b%, g#, e,}
117
+ s {ve*=11/10 a, g#, a, b%, c d}
118
+
119
+ z f e {ve*=9/10 f e f e f e f e f e
120
+ z f e f e f e f e f e f e}
121
+ z f e {ve*=9/10 f e f e f e f e f e
122
+ z f e f e f e f e f e f e}
123
+
124
+ z f e {ve*=9/10 f e f e f e f e f e}
125
+ i {du*=2/3 ve*=13/10 e e' d'}
126
+ i {du=1 ve*=12/10 c' b% a}
127
+ i {ve*=11/10 d' e' f'}
128
+ i d' e' e
129
+
130
+ // 38
131
+ s a a, b, c d e$
132
+ s f#, e$ d c b, a,
133
+ i. g, s g, a, b,
134
+ i {du*=2/3 c, g, c}
135
+ s f g a b% c#' d'
136
+
137
+ s e d' c#' b% a g
138
+ i {du*=2/3 f a d'}
139
+ i {du*=2/3 e g c#'}
140
+ s d e f g a b
141
+ s c# b a g f e
142
+
143
+ s f g i {du*=2/3 a a,}
144
+
145
+ // 49
146
+ i. b, s c b, a,
147
+ s g, b a g f e
148
+ s f g i {du*=2/3 a a,}
149
+
150
+ q. d,
151
+ }
152
+
153
+ {
154
+ ti=1,4 te=240
155
+
156
+ q r
157
+ }
Binary file
@@ -0,0 +1,129 @@
1
+ "sq:Sinfonia 1 C-Dur BWV 787"
2
+
3
+ {
4
+ ti=1,4 te=240 gm=1
5
+
6
+ q r
7
+ }
8
+
9
+ ke=0,0
10
+
11
+ {
12
+ ti=4,4 te=76 pr=0 co91=96 oc=4 ve=6/10
13
+
14
+ s {te*=15/16 r} g a b c' d' e' f'
15
+ {g' {s/3 f' g' f'} g' a'} f' a' g' {te*=15/16 f'}
16
+ h+q e' q f#'
17
+
18
+ i g' f' q e' i d' s e' f' {s/3 e' {ve=1/100 d'} e'} q+i-s d'
19
+ s g' f' q+i e' i e' {s/3 d' c'} q+q.-s/3*2 d'
20
+
21
+ {s/3 c' b} i+i-s/3*2 c' {z/2 c' b c' b} s a b c' d' b
22
+ q+s g s c' d' e' a b a b z c' b c' b c' b a b
23
+
24
+ // 7
25
+ i {du*=2/3 c' g} {s/3 c' b} q+i-s/3*2 c'
26
+ {z/2 c' b c' {ve=1/100 b}} s a q+s d'
27
+ s b c' d' q+i e' i+i a' {s/3 g' f#'} i+i-s/3*2 g'
28
+
29
+ {z/2 g' f#' g' f#'} s e' f#' g' a' f#' q+s d' s g' a' b'
30
+ s e' f#' e' f#' z g' f#' g' f#' g' f#' e' f#'
31
+ s {du*=2/3 g'} a' g' f#' e' d' c' b
32
+
33
+ s a b {z/2 b a b a} g a f# {s/3 g f# g} a q+s b s g a b$
34
+ s {du*=2/3 a} e f g a b c#' d' e' {s/3 d' e' d'} e' f' e' b$' a' g'
35
+
36
+ // 13
37
+ s {du*=2/3 f'} g' f' e' d' c#' d' e' q f' f#'
38
+ q g' q+i f' s {s/3 e' d' e'} d' q+i e'
39
+
40
+ i+i d' c' {z/2 b c' b c'} s a i {du*=2/3 b d'}
41
+ s/3 g' f' q+s-s/3*2 g' s a' f' g' q a' b'
42
+
43
+ q c'' b$' a' s r e' d' c'
44
+ s b d' e' f' h+s g' s c' f' e'
45
+
46
+ q f' e' i d' q. r
47
+ s r f' e' d' te*=14/16 h c' te*=14/16 q b
48
+ i te*=23/16 r q b te*=5/16 h+i c'
49
+ }&
50
+
51
+ {
52
+ oc=4 ve=6/10
53
+
54
+ w r
55
+ s r {s*3 c}& r d e f g a b {c' {s/3 b c' b} c' d'} c' e' d' c'
56
+
57
+ i b i+i d' i+q c' q+q b
58
+ s r d' c' b q. a i a
59
+
60
+ i g f q e h+s d
61
+ s f e d oc-=1 c' b a g f g f e f r e f
62
+
63
+ // 7
64
+ q e oc+=1 i r e q f# s r c' b a
65
+ q+s g s g c' b q c' b
66
+
67
+ h+s a s c' b a g f# e oc-=1 d'
68
+ s c' d' c' b c' r b c' q+s b s b a g
69
+
70
+ i f# r q r oc+=1 s r d e f q+s e
71
+ s r i r q r oc-=1 i r a b c#'
72
+
73
+ // 13
74
+ oc+=1 s d d e f g a b c#' d' c#' d' e' c' e$' d' c'
75
+ s b$ a b$ c' a c' b$ a q. g i g
76
+
77
+ q f i e r h r
78
+ s r f g a b c' d' e' f' e' f' g' f' a' g' f'
79
+
80
+ i e' i+i a' i+s g' s c' d' e' q+i. f' s r
81
+ s r f' e' d' c' d' c' b$ q+i a
82
+
83
+ i+i d' c' s {z/2 c' d' c' b} a b c' {i+s d'}& r b
84
+ q g s r b$ a g f g {s/3 f r f} e f d e f
85
+ i r q f h+i e
86
+ }&
87
+
88
+ {
89
+ oc=3 ve=5/10
90
+
91
+ q c i r c' b g a {du*=2/3 b}
92
+ s c' s*3 r i r b a g a {du*=2/3 d}
93
+
94
+ s g, g a b oc+=1 c d e f g f g a f a g f
95
+ s e f e d oc-=1 c' b a g f g f e f d e f
96
+
97
+ s {du*=2/3 e} g, a, b, c d e f g f g a f a g f
98
+ h+q e s {ve*=13/10 {du*=2/3 d} i. d}
99
+
100
+ // 7
101
+ s c d c b, a, g, f#, e, {du*=2/3 d,} e d c b, a, g, f#,
102
+ s {du*=2/3 e,} f e d c b, a, g, f#, d, e, f#, g, a, b, c
103
+
104
+ s d c d e c e d c q b, q+i. b s r
105
+ s {ve*=13/10 a} i. {ve*=13/10 a} i e d q c
106
+
107
+ s d g f# e d c b, a, g, a, g, f, g, e, f, g,
108
+ i {du*=2/3 c#,} d c# b, {du*=2/3 a,} g f e
109
+
110
+ // 13
111
+ i {du*=2/3 d} r q r s r g' f' e' d' c' b$ a
112
+ s {du*=2/3 g} c d e f g a b$ c' b$ c' d' b$ d' c' b$
113
+
114
+ s {du*=2/3 a} g a b oc+=1 c d e f g f g r f a g f
115
+ q e r s r c' b a g f e d
116
+
117
+ oc-=1 s c' d' c' b$ c' a b$ c' {du*=2/3 f} g f e d c b, a,
118
+ s {du*=2/3 g,} a g f e d c b$, {du*=2/3 a,} b$ a g f e d c
119
+
120
+ s {du*=2/3 b,} g, a, b, c d e f g f g a f a g f
121
+ i e s f g i {du*=2/3 a c} d s e f i {du*=2/3 g g,}
122
+ w {ve*=4/3 c}
123
+ }
124
+
125
+ {
126
+ ti=1,4 te=240
127
+
128
+ q r
129
+ }
@@ -0,0 +1,33 @@
1
+ 0.000000
2
+ 0.072917
3
+ 0.124479
4
+ 0.194271
5
+ 0.243229
6
+ 0.319792
7
+ 0.372917
8
+ 0.450000
9
+ 0.502083
10
+ 0.575000
11
+ 0.622396
12
+ 0.695312
13
+ 0.745313
14
+ 0.819271
15
+ 0.866667
16
+ 0.940625
17
+ 0.991146
18
+ 1.065104
19
+ 1.115625
20
+ 1.195833
21
+ 1.246354
22
+ 1.314062
23
+ 1.365625
24
+ 1.442187
25
+ 1.491667
26
+ 1.565104
27
+ 1.615625
28
+ 1.684375
29
+ 1.739062
30
+ 1.807813
31
+ 1.858333
32
+ 1.940104
33
+ 2.000000