-
Notifications
You must be signed in to change notification settings - Fork 9
/
M300.1_music.cfg
85 lines (76 loc) · 2.7 KB
/
M300.1_music.cfg
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
73
74
75
76
77
78
79
80
81
82
83
84
[gcode_macro M300.1]
variable_tempo: 120
#variable_octave: 3
variable_legato: 0.9
gcode:
{% set c_freq = 261.63 %}
{% set db_freq = 277.18 %}
{% set d_freq = 293.66 %}
{% set eb_freq = 311.13 %}
{% set e_freq = 329.63 %}
{% set f_freq = 349.23 %}
{% set gb_freq = 369.99 %}
{% set g_freq = 392 %}
{% set ab_freq = 415.30 %}
{% set a_freq = 440 %}
{% set bb_freq = 466.16 %}
{% set b_freq = 493.88 %}
{% set C = params.C|default(0)|int %}
{% set DB = params.DB|default(0)|int %}
{% set D = params.D|default(0)|int %}
{% set EB = params.EB|default(0)|int %}
{% set E = params.E|default(0)|int %}
{% set F = params.F|default(0)|int %}
{% set GB = params.GB|default(0)|int %}
{% set G = params.G|default(0)|int %}
{% set AB = params.AB|default(0)|int %}
{% set A = params.A|default(0)|int %}
{% set BB = params.BB|default(0)|int %}
{% set B = params.B|default(0)|int %}
# L4 is a quarter/quaver L1 is a semibreve
# L6 is a dotted quaver
# L12 is a dotted semiquver
{% set note_len = params.L|default(4.0)|float %}
{% set P = params.P|default(-1)|int %}
{% set len = (60000.0/printer["gcode_macro M300.1"].tempo) * (1.0/note_len) %}
{% set legato = printer["gcode_macro M300.1"].legato|float %}
{% if (C > 0) %}
M300 S{c_freq * (2 ** (C-3))} P{len * legato}
G4 P{len * (1-legato)}
{% elif (DB > 0) %}
M300 S{db_freq * (2 ** (DB-3))} P{len * legato}
G4 P{len * (1-legato)}
{% elif (D > 0) %}
M300 S{d_freq * (2 ** (D-3))} P{len * legato}
G4 P{len * (1-legato)}
{% elif (EB > 0) %}
M300 S{eb_freq * (2 ** (EB-3))} P{len * legato}
G4 P{len * (1-legato)}
{% elif (E > 0) %}
M300 S{e_freq * (2 ** (E-3))} P{len * legato}
G4 P{len * (1-legato)}
{% elif (F > 0) %}
M300 S{f_freq * (2 ** (F-3))} P{len * legato}
G4 P{len * (1-legato)}
{% elif (GB > 0) %}
M300 S{gb_freq * (2 ** (GB-3))} P{len * legato}
G4 P{len * (1-legato)}
{% elif (G > 0) %}
M300 S{g_freq * (2 ** (G-3))} P{len * legato}
G4 P{len * (1-legato)}
{% elif (AB > 0) %}
M300 S{ab_freq * (2 ** (AB-3))} P{len * legato}
G4 P{len * (1-legato)}
{% elif (A > 0) %}
M300 S{a_freq * (2 ** (A-3))} P{len * legato}
G4 P{len * (1-legato)}
{% elif (BB > 0) %}
M300 S{bb_freq * (2 ** (BB-3))} P{len * legato}
G4 P{len * (1-legato)}
{% elif (B > 0) %}
M300 S{b_freq * (2 ** (B-3))} P{len * legato}
G4 P{len * (1-legato)}
{% endif %}
{% if (P > 0) %}
G4 P{(60000.0/printer["gcode_macro M300.1"].tempo) * (1.0/P)}
{% endif %}