The CASM section holds the Ctab settings and some other settings of the style. Only some of these settings can be done at the keyboard.
In December 1999 I reverse-engineered the original CASM. This was published March 2000.
By the arrival of the first Tyros keyboard the original CASM section format was altered slightly.
These changes were reverse engineered in February 2003. The revised format was published October 25th 2004.
The CASM format was changed radically with the release of Tyros 3 in November 2008. The new format has been applied to later keyboards.
No. | CASM data | Function | Hex value | Comment |
00 | CASM | CASM Marker | 43 41 53 4d | Beginning of CASM Section |
01 | xxxx | CASM Length | Length of the entire CASM section | |
02 | CSEG | Section Marker | 43 53 45 47 | Beginning of CSEG Section within CASM. A CSEG Section holds information about style parts using equal settings. |
03 | xxxx | Section Length | Length of the CSEG section | |
04 | Sdec | Parts Marker | 53 64 65 63 | Beginning of Sdec part within CSEG Section |
05 | xxxx | Parts Length | Length of the Sdec part | |
06 | Main A,Main B etc. | Style parts | Style part names of the styles with this setting. Names are separated with commas, but no comma at the end of the part name string. | |
07 | Ctab | Channel Marker | 43 74 61 62 | Beginning of Ctab string |
08 | xxxx | Channel Length | Length of the Ctab string | |
09 | x | Source Channel | 00 - 0F | The source channel in the MIDI part of the style file which holds note information. Valid values are 00 - 0F (= channel 1 - 16). |
10 | xxxxxxxx | Voice Name | Voice name. Always 8 bytes. The voice can be called any name. | |
11 | x | Destination Channel | 08 - 0F | Source channel data must be remapped to a valid destination channel. Valid values are 08 - 0F (= channel 9 - 16). |
12 | x | Editable | 00 - 01 | 01 Channel Read Only - 00 Channel Editable |
13 | x | Note Mute | 00 - 0F
1. digit 2. digit |
Notes to play (0 = not play)
1.digit = 0 (always) 2.digit = F E D C B A 9 8 7 6 5 4 3 2 1 0 B 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 Bb 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 A 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 G# 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 3.digit = F E D C B A 9 8 7 6 5 4 3 2 1 0 G 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 F# 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 F 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 E 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 4.digit = F E D C B A 9 8 7 6 5 4 3 2 1 0 Eb 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 D 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 C# 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 C 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Example: 0E A3 means that C C# F G A Bb and B plays. When other notes are pressed the accompaniment is muted. |
14 | x | Note Mute | 00 - FF
3. digit 4. digit |
|
15 | x | Chord Mute | 00 - 07
1. digit 2. digit |
Chords to play (0 = not play)
1.digit = 0 (always) 2.digit = 3 2 1 0 add 4 if auto start 1+2+5 1 1 0 0 sus4 1 0 1 0 3.digit = F E D C B A 9 8 7 6 5 4 3 2 1 0 1+5 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1+8 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 7aug 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 M7aug 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 4.digit = F E D C B A 9 8 7 6 5 4 3 2 1 0 7(#9) 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 7(b13) 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 7(b9) 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 7(13) 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 5.digit = F E D C B A 9 8 7 6 5 4 3 2 1 0 7#11 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 7(9) 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 7b5 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 7sus4 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 6.digit = F E D C B A 9 8 7 6 5 4 3 2 1 0 7 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 dim7 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 dim 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 m7M(9) 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 7.digit = F E D C B A 9 8 7 6 5 4 3 2 1 0 mM7 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 m7(11) 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 m7(9) 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 m(9) 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 8.digit = F E D C B A 9 8 7 6 5 4 3 2 1 0 m7b5 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 min7 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 min6 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 min 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 9.digit = F E D C B A 9 8 7 6 5 4 3 2 1 0 aug 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 6(9) 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 M7(9) 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 (9) 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 10.digit= F E D C B A 9 8 7 6 5 4 3 2 1 0 M7#11 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 Maj7 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 Maj6 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 Maj 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Example: 03 FF EF FF F8 means that when playing a Maj chord or a 7sus4 chord the accompaniment is muted. |
16 | x | Chord Mute | 00 - FF
3. digit 4. digit |
|
17 | x | Chord Mute | 00 - FF
5. digit 6. digit |
|
18 | x | Chord Mute | 00 - FF
7. digit 8. digit |
|
19 | x | Chord Mute | 00 - FF
9. digit 10. digit |
|
20 | x | Source Chord | 00 - 0B | These settings determine the original key of the source pattern (i.e. the key used when recording the pattern). The default, CM7 (the source root is "C" and the source chord type is "M7"), is automatically selected whenever the preset data is deleted prior to recording a new style, regardless of the source root and chord included in the preset data.
Valid Chord Types are: Maj, Maj6, Maj7, M7#11, Madd9, M7(9), M6(9), aug, m, m6, m7, m7b5, m(9), m7(9), m7(11), mM7, mM7(9), dim, dim7, 7, 7sus, 7b5, 7(9), 7(#11), 7(13), 7(b9), 7(b13), 7(#9), M7aug, 7aug, 1+8, 1+5, sus4, 1+2+5 |
21 | x | Chord Type | 00 - 21 | |
22 | x | Low / middle limit | 00 - 7F | Specifies the lowest MIDI note value which is part of the "middle note section". All notes below this note belong to the "low notes section".
If the value of this byte is 0, then the data in the "low notes section" is not used. |
23 | x | Middle / high limit | 00 - 7F | Specifies the highest MIDI note value which is part of the "middle note section". All notes above this note belong to the "high notes section".
If the value of this byte is 7F, then the data in the "high notes section" is not used. |
The following 6 lines are repeated for low, middle and high notes sections. | ||||
24 | x | Note Transposition Rule | 00 - 02 | NTR specify the transposition rule to be used by the transposition table. Three settings are available:
ROOT TRANS (00): When transposed the pitch relationship between notes is maintained. For example, the notes C3, E3, and G3 in the key of C will become F3, A3, and C4 when transposed to F. Use this setting for parts that contain melodic lines.
|
25 | x | Note Transposition Table | Bass "off": 00 - 0A Bass "on": |
NTT specify the note transposition table to be used for source pattern transposition. The following table types are available.
BYPASS (00 - 80): No transposition. NOTES ALL-PURPOSE; STROKE and ARPEGGIO is only available when NTR (above) is set to GUITAR. |
26 | x | High key | 00 - 0B | HIGH KEY specify the upper root limit. Chords with a root higher than the specified limit will be played in the octave immediately below the high-key limit. This setting is effective only when the NTR parameter (above) is set to ROOT TRANS.
Example: When HIGH KEY = F. |
27 | x | Note Low Limit | 00 - 7F | NOTE LIMIT LOW and HIGH specify the low and high note limits for all notes in the specified part. Notes outside this range are transposed to the nearest octave within the range.
Example: When LOW = C3 and HIGH = D4 |
28 | x | Note High Limit | 00 - 7F | |
29 | x | Retrigger Rule | 00 - 05 | RTR (Retrigger Rule) specify how notes held through chord changes will be handled. 6 settings are available:
STOP (00): The note is stopped, and resumes sounding from the next note data. |
... and over from line 24 - 29 for middle notes section; and once more for high notes section. | ||||
30*) | x | 00 or 80 | Default value is 00.
If value is 80 there is an extra break voice (like a Crash Cymbal in drum channels) for non-drum channels, when playing the 3- or 4-finger break. The extra break drum voice will sound at time 0 within the break measure. |
|
31*) | x | 00 or 01 | Default value is 00.
If value is 01, then the channel is always a drum channel. In this case lines 33, 34 and 35 have non-00 values and line 30 is always 00. |
|
32*) | x | 00 | Always 00. | |
33*) | x | 00 or 18 | Default value is 00.
If value is 18, then the channel is always a drum channel. In this case line 31 is 01 and line 34 and 35 has non-00 values. |
|
34*) | x | Instrument | 23 - 50 or 80 | Default value is 80.
If line 33 is 18 (= drum channel), then value is in interval 23 - 50. The actual value is the General MIDI Percussion Key Number. |
35*) | x | Volume | 00 - 7F | Default value is 00.
If line 33 is 18 (= drum channel), then actual value is the volume of the Percussion Instrument, defined in the line above. |
36 | x | End Marker | 00 | End Marker for this channel |
... and over from line 07 for each channel in the CSEG section. | ||||
... and now over from line 02 for each CSEG section in CASM |
If NTR is "Guitar" the following apply
In contrast to other NTRs there is no harmonic relation between source and target notes.
Each source note is mapped to one of the guitar strings. The pitch or harmonic function will be irrelevant.
The mapping of source notes to guitar strings is as follows:
B -> 1st string (high E)
A -> 2nd string (B)
G -> 3rd string (G)
F -> 4th string (D)
E -> 5th string (A)
D -> 6th string (low E)
C# -> a quint above/below
C -> root note
That means you can control exactly which of the six strings should sound at what time.
C and C# will be mapped to the root of an on-bass chord, if parameter BASS is set to on.
It is recommended not to use C, C#, D and E at the same time.
If source notes will be moved by an octave this does not mean that the chord will sound an octave lower/higher.
Rather you can control which chord position on the fretboard will be used:
C2 - B2 -> 1st position
C3 - B3 -> 2nd position
C4 - B4 -> 3rd position
C5 - B5 -> 4th position