Scratchpad

If you are new to Scratchpad, and want full access as a Scratchpad editor, create an account!
If you already have an account, log in and have fun!!

READ MORE

Scratchpad
Advertisement

Header[]

typedef struct{
   char signature[6]; //"Org-02"
   Uint16 tempo;
   Uint8 steps;      //the number of steps per bar
   Uint8 beats;      //the number of beats per step
   Uint32 loopstart;
   Uint32 loopend;
} orgheader_t;

Instruments[]

Instruments are stored in 16 6-byte long entries at the end of the header. Each entry contains the following:

typedef struct{
   Uint16 pitch; //Pitch, default 1000
   Uint8 instrument;
   Uint8 pi;     //00=off, 01=on
   Uint16 notes; //Number of notes played. Sustained notes count as one.
} orginstrument_t;


  • The first block of values defines the actual note. 5F is the highest note possible, and 00 is the lowest. This is for each actual instance of a note, and not each step. You'll know why in a second...
  • The second block defines the length of each individual note. The values are simple - 01 for a length of 1 step, 02 for 2, etc. This is how you can get a sustained note and only have one entry in the first block.
  • The third block defines volume for each note. Volume seems to only be able to go up to F8 - values any larger show up blank in OrgMaker.
  • The fourth block is panning - a value of 06 is center, and it goes from 00 to 0C.
Advertisement