home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Audio 4.94 - Over 11,000 Files
/
audio-11000.iso
/
amiga
/
midi
/
obrst103.lha
/
OberSuite-1.03
/
SourceCode
/
oberheim.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-23
|
4KB
|
100 lines
#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 */