Skip to content

Commit 827a756

Browse files
committed
nullsound: reworked slide FX semantics
Refactored the three slide FX (note slide, pitch slide, portamento) and the transition between slides and notes, to better match the semantics from Furnace. Captured various examples in a doc to detail the expected behaviour of each slide FX.
1 parent 78bb495 commit 827a756

File tree

7 files changed

+422
-487
lines changed

7 files changed

+422
-487
lines changed

nullsound/doc/slide.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Slide FX semantics
2+
3+
## pitch slide (01xx / 02xx)
4+
5+
Move current note up or down
6+
7+
- FX specifies a direction (up / down), and a decimal increment
8+
- slide stops when explicitely disabled (01.. / 02..) or when another slide FX is configured
9+
- slide is relative to the note currently in use
10+
- As soon as the FX is applied, it adds to the current note's decimal position
11+
- When changing current note when slide is in progress, the FX continues from this new current note's decimal position
12+
13+
```
14+
E-40A..0101
15+
...........
16+
...........
17+
...........
18+
...........
19+
D-40A......
20+
```
21+
22+
## portamento (03xx)
23+
24+
Move current note up or down towards a target note
25+
26+
- FX specifies a speed only, and assumes the target note is the note specified in the score's current line
27+
- portamento continues until the target note is reached, or when another slide FX is configured
28+
- portamento direction (up/down) is determined based on the current note
29+
- When changing current note while portamento is in progress, this only changes the portamento target (and thus the portamento direction)
30+
31+
ex: portamento from C5 to G-5
32+
33+
```
34+
C-50A......
35+
G-50A..0301
36+
...........
37+
...........
38+
...........
39+
...........
40+
```
41+
42+
ex: portamento from C5 to G5, increase speed to target after started
43+
44+
```
45+
C-50A......
46+
G-50A..0301
47+
...........
48+
...........
49+
G-50A..0308
50+
...........
51+
```
52+
53+
## note slide (E1xx / E2xx)
54+
55+
Move current note up or down by a number of semitones
56+
57+
- FX is effectively a portamento FX whose target is relative to the note currently in use
58+
- The remaining semantics is the same as a portamento effect
59+
60+
ex: slide from A-5 to B-5, and set next note to B-5 (end will be B-5 after portamento finishes)
61+
62+
```
63+
A-50A......
64+
...........
65+
...........
66+
.......E122
67+
B-50A......
68+
...........
69+
```

0 commit comments

Comments
 (0)