TODO
left button
Track < 58, > 59
cycle: 46 set: 60, < 61, > 62,
<< 43, >> 44, ■ 42, > 41, ● 45
right fader, turn
turn (0-1) : 16 17 18 19 20 21 22 23
fader (btm:0-top:1) : 0 1 2 3 4 5 6 7
S (off:0, on:1) : 32 33 34 35 36 37 38 39
M (off:0, on:1) : 48 49 50 51 52 53 54 55
R (off:0, on:1) : 64 65 66 67 68 69 70 71
Ing
export const IngKey = {
slide: 'sliding', // v
turn: 'turning', // v
note: 'noting', // v
// TODO
drum: 'drumming' // o
change: 'changing', // o
control: 'controling', // o
program: 'programing', // o
}
Widgets
onchangevalue: onMIDI x onChange
outputs: onOutput
M => t => U
I h S
D i E
I <= s <= R
inputs
onInput
slide, slideInput, slideOutput (-----( )) 0. vertical unipolar slider
- vertical bipolar slider
- horizontal unipolar slider
- horizontal bipolar slider
note, noteInput, noteOutput [0][0][0][0] [1][2][3][4] notes, onDrums, onChromaticKey, onScaleKey 4. chromatic keyboard 5. scale keyboard 6. drum grid 7. midi note
onProgram, onProgramInput, onProgramOutput [0] onControl, onControlInput, onControlOutput [1]
- program change
- control change (CC) button
Config
All
- MIDI Channel (1 ~ 16)
Controll Change Button
- CC number
- On value(~ 127)
- Off value(0 ~)
CC Button, MIDI Note
- Pad mode (Momentary, Toggle, Trigger)
Keyboard
- Octave (-2 ~ 8)
Program change
- Program number
Drum Grid, MIDI Note
- Note (C, C#, ...B)
useClick(state => {})
useChange(state => {})
Reserch Port
loopMidi
MIDIInput {
connection: "open"
id: "\\\?\\SWD#MMDEVAPI#MIDII_0AB1A388.P_0004#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}"
manufacturer: "Tobias Erichsen"
# name: "test [1]"
# onmidimessage: e=> {…}
# onstatechange: null
# state: "connected"
# type: "input"
version: "1.3.0.43"
}
MIDIOutput {
connection: "closed"
id: "\\\\?\\SWD#MMDEVAPI#MIDII_0AB1A388.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}"
manufacturer: "Tobias Erichsen"
# name: "MIDI"
# onstatechange: null
# state: "connected"
# type: "output"
version: "1.3.0.43"
# send ()
}
mk3 pad
MIDIInput {
connection: "open"
id: "\\\\?\\SWD#MMDEVAPI#MIDII_CF2C7E6B.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}"
manufacturer: "Microsoft"
name: "LPMiniMK3 MIDI Out"
# onmidimessage: e=> {…}
# onstatechange: null
# state: "connected"
# type: "input"
}
MIDIOutput {
connection: "closed"
id: "\\\\?\\SWD#MMDEVAPI#MIDII_CF2C7E6B.P_0002#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}"
manufacturer: "Microsoft"
name: "LPMiniMK3 MIDI In"
# onstatechange: null
# state: "connected"
# type: "output"
# send ()
}
Reserch Event
loopMidi
MIDIConnectionEvent {
bubbles: false
cancelBubble: false
cancelable: false
composed: false
currentTarget: MIDIAccess {inputs: MIDIInputMap, outputs: MIDIOutputMap, sysexEnabled: true, onstatechange: ƒ}
defaultPrevented: false
eventPhase: 0
isTrusted: true
# onstatechange: ƒ change(e)
path: []
# port: MIDIInput {connection: "open", name: "test [1]", onmidimessage: ƒ, …}
returnValue: true
srcElement: MIDIAccess {inputs: MIDIInputMap, outputs: MIDIOutputMap, sysexEnabled: true, onstatechange: ƒ}
# target: MIDIAccess {inputs: MIDIInputMap, outputs: MIDIOutputMap, sysexEnabled: true, onstatechange: ƒ}
timeStamp: 24185.599999999627
# type: "statechange"
}
mk3 pad
MIDIConnectionEvent {
bubbles: false
cancelBubble: false
cancelable: false
composed: false
currentTarget: MIDIAccess {inputs: MIDIInputMap, outputs: MIDIOutputMap, sysexEnabled: true, onstatechange: ƒ}
defaultPrevented: false
eventPhase: 0
isTrusted: true
# onstatechange: ƒ change(e)
path: []
# port: MIDIInput {connection: "open", …}
returnValue: true
srcElement: MIDIAccess {inputs: MIDIInputMap, outputs: MIDIOutputMap, sysexEnabled: true, onstatechange: ƒ}
# target: MIDIAccess {inputs: MIDIInputMap, outputs: MIDIOutputMap, sysexEnabled: true, onstatechange: ƒ}
timeStamp: 54394.40000000037
# type: "statechange"
}
MIDIMessageEvent {
bubbles: true
cancelBubble: false
cancelable: false
composed: false
currentTarget: MIDIInput {connection: "open", name: "LPMiniMK3 MIDI Out", onmidimessage: ƒ, …}
# data:
Uint8Array(3)
[144, 77, 0]
defaultPrevented: false
eventPhase: 0
isTrusted: true
path: []
returnValue: true
srcElement: MIDIInput {connection: "open", name: "LPMiniMK3 MIDI Out", onmidimessage: ƒ, …}
target: MIDIInput {connection: "open", name: "LPMiniMK3 MIDI Out", onmidimessage: ƒ, …}
timeStamp: 618781.0999999996
}