home *** CD-ROM | disk | FTP | other *** search
- #ifndef _OBERHEIM_H
- #define _OBERHEIM_H 1
-
- /**************************************************************************
- * oberheim.h: Facts about Oberheim patches and patch dumps.
- * A part of OberSuite for the Commodore Amiga.
- *
- * Author: Daniel Barrett, barrett@cs.umass.edu.
- * Version: 1.0.
- * Copyright: None! This program is in the Public Domain.
- * Please share it with others.
- ***************************************************************************/
-
- #include "midi.h"
-
- /***************************************************************************
- * Oberheim system-exclusive byte values.
- ***************************************************************************/
-
- #define OBERHEIM_SYSEX_ID (UBYTE)0x10
- #define OBERHEIM_DEVICE_NUMBER (UBYTE)0x02
- #define DUMP_REQUEST (UBYTE)0x00
- #define DUMP_FOLLOWS (UBYTE)0x01
- #define SINGLE_DATA (UBYTE)0x00
- #define MULTI_DATA (UBYTE)0x01
-
- /***************************************************************************
- * Header bytes and their offsets from the beginning of the file.
- ***************************************************************************/
-
- #define OBERHEIM_HEADER_LENGTH 6 /* The length of the header. */
-
- #define BYTE_SYSEX 0
- #define BYTE_ID 1
- #define BYTE_DEVICE 2
- #define BYTE_DATADUMP 3
- #define BYTE_PATCHTYPE 4
- #define BYTE_PATCHNUMBER 5
-
- /***************************************************************************
- * Specifics about the Xpander.
- ***************************************************************************/
-
- #define XPANDER_MULTI_SIZE 123 /* # of bytes in a multi patch. */
- #define XPANDER_MULTI_NAMELOC 106 /* Offset, in the multi patch dump,
- * of the first byte of the patch
- * name. */
- #define XPANDER_SINGLE_OFFSET 94 /* Offset, 1st singlepatch # (guess) */
- #define XPANDER_MULTI_SINGLES 6 /* # singles in multi patch. */
- #define XPANDER_MULTI_ID OBERHEIM_DEVICE_NUMBER
-
- /***************************************************************************
- * Specifics about the Matrix-12.
- ***************************************************************************/
-
- #define MATRIX12_MULTI_SIZE 243 /* # of bytes in a multi patch. */
- #define MATRIX12_MULTI_NAMELOC 226 /* Offset, in the multi patch dump,
- * of the first byte of the patch
- * name. */
- #define MATRIX12_SINGLE_OFFSET 202 /* Offset of 1st singlepatch #. */
- #define MATRIX12_MULTI_SINGLES 12 /* # singles in multi patch. */
- #define MATRIX12_MULTI_ID (UBYTE)0x04
-
- /***************************************************************************
- * Numbers that are true for both Matrix-12 and Xpander.
- ***************************************************************************/
-
- #define NUM_PATCHES 100 /* # of patches in the synth memory. */
- #define FIRST_PATCH 0 /* Number of the first synth patch. */
- #define LAST_PATCH 99 /* Number of the last synth patch. */
-
- #define NAME_LENGTH 8 /* # of characters in a patch name. */
- #define SINGLE_SIZE 399 /* # of bytes in a single patch. */
- #define SINGLE_NAMELOC 382 /* Offset, in the single patch dump, of the
- * first byte of the patch name. */
-
- #define LARGEST_OBERHEIM_PATCHSIZE SINGLE_SIZE
-
- /***************************************************************************
- * We will sometimes store NUM_PATCHES patches in a single file.
- * Here is the size of such a file, in bytes.
- ***************************************************************************/
-
- #define ALL_SINGLE_SIZE ((SINGLE_SIZE) * (NUM_PATCHES))
- #define ALL_XPANDER_MULTI_SIZE ((XPANDER_MULTI_SIZE) * (NUM_PATCHES))
- #define ALL_MATRIX12_MULTI_SIZE ((MATRIX12_MULTI_SIZE) * (NUM_PATCHES))
-
- /***************************************************************************
- * Some string constants -- for consistency throughout the program.
- ***************************************************************************/
-
- #define NAME_SINGLE "single"
- #define NAME_MULTI "multi"
- #define NAME_XPANDER "Xpander"
- #define NAME_MATRIX12 "Matrix-12"
- #define NAME_BOTH "Xpander/Matrix-12"
-
-
- #endif /* _OBERHEIM_H */
-