This page describes the Akai ChopShop wave file format which can be read on the MPC500, and created on the MPC1000/2500/4000. A ChopShop wave contains slice points which are played after an amount of MIDI ticks. This means that a sufficiently sliced sample will follow a sequence tempo. The following is the hex format which will allow you to read or write ChopShop format files. The format is playable as a normal Wave file, it just contains an additional RIFF header. For more information about RIFF waves, check out this page: http://www.sonicspot.com/guide/wavefiles.html

The following was worked out by Adam Odlund (AskR on MPC-Forums) and myself, more or less independently. I must thank Adam for bringing the file format to my attention! If you have any questions about the format, you can email either Adam.Odlund AT gmail.com or myself at Guy AT BeatButcherMPC. I have a java class to read and write these files. If that would be of interest, get in touch with me.

A ChopShop wave file contains two additional headers to a normal RIFF wave: “smpl”, and “chsh”. All Akai saved waves contain the “smpl” header, and “chsh” obviously is an abbreviation for ChopShop(though it took us a while to realise!). All integer values are written in little endian format (smallest byte first)

Offset Value Description Size
0×00 smpl RIFF Header 0×04
0×04 0×0050 The size of the smpl chunk 0×04
0×08 0×0047 MIDI Manafacturer ID (Akai) 0×02
0x0A 0×10 Model number (in theory) 0×02
0x0C 0x005E Unknown 0×04
0×10 1000000000 / Sample Rate Average Nanoseconds Per Byte 0×04
0×14 60 Base MIDI note 0×04
0×18 0×0000 Padding 0×04
0x1C 0×0000 Padding 0×04
0×20 0×0000 Padding 0×04
0×24 0×0001 Unknown 0×04
0×28 20 Number of extra chunk bytes 0×04
0x2C 0×0000 Padding 0×04
0×30 0×0000 Padding 0×04
0×34 0×0000 Padding 0×04
0×38 0×0000 Total Number of Samples 0×04
0x3C 0×0000 Padding 0×04
0×40 0×0000 Padding 0×04
0×44 0×01 Unknown 0×02
0×46 60 Base Note 0×02
0×48 0 Padding 0×04
0x4C 0 Padding 0×04
0×50 0 Padding 0×02
0×52 0 Total Number of Samples 0×04
0×56 0 Padding 0×02
0×00 chsh RIFF header 0×04
0×04 The size of the chsh chunk 0×04
0×08 0×0001 Unknown 0×04
0x0C Number of markers including end, but not 0 0×04
0×20 1351 Unknown, doesnt seem to matter 0×04

From here the MIDI markers in ticks (at 96 PPQ) are stored consecutively, interlaced with the slice point of the sample in samples. i.e 0×00000000 0×00000000, 0x0000005F 0×00007515, etc. This is followed by the normal wave “data” RIFF chunk. If you find any errors, think this could be better explained, or if you would like a sample ChopShop file to play with, please get in touch!