File: chain_scale.mg

package info (click to toggle)
midge 0.2.41%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 556 kB
  • sloc: perl: 5,508; modula3: 1,204; lisp: 869; makefile: 36; sh: 20
file content (72 lines) | stat: -rw-r--r-- 1,644 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# This files shows how to use a scale to specify the notes
# in a chain block, and how to add additional notes.

@head {
	$time_sig 4/4
	$tempo 120
}

@body {

	@channel 1 "piano" {
		$patch piano_grand_ac
		$volume 96

		%chain 16:1 { # improvise for 16 bars

			scale major c5 # use notes from c major scale, octave 5
                           # scale can only be used once, and must
                           # come first.

			[ # begin weighting matrix

			# to
			# c4 d4 e4 f4 g4 a4 b4 c5
			                           # from
			  0  0  1  0  4  0  2  1   # c4
			  3  0  2  0  1  0  0  0   # d4
			  2  1  0  1  0  4  0  0   # e4
			  0  0  2  0  4  0  3  0   # f4
			  4  0  0  2  1  0  0  2   # g4
			  0  0  1  0  2  0  2  1   # a4
			  0  0  0  1  2  2  0  4   # b4
			  2  0  0  0  3  0  2  0   # c5
			]

			r # add a rest to the chain

			[ 4  0  2  0  3  0  1  1  0 ] # weightings for rest->scale notes
                                          # last value is for rest->rest
                                          # each additional note will need
                                          # one extra value

			[ 2  0  3  0  2  1  0  3 ]    # weightings for scale notes->rest

			# rhythm block
			rhythm [
			         # mostly eigth notes, some quarters

                     # weighting   # value

			               4           8
			               1           4
			]
		}
	}

	@channel 2 "synth" {
		$patch organ_rock
		$volume 80
		$length 1

		%repeat 2 {

			# chord sequence | F | C | F | C | F | C | G | C |

			%repeat 3 { ( f3 a c4 f a c5 ) ( c3 e g c4 e g c5 ) }
			( g3 b d4 g b ) ( c3 e g c4 e g c5 )
		}
	}

}