Skip to content

The .CR5 File Format

This is a Technical overview of the .CR5 file format used for saving registration memory setups to a file.

Note

This article is written based on my experience of reverse engineering files generated by the Casio CTK-810IN keyboard. Other models might use the same file format but a different file structure depending on the features they offer.

File Structure

The .CR5 file format consists of a 12 byte header block followed by the registration data. Each of the 32 registration setups occupies 22 bytes, bringing the total file size to 12 + (22 * 32) = 716 bytes for each file.

The 12 bytes of the header are composed as follows:

  • 43 43 52 35 30 31 30 30 : File signature for this format, "CCR50100" in ASCII
  • 00 00 00 00 : Zero bytes presumably used for padding or alignment

Registration Setup

Each registration setup occupies 22 bytes in the file and stores the following data:

Offset Size Parameter Description
0x00 2 Default Tone The tone played when Split & Layer are OFF
0x02 2 Layer Tone The additional tone played when Layer is ON
0x04 2 Split Tone The tone played on the left side when Split is ON
0x06 2 Split+Layer Tone The layered tone played on the left side when Split and Layer are ON
0x08 1 Layer? 0 if Layer is turned OFF, 1 if turned ON
0x09 1 Split? 0 if Split is turned OFF, 1 if turned ON
0x0A 1 Split Point MIDI note number of the tone split point (ranges from 36 to 96)
0x0B 1 Reverb? 0 if Reverb is turned OFF, 1 if turned ON
0x0C 1 Chorus? 0 if Chorus is turned OFF, 1 if turned ON
0x0D 1 Reverb Value Ranges from 0 to 3, maps to values 1-4 on the keyboard
0x0E 1 Chorus Value Ranges from 0 to 3, maps to values 1-4 on the keyboard
0x0F 1 Tempo Ranges from 30 to 255, same as the keyboard
0x10 1 Rhythm Ranges from 0 to 119, maps to values 1-120 on the keyboard
0x11 1 Standby State Which part of the rhythm (if any) is played when playing a note. 0 - Standby OFF; 7 - Play the normal rhythm; 8 - Play the intro sequence; 9 - Play the variation rhythm
0x12 1 Pedal Configuration Configures which foot pedal is connected to the keyboard. 0 - Sustain (holds notes while the pedal is pressed); 1 - Sostenuto (holds notes that were down when the pedal was pressed); 2 - Soften (softens the sound when pressed); 3 - Rhythm (toggles the rhythm)
0x13 2 Touch Response Configures the touch response setting. Bytes 0x13 and 0x14 are used in conjunction to represent the value. (0, 1) - Touch response OFF; (1, 1) - Touch response 1 (default); (1, 0) - Touch response 2 (more sensitive to harder presses)
0x14 1 Pitch Bend Value of the pitch bend wheel in semitones. Ranges from 0 to 24, same as the keyboard.