@@ -1 +1,50 @@ |
| 1 |
# Subpatterns |
1 |
# Subpatterns |
|
|
2 |
|
|
|
3 |
**TODO: insert screenshot** |
|
|
4 |
|
|
|
5 |
Subpatterns are one of hUGETracker's most powerful features. |
|
|
6 |
They are like mini-tracker grids attached to instruments, which allow you to modulate them quite precisely. |
|
|
7 |
They fulfill the same role as instrument macros in FamiTracker. |
|
|
8 |
|
|
|
9 |
Rows are composed of three columns, similiar *but not identical* to the tracker grid's: |
|
|
10 |
- an offset, |
|
|
11 |
- an optional jump to a specific row, |
|
|
12 |
- and an effect. |
|
|
13 |
|
|
|
14 |
The offset is a positive number of semitones that is applied to the base note (though only for this row). |
|
|
15 |
|
|
|
16 |
Subpatterns automatically loop back to the beginning, or can be made to jump backwards earlier via the jump column. |
|
|
17 |
If you do not want this, you can make a row that jumps to itself. |
|
|
18 |
|
|
|
19 |
## Interaction with the "regular" tracker grid |
|
|
20 |
|
|
|
21 |
Subpatterns override effects `0`, `1`, `2`, `3` (which will instead jump directly to the target note), and `4`. |
|
|
22 |
|
|
|
23 |
## Effects |
|
|
24 |
|
|
|
25 |
Effects in subpatterns work just like in the regular tracker grid ([reference](./effect-reference.md)), except for two things: |
|
|
26 |
- each effect only lasts for a single tick (just like the rows); |
|
|
27 |
- not all effects can be used in subpatterns: |
|
|
28 |
|
|
|
29 |
<style> |
|
|
30 |
.y { color: green; } .n { color: red; } |
|
|
31 |
</style> |
|
|
32 |
|
|
|
33 |
Effect | Name | Usable? | Notes |
|
|
34 |
-------|-------------------|----------------------|------- |
|
|
35 |
`0xy` | Arpeggio | <b class="y">Yes</b> | Technically you can use this, but 1) you would have to use it on many rows consecutively, and 2) you can just use the offset column instead. |
|
|
36 |
`1xx` | Portamento up | <b class="y">Yes</b> | The "units" are finer than semitones, so this can be used to increase granularity; it is reset on the following row, however. |
|
|
37 |
`2xx` | Portamento down | <b class="y">Yes</b> | Same as above. |
|
|
38 |
`3xx` | Tone portamento | <b class="n">No</b> | There is no "target note" in the first place. |
|
|
39 |
`4xy` | Vibrato | <b class="y">Yes</b> | This can give finer control than the offset column, but you will have to use this effect on many consecutive rows, and the portamento effects may work better in the first place. |
|
|
40 |
`5xx` | Set master volume | <b class="y">Yes</b> | |
|
|
41 |
`6xy` | Call routine | <b class="y">Yes</b> | |
|
|
42 |
`7xx` | Note delay | <b class="n">No</b> | There is no note in the first place. |
|
|
43 |
`8xx` | Set panning | <b class="y">Yes</b> | |
|
|
44 |
`9xx` | Change timbre | <b class="y">Yes</b> | |
|
|
45 |
`Axy` | Volume slide | <b class="y">Yes</b> | `C` may be more appropriate, since this will only be active for a single tick. |
|
|
46 |
`Bxx` | Position jump | <b class="n">No</b> | Use the jump column instead. |
|
|
47 |
`Cxy` | Set volume | <b class="y">Yes</b> | |
|
|
48 |
`Dxx` | Pattern break | <b class="n">No</b> | Use the jump column instead. |
|
|
49 |
`Exx` | Note cut | <b class="n">No</b> | Use `C00` instead. |
|
|
50 |
`Fxx` | Set tempo | <b class="y">Yes</b> | ...but why would you do this? |