1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
//! //! Rust FFI bindings for the [KORG SYRO](https://github.com/korginc/volcasample) library for the Volca Sample. //! #![allow(non_upper_case_globals)] #![allow(non_camel_case_types)] #![allow(non_snake_case)] include!(concat!(env!("OUT_DIR"), "/bindings.rs")); impl Default for VolcaSample_Part_Data { fn default() -> Self { Self { SampleNum: 0, // the sample number (0~99) to be used StepOn: 0, // a bit map to set step on/off steps 1-16 correspond to bits 0-15, 0=off and 1=on Accent: 0, // this parameter cannot be operated on the volca sample. Must be set to 0. Reserved: 0, Level: 127, // this parameter cannot be operated on the volca sample. Must be set to 127. Param: [ 127, // VOLCASAMPLE_PARAM_LEVEL 0~127, (127) 64, // VOLCASAMPLE_PARAM_PAN 1~127, 64=Center (64) 64, // VOLCASAMPLE_PARAM_SPEED 40~88, 64=Center (64) *changes speed in semitones (FUNC+SPEED operation) // 129~255, 192=Centre *changes speed continuously 0, // VOLCASAMPLE_PARAM_AMPEG_ATTACK 0~127 (0) 127, // VOLCASAMPLE_PARAM_AMPEG_DECAY 0~127 (127) 64, // VOLCASAMPLE_PARAM_PITCHEG_INT 1~127, 64=Center (64) 0, // VOLCASAMPLE_PARAM_PITCHEG_ATTACK 0~127 (0) 127, // VOLCASAMPLE_PARAM_PITCHEG_DECAY 0~127 (127) 0, // VOLCASAMPLE_PARAM_START_POINT 0~127 (0) 127, // VOLCASAMPLE_PARAM_LENGTH 0~127 (127) 127, // VOLCASAMPLE_PARAM_HICUT 0~127 (127) ], // on/off for each part parameters // bit0 : Motion On/Off VOLCASAMPLE_FUNC_MOTION // bit1 : Loop On/Off VOLCASAMPLE_FUNC_LOOP // bit2 : Reverb On/Off VOLCASAMPLE_FUNC_REVERB // bit3 : Reverse On/Off VOLCASAMPLE_FUNC_REVERSE // bit4 : Mute On/Off (1=mute off) VOLCASAMPLE_FUNC_MUTE FuncMemoryPart: VOLCASAMPLE_FUNC_MUTE as u8, Padding1: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], Motion: [ // The values for the motion sequence are as follows: // SPEED knob value (0~127) // all other parameters knob value +128 // for all parameters, 0=no motion data [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // LEVEL (start) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // LEVEL (end) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // PAN (start) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // PAN (end) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // SPEED (start) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // SPEED (end) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // AMP EG ATTACk [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // AMP EG DECAY [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // PITCH EG INT [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // PITCH EG ATTACK [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // PITCH EG DECAY [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // START POINT [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // LENGTH [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // HI CUT ], } } } impl Default for VolcaSample_Pattern_Data { fn default() -> Self { Self { Header: VOLCASAMPLE_PATTERN_HEADER, DevCode: VOLCASAMPLE_PATTERN_DEVCODE as u16, Reserved: [0, 0], ActiveStep: 0xffff, Padding1: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], Part: [ VolcaSample_Part_Data::default(), VolcaSample_Part_Data::default(), VolcaSample_Part_Data::default(), VolcaSample_Part_Data::default(), VolcaSample_Part_Data::default(), VolcaSample_Part_Data::default(), VolcaSample_Part_Data::default(), VolcaSample_Part_Data::default(), VolcaSample_Part_Data::default(), VolcaSample_Part_Data::default(), ], Padding2: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], Footer: VOLCASAMPLE_PATTERN_FOOTER, } } }