; ; constants.h: application constants ; ; author: Marko Kanala, raato ]a t[ mulletronic.com ; ; LICENSE ; Creative Commons Attribution-NonCommercial-ShareALike 2.5 ; ; You are free: ; ; * to copy, distribute, display, and perform the work ; * to make derivative works ; ; Under the following conditions: ; ; 1. Attribution. You must attribute the work in the manner specified by the ; author or licensor. ; 2. Noncommercial. You may not use this work for commercial purposes. ; 3. Share Alike. If you alter, transform, or build upon this work, you may ; distribute the resulting work only under a license identical to this one. ; ; * For any reuse or distribution, you must make clear to others the license ; terms of this work. ; * Any of these conditions can be waived if you get permission from the ; copyright holder. ; ; Your fair use and other rights are in no way affected by the above. ; ; This is a human-readable summary of the Legal Code. ; See full license at http://creativecommons.org/licenses/by-nc-sa/2.5/legalcode ; ; Copyright: Marko Kanala (raato@mulletronic.com). ; ; pattern data offsets, pattern data is ; considered to start after the pattern name ; scale = msb nybble, pat length = lsb nybble PAT_SCALELENGTH equ 0 ; 0c ; shuffle amount = msg nybble, flam amount = lsb nybble PAT_SHUFFLEFLAM equ 1 ; 0d ; pattern steps PAT_TRIGS equ 2 ; 0e ; PAT_BDRUM equ 2 ; 0e ; PAT_SDRUM equ 4 ; 10 ; PAT_LTOM equ 6 ; 12 ; PAT_MTOM equ 8 ; 14 ; PAT_HTOM equ 10 ; 16 ; PAT_RSHOT equ 12 ; 18 ; PAT_HCLAP equ 14 ; 1a ; PAT_CHIHAT equ 16 ; 1c ; PAT_OHIHAT equ 18 ; 1e ; PAT_CRASH equ 20 ; 20 ; PAT_RIDE equ 22 ; 22 PAT_ACCENT equ 24 ; 24 ; pattern accents PAT_ACCENTS equ 26 ; 26 ; ACC_BDRUM equ 26 ; 26 ; ACC_SDRUM equ 28 ; ACC_LTOM equ 30 ; ACC_MTOM equ 32 ; ACC_HTOM equ 34 ; ACC_RSHOT equ 36 ; ACC_HCLAP equ 38 ; ACC_CHIHAT equ 40 ; ACC_OHIHAT equ 42 ; ACC_CRASH equ 44 ; ACC_RIDE equ 46 ; 3a ; pattern flams PAT_FLAMS equ 48 ; 3c ; FLAM_BDRUM equ 48 ; 3c ; FLAM_SDRUM equ 50 ; FLAM_LTOM equ 52 ; FLAM_MTOM equ 54 ; FLAM_HTOM equ 56 ; FLAM_RSHOT equ 58 ; FLAM_HCLAP equ 60 ; FLAM_CHIHAT equ 62 ; FLAM_OHIHAT equ 64 ; FLAM_CRASH equ 66 ; FLAM_RIDE equ 68 ; invidual instrument track lenghts ; packed in msb and lsb nybbles PAT_LENGTHS equ 70 ; LEN_BDRUMSDRUM equ 70 ; LEN_LTOMMTOM equ 71 ; LEN_HTOMRSHOT equ 72 ; LEN_HCLAPCHIHAT equ 73 ; LEN_OHIHATCRASH equ 74 ; LEN_RIDEACCENT equ 75 PATTERN_HALF_SIZE equ 76 PATTERN_SIZE_FLASH equ 164 ; 12 + 76 + 76 ; pattern scales SCALE_16 equ 0 ; 1/16th notes SCALE_32 equ 1 ; 1/32th notes SCALE_8TR equ 2 ; 1/8th triplets SCALE_16TR equ 3 ; 1/16th triplets SCALE_16_TICKS equ 12 SCALE_32_TICKS equ 6 SCALE_8TR_TICKS equ 16 SCALE_16TR_TICKS equ 8 ; instruments INSTR_BASSDRUM equ 0 INSTR_ACCENT equ 11 ; app event bits EVENT_KEY equ 0 ; normal keypress EVENT_TEMPOCHANGE equ 1 ; tempo changed EVENT_DIRTY equ 2 ; pattern has changed and ; should be flashed EVENT_LASTSTEP equ 3 ; last step of the pattern ; has been reached EVENT_FLASHREADOK equ 4 ; indicates a flash read has ; succeeded EVENT_DINRUN equ 5 ; din run detected, syncing ; to din sync EVENT_MIDIRUN equ 6 ; midi run detected, syncing ; to midi sync EVENT_SYSEX equ 7 ; sysex procedure ; app mode bits ; ; note: SETTINGS mode equals no bits set! MODE_PPLAY equ 0 ; pattern play mode MODE_PWRITE equ 1 ; pattern write mode MODE_TPLAY equ 2 ; track play mode MODE_TWRITE equ 3 ; track write mode MODE_RUN equ 4 ; sequencer running MODE_FILL equ 5 ; fill pattern active MODE_CHAIN equ 6 ; chain play active MODE_FLAMWRITE equ 7 ; flam write mode ;MODE_SETTINGS equ ... ; settings mode ; sysex mode bits SYSEX_ERROR equ 0 ; sysex error detected SYSEX_MEMDUMP equ 1 ; sysex memory dump in progress ; pattern banks BANK_A equ 0 BANK_B equ 1 BANK_C equ 2 BANK_D equ 3 ; led to reg mappings ; note: utility.inc/get_ledreg hardcoded, do not change. LEDREG_S1 equ leds_busa_1 LEDREG_S2 equ leds_busa_1 LEDREG_S3 equ leds_busa_1 LEDREG_S4 equ leds_busa_1 LEDREG_S5 equ leds_busa_1 LEDREG_S6 equ leds_busa_1 LEDREG_S7 equ leds_busa_1 LEDREG_S8 equ leds_busa_1 LEDREG_S9 equ leds_busa_2 LEDREG_S10 equ leds_busa_2 LEDREG_S11 equ leds_busa_2 LEDREG_S12 equ leds_busa_2 LEDREG_S13 equ leds_busa_2 LEDREG_S14 equ leds_busa_2 LEDREG_S15 equ leds_busa_2 LEDREG_S16 equ leds_busa_2 LEDREG_BANKA equ leds_busb_1 LEDREG_BANKB equ leds_busb_1 LEDREG_BANKC equ leds_busb_1 LEDREG_BANKD equ leds_busb_1 LEDREG_START equ leds_busb_1 ; led to reg bit mappings LED_S1 equ 7 LED_S2 equ 6 LED_S3 equ 5 LED_S4 equ 4 LED_S5 equ 3 LED_S6 equ 2 LED_S7 equ 1 LED_S8 equ 0 LED_S9 equ 7 LED_S10 equ 6 LED_S11 equ 5 LED_S12 equ 4 LED_S13 equ 3 LED_S14 equ 2 LED_S15 equ 1 LED_S16 equ 0 LED_BANKA equ 7 LED_BANKB equ 6 LED_BANKC equ 5 LED_BANKD equ 4 LED_START equ 3 ; key codes KEY_NONE equ 0 KEY_S1 equ 1 KEY_S2 equ 2 KEY_S3 equ 3 KEY_S4 equ 4 KEY_S5 equ 5 KEY_S6 equ 6 KEY_S7 equ 7 KEY_S8 equ 8 KEY_S9 equ 9 KEY_S10 equ 10 KEY_S11 equ 11 KEY_S12 equ 12 KEY_S13 equ 13 KEY_S14 equ 14 KEY_S15 equ 15 KEY_S16 equ 16 KEY_BANKA equ 17 KEY_BANKB equ 18 KEY_BANKC equ 19 KEY_BANKD equ 20 KEY_START equ 21 KEY_STOPCONT equ 22 KEY_CLEAR equ 23 ; downkey KEY_SCALE equ 24 KEY_LASTSTEP equ 25 ; downkey KEY_INSTRSEL equ 26 ; downkey KEY_SHUFFLEFLAM equ 27 ; downkey KEY_PATTPLAYWRITE equ 28 KEY_TRACKPLAYWRITE equ 29 KEY_SHIFTFUNC equ 30 ; downkey KEY_ENTER equ 31 ; "downkeys", keys that can be held down ; ; Note: LASTSTEP + INSTRSEL are allowed ; to be held down simultaneously. ; 22k limiting resistors are ; therefore needed on both ; key lines. DOWNKEY_SHIFTFUNC equ 0 ; bits in variable DOWNKEY_INSTRSEL equ 1 ; "downkeys" DOWNKEY_LASTSTEP equ 2 DOWNKEY_CLEAR equ 3 DOWNKEY_SHUFFLEFLAM equ 4 ; trigger mappings ; triggers are stored in vars triggers_a and triggers_b ; ; REG BIT 7 6 5 4 3 2 1 0 ; reg a 0 0 cr hc ht r/s hhs rd ; reg b 0 0 rs lt sd bd mt hh ; TRIGREG_BASSDRUM equ triggers_b ; trigger reg TRIG_BASSDRUM equ 2 ; trigger bit FLAMREG_BASSDRUM equ flam_b TRIGREG_SNAREDRUM equ triggers_b TRIG_SNAREDRUM equ 3 FLAMREG_SNAREDRUM equ flam_b TRIGREG_LOWTOM equ triggers_b TRIG_LOWTOM equ 4 FLAMREG_LOWTOM equ flam_b TRIGREG_MIDTOM equ triggers_b TRIG_MIDTOM equ 1 FLAMREG_MIDTOM equ flam_b TRIGREG_HITOM equ triggers_a TRIG_HITOM equ 3 FLAMREG_HITOM equ flam_a TRIGREG_RIMSHOT equ triggers_b TRIG_RIMSHOT equ 5 FLAMREG_RIMSHOT equ flam_b TRIGREG_HANDCLAP equ triggers_a TRIG_HANDCLAP equ 4 FLAMREG_HANDCLAP equ flam_a TRIGREG_HIHATSEL equ triggers_a TRIG_HIHATSEL equ 1 TRIGREG_HIHAT equ triggers_b TRIG_HIHAT equ 0 FLAMREG_HIHATSEL equ flam_a FLAMREG_HIHAT equ flam_b TRIGREG_CRASH equ triggers_a TRIG_CRASH equ 5 FLAMREG_CRASH equ flam_a TRIGREG_RIDE equ triggers_a TRIG_RIDE equ 0 FLAMREG_RIDE equ flam_a TRIGREG_STARTSTOP equ triggers_a TRIG_STARTSTOP equ 2 ;;; port / pin vars ; led bus port PORT_LEDBUS equ PORTE LEDBUS_A_PIN equ 0 ; re0 LEDBUS_B_PIN equ 1 ; re1 PAT_DISP_LIT_PIN equ 2 ; re2 ; key bus port PORT_KEYBUS equ PORTA KEYBUS_A_PIN equ 5 ; ra5 KEYBUS_B_PIN equ 1 ; ra1 ; pattern display / led mux port PORT_LEDMUX equ PORTD LAT_LEDMUX equ LATD ; lcd display port(s) PORT_LCD equ PORTB LCD_D4_PIN equ 0 ; rb0 LCD_D5_PIN equ 1 ; rb1 LCD_D6_PIN equ 2 ; rb2 LCD_D7_PIN equ 3 ; rb3 LCD_RS_PIN equ 4 ; rb4 PORT_LCD_EN equ PORTA LCD_EN_PIN equ 4 ; ra4, ; 10k pull-up on open drain ; din out (clock pin) ; run/stop pin is tied to the 9090 muxes DIN_SYNC_PORT equ PORTC DIN_SYNC_PIN equ 5 ; RC5 ; din in run/stop pin ; clock is tied to RC2 and triggers CCP1IF DIN_IN_PORT equ PORTC DIN_IN_STARTSTOP_PIN equ 1 ; 9090 specific: PORT_TRIG equ PORTB ; rb0 to rb5 TRIGDAC_CLK_PORT equ PORTB TRIGDAC_CLK_PIN equ 6 ; rb6 TRIGLATCHA_PORT equ PORTB TRIGLATCHA_PIN equ 7 ; rb7 TRIGLATCHB_PORT equ PORTA TRIGLATCHB_PIN equ 2 ; ra2 TRIGMUXINH_PORT equ PORTA TRIGMUXINH_PIN equ 5 ; ra3 SYSEX_TYPE_MEM equ 0x00 SYSEX_TYPE_PAT equ 0x01 ; (boolean) sequencer setting bits stored ; in settings variable SETTING_DIN_IN equ 7 SETTING_DIN_OUT equ 6 SETTING_MIDIS_IN equ 5 SETTING_MIDIS_OUT equ 4 SETTING_MIDIN_OUT equ 3 ;SETTING_MIDIN_IN equ 2 MIDI_NOTE_BDRUM equ 36 MIDI_NOTE_SDRUM equ 40 MIDI_NOTE_LTOM equ 43 MIDI_NOTE_MTOM equ 47 MIDI_NOTE_HTOM equ 50 MIDI_NOTE_RSHOT equ 37 MIDI_NOTE_HCLAP equ 39 MIDI_NOTE_CHIHAT equ 42 MIDI_NOTE_OHIHAT equ 46 MIDI_NOTE_CRASH equ 49 MIDI_NOTE_RIDE equ 51
None.