1 /* B.SEQuencer 2 * MIDI Step Sequencer LV2 Plugin 3 * 4 * Copyright (C) 2018, 2019 by Sven Jähnichen 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 3, or (at your option) 9 * any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software Foundation, 18 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 */ 20 21 #ifndef DEFINITIONS_H_ 22 #define DEFINITIONS_H_ 23 24 #define NR_SYSTEM_SCALES 16 25 #define NR_USER_SCALES 4 26 #define MAXSTEPS 32 27 #define ROWS 16 28 #define NR_SEQUENCER_CHS 4 29 #define NR_CTRL_BUTTONS 9 30 #define NR_EDIT_BUTTONS 7 31 #define NR_MIDI_KEYS 128 32 #define AUTOPLAY_KEY 128 33 #define ALL_CH 0xFF 34 #define HALT_STEP 1000 35 #define BSEQUENCER_URI "https://www.jahnichen.de/plugins/lv2/BSEQuencer" 36 #define BSEQUENCER_GUI_URI "https://www.jahnichen.de/plugins/lv2/BSEQuencer#gui" 37 38 #ifndef LIMIT 39 #define LIMIT(val, min, max) ((val) > (max) ? (max) : ((val) < (min) ? (min) : (val))) 40 #endif /* LIMIT */ 41 42 typedef enum { 43 PER_BEAT = 1, 44 PER_BAR = 2 45 } Steps; 46 47 typedef enum { 48 AUTOPLAY = 1, 49 HOST_CONTROLLED = 2, 50 HOST_PLAYBACK = 3 51 } ModeIndex; 52 53 typedef enum { 54 ON_KEY_RESTART = 0, 55 ON_KEY_SYNC = 2, 56 ON_KEY_CONTINUE = 1 57 } OnKeyIndex; 58 59 typedef enum { 60 Chromatic = 1, 61 Major = 2, 62 Minor = 3 63 } ScaleIndex; 64 65 typedef enum { 66 NO_CTRL = 0x00, 67 CTRL_PLAY_FWD = 0x10, 68 CTRL_PLAY_REW = 0x20, 69 CTRL_ALL_MARK = 0x30, 70 CTRL_MARK = 0x40, 71 CTRL_JUMP_FWD = 0x50, 72 CTRL_JUMP_BACK = 0x60, 73 CTRL_SKIP = 0x70, 74 CTRL_STOP = 0x80 75 } CtrlButtons; 76 77 typedef enum { 78 EDIT_PICK = 0x100, 79 EDIT_MERGE = 0x200, 80 EDIT_CUT = 0x300, 81 EDIT_COPY = 0x400, 82 EDIT_FLIPX = 0x500, 83 EDIT_FLIPY = 0x600, 84 EDIT_PASTE = 0x700 85 } EditButtons; 86 87 88 #endif /* DEFINITIONS_H_ */ 89