acmidiprotocol
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | acmidiprotocol [2008/07/29 01:37] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | [[audiocommander|audiocommander' | ||
+ | If, for example, two devices have implemented this protocol, one can change the harmony or bpm at one device and the other device automatically changes its harmony/bpm to the new values. | ||
+ | |||
+ | This version can be used for plain C as well as Objective-C: | ||
+ | |||
+ | < | ||
+ | /* | ||
+ | | ||
+ | | ||
+ | * | ||
+ | | ||
+ | | ||
+ | * | ||
+ | | ||
+ | | ||
+ | | ||
+ | * | ||
+ | * | ||
+ | | ||
+ | | ||
+ | | ||
+ | * | ||
+ | */ | ||
+ | |||
+ | / | ||
+ | * Released under GNU General Public License | ||
+ | * http:// | ||
+ | | ||
+ | * This program is free software; you can redistribute it and/or modify it under the terms | ||
+ | * of the GNU General Public License as published by the Free Software Foundation | ||
+ | * | ||
+ | * YOU ARE ALLOWED TO COPY AND CHANGE | ||
+ | * BUT YOU MUST RELEASE THE SOURCE TOO (UNDER GNU GPL) IF YOU RELEASE YOUR PRODUCT | ||
+ | * YOU ARE NOT ALLOWED TO USE IT WITHIN PROPRIETARY CLOSED-SOURCE PROJECTS | ||
+ | */ | ||
+ | |||
+ | |||
+ | #ifdef __OBJC__ | ||
+ | #pragma mark Cocoa ACMidiProtocol | ||
+ | | ||
+ | #import < | ||
+ | |||
+ | @protocol ACMidiProcessing < | ||
+ | |||
+ | -(unsigned int)processMIDIMessage: | ||
+ | | ||
+ | | ||
+ | |||
+ | @end | ||
+ | |||
+ | #endif /* __OBJC__ */ | ||
+ | |||
+ | |||
+ | |||
+ | #ifndef _ACMIDIPROTOCOL_H | ||
+ | #define _ACMIDIPROTOCOL_H | ||
+ | |||
+ | |||
+ | |||
+ | // Protocol Version Number for future compatibily | ||
+ | #define ACMIDICTRLPROTOCOL_VERSION | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | // ***** CONTROLLER CHANGES ***** | ||
+ | // The CC's use unused entries from the official Midi Tables (ACMidiDefines.h) | ||
+ | // Controllers 14..31 undefined & general purpose | ||
+ | // Controllers 80..90 general purpose & undefined | ||
+ | // Controllers 102..119 undefined | ||
+ | #ifdef _DEBUG_C | ||
+ | #pragma mark - | ||
+ | #pragma mark ++ CONTROLLER ++ | ||
+ | #endif | ||
+ | |||
+ | // ** SENSORS / AIN ** | ||
+ | // These are the default CC numbers for sensory measures | ||
+ | // send: YES | ||
+ | // receive: NO | ||
+ | // forward: NO | ||
+ | #ifdef _DEBUG_C | ||
+ | #pragma mark Sensors / AIN | ||
+ | #endif | ||
+ | |||
+ | #define MIDI_CC_SENSOR_A | ||
+ | #define MIDI_CC_SENSOR_B | ||
+ | #define MIDI_CC_SENSOR_C | ||
+ | #define MIDI_CC_SENSOR_D | ||
+ | #define MIDI_CC_SENSOR_E | ||
+ | #define MIDI_CC_SENSOR_F | ||
+ | #define MIDI_CC_SENSOR_G | ||
+ | #define MIDI_CC_SENSOR_H | ||
+ | |||
+ | // ** HARMONY ** | ||
+ | // harmony & scale setting methods | ||
+ | // send: YES if input by HUI | ||
+ | // receive: YES | ||
+ | // forward: NO | ||
+ | #ifdef _DEBUG_C | ||
+ | #pragma mark Harmony | ||
+ | #endif | ||
+ | |||
+ | #define MIDI_CC_HARMONY_BASE | ||
+ | #define MIDI_CC_HARMONY_SCALE | ||
+ | #define MIDI_CC_HARMONY_BASE_LISTEN | ||
+ | #define MIDI_CC_HARMONY_SCALE_RELATIVE_PREV | ||
+ | #define MIDI_CC_HARMONY_SCALE_RELATIVE_NEXT | ||
+ | #define MIDI_CC_HARMONY_RANDOM | ||
+ | #define MIDI_CC_HARMONY_RANDOM_RELATIVE | ||
+ | |||
+ | #define MIDI_CC_HARMONY_DETECTION | ||
+ | |||
+ | // ** SCALES ** | ||
+ | // scale names | ||
+ | #ifdef _DEBUG_C | ||
+ | #pragma mark Scales | ||
+ | #endif | ||
+ | |||
+ | #define SCALE_NONE | ||
+ | #define SCALE_AEOLIAN | ||
+ | #define SCALE_AHABA_RABBA | ||
+ | #define SCALE_ALGERIAN | ||
+ | #define SCALE_ARABIAN | ||
+ | #define SCALE_AUGMENTED | ||
+ | #define SCALE_BLUES | ||
+ | #define SCALE_BLUES_MAJOR | ||
+ | #define SCALE_BLUES_MINOR | ||
+ | #define SCALE_BYZANTINE | ||
+ | #define SCALE_CHROMATIC | ||
+ | #define SCALE_DIATONIC | ||
+ | #define SCALE_DORIAN | ||
+ | #define SCALE_FULLTONE | ||
+ | #define SCALE_GIPSY_MINOR | ||
+ | #define SCALE_HARMONIC_DOUBLE | ||
+ | #define SCALE_HARMONIC_MINOR | ||
+ | #define SCALE_HUNGARIAN_MAJOR | ||
+ | #define SCALE_HUNGARIAN_MINOR | ||
+ | #define SCALE_HUNGARIAN_PERSIAN | ||
+ | #define SCALE_JAPANESE | ||
+ | #define SCALE_JAPANESE_DIMINISHED | ||
+ | #define SCALE_KUMOI | ||
+ | #define SCALE_LOCRIAN | ||
+ | #define SCALE_LYDIAN | ||
+ | #define SCALE_MAJOR | ||
+ | #define SCALE_MELODIC_MAJOR | ||
+ | #define SCALE_MELODIC_MINOR | ||
+ | #define SCALE_MINOR | ||
+ | #define SCALE_MI_SHEBERACH | ||
+ | #define SCALE_MIXOLYDIAN | ||
+ | #define SCALE_MOHAMMEDAN | ||
+ | #define SCALE_NEOPOLITAN_MAJOR | ||
+ | #define SCALE_NEOPOLITAN_MINOR | ||
+ | #define SCALE_ORIENTAL | ||
+ | #define SCALE_OVERTONE | ||
+ | #define SCALE_PELOG | ||
+ | #define SCALE_PENTATONIC | ||
+ | #define SCALE_PENTATONIC_BLUES | ||
+ | #define SCALE_PENTATONIC_MAJOR | ||
+ | #define SCALE_PENTATONIC_MINOR | ||
+ | #define SCALE_PERSIAN | ||
+ | #define SCALE_PHRYGIAN | ||
+ | #define SCALE_SPANISH | ||
+ | |||
+ | // indian scales | ||
+ | #define SCALE_INDIAN_ | ||
+ | #define SCALE_INDIAN_ | ||
+ | #define SCALE_INDIAN_BHAVAPRIYA | ||
+ | #define SCALE_INDIAN_DHATUVARDHANI | ||
+ | #define SCALE_INDIAN_HEMAVITI | ||
+ | #define SCALE_INDIAN_JHANKARADHVANI | ||
+ | #define SCALE_INDIAN_KAMAVARDHANI | ||
+ | #define SCALE_INDIAN_NAVANITAM | ||
+ | #define SCALE_INDIAN_NITIMATI | ||
+ | #define SCALE_INDIAN_RAGHUPRIYA | ||
+ | #define SCALE_INDIAN_RAMAPRIYA | ||
+ | #define SCALE_INDIAN_SALAGAM | ||
+ | #define SCALE_INDIAN_SANMUKHAPRIYA | ||
+ | #define SCALE_INDIAN_SUBHAPANTUVARALI | ||
+ | #define SCALE_INDIAN_SUVARNANGI | ||
+ | |||
+ | |||
+ | // scale-ID' | ||
+ | #define SCALE_ID_NONE | ||
+ | #define SCALE_ID_MAJOR | ||
+ | #define SCALE_ID_MINOR | ||
+ | #define SCALE_ID_HARMONIC_MINOR | ||
+ | #define SCALE_ID_BLUES_MINOR | ||
+ | #define SCALE_ID_BLUES_MAJOR | ||
+ | #define SCALE_ID_DORIAN | ||
+ | #define SCALE_ID_JAPANESE | ||
+ | #define SCALE_ID_JAPANESE_DIMINISHED | ||
+ | #define SCALE_ID_KUMOI | ||
+ | #define SCALE_ID_LOCRIAN | ||
+ | #define SCALE_ID_LYDIAN | ||
+ | #define SCALE_ID_MI_SHEBERACH | ||
+ | #define SCALE_ID_MIXOLYDIAN | ||
+ | #define SCALE_ID_PELOG | ||
+ | #define SCALE_ID_PENTATONIC | ||
+ | #define SCALE_ID_PENTATONIC_BLUES | ||
+ | #define SCALE_ID_PENTATONIC_MAJOR | ||
+ | #define SCALE_ID_PENTATONIC_MINOR | ||
+ | #define SCALE_ID_PHRYGIAN | ||
+ | #define SCALE_ID_SPANISH | ||
+ | |||
+ | |||
+ | // ** QUANTIZERS ** | ||
+ | #ifdef _DEBUG_C | ||
+ | #pragma mark Quantizers | ||
+ | #endif | ||
+ | |||
+ | #define QUANTIZE_BPM | ||
+ | #define QUANTIZE_TOGGLE_NEXT | ||
+ | #define QUANTIZE_SET | ||
+ | |||
+ | #define SYNC_STOP | ||
+ | #define SYNC_START | ||
+ | |||
+ | |||
+ | |||
+ | #endif /* _ACMIDIPROTOCOL_H */ | ||
+ | </ |
acmidiprotocol.txt · Last modified: 2008/07/29 01:37 by 127.0.0.1