Coder Social home page Coder Social logo

Support MPK Mini Play about mpd-utils HOT 20 OPEN

mungewell avatar mungewell commented on June 19, 2024
Support MPK Mini Play

from mpd-utils.

Comments (20)

mungewell avatar mungewell commented on June 19, 2024

There's something odd about this dump. The content states 0x63 (99 decimal) bytes, but the byte count is only 79 decimal...

This is shorter than the configs for Mini MK1 (102 decimal), which has less items to configure, and much shorter than for the Mini MK2 (109 decimal).

from mpd-utils.

CoolGames avatar CoolGames commented on June 19, 2024

I should get the Mini Play next Tuesday 12/25/18 so is this dump someone else's Play ?
What will you need to start to migrate support to Play that I can provide on Ubuntu Studio with Jack and Midi Dump ?
Here is the suggested connections I use now with Qsynth that the Play will replace.

lpd8 midi monitor - screenshot_2018-12-20_08-20-08

from mpd-utils.

mungewell avatar mungewell commented on June 19, 2024

Like I mentioned, I just faked a device by enabling a Midi loop-back with the name 'MPK Mini Play'.
loopmidi

If you'd like to help (once you get your hardware), use to connection panel to 'wire' the outgoing Midi from PC to MPK Play so that it also goes to a recorder. Send a program and recorded the SysEx which is actually sent. You should be able to use 'amidi -p XX:2 -r dump.bin'.

I suspect that it may be in a couple of different blocks, which would explain the above confusion...

Here's some details on the MPK MiniMk2, there's also the script for reading/adjusting the configs:
https://github.com/mungewell/mpd-utils/blob/master/sysex/sysex_mk2.md
https://github.com/mungewell/mpd-utils/blob/master/mpk_mini.py

The MPK Play is probably different enough to warrant a new script, hopefully somewhat similar though.

from mpd-utils.

mungewell avatar mungewell commented on June 19, 2024

I think I see why the MPK Play has a smaller config file, it does NOT send Prog and CC messages for the pads. The device doesn't have the extra buttons (CC and Prog) and these items are missing from the configuration editor.

This would 'save' 24 bytes:
https://github.com/mungewell/mpd-utils/blob/master/mpk_mini.py#L148

It also has 2 banks of 4 dials, rather than 1 bank of 8. Thought that requires the same amount of config/bytes.

from mpd-utils.

mungewell avatar mungewell commented on June 19, 2024

Santa left you a gift :-)
https://github.com/mungewell/mpd-utils/blob/master/mpk_play.py

simon@thevoid:~/mpd-utils-git$ python3 mpk_play.py -d  play_examples/miniplay_ram.bin -o temp.bin   
ListContainer: 
    Container: 
        preset = 1
        pchannel = 0
        dchannel = 0
        octave = (enum) OCT_0 4
        enable = (enum) OFF 0
        mode = (enum) UP 0
        division = (enum) DIV_1_4 0
        clock = (enum) INTERNAL 0
        latch = (enum) DISABLE 0
        swing = (enum) SWING_50 0
        taps = 3
        tempo = 120
        octaves = (enum) OCT_1 0
        axis_x = (enum) PBEND 0
        x_up = 0
        x_down = 0
        axis_y = (enum) CC1 1
        y_up = 16
        y_down = 0
    ListContainer: 
        ListContainer: 
            Container: 
                note = 16
            Container: 
                note = 17
            Container: 
                note = 18
            Container: 
                note = 19
            Container: 
                note = 20
            Container: 
                note = 21
            Container: 
                note = 22
            Container: 
                note = 31
        ListContainer: 
            Container: 
                note = 32
            Container: 
                note = 33
            Container: 
                note = 34
            Container: 
                note = 35
            Container: 
                note = 36
            Container: 
                note = 37
            Container: 
                note = 38
            Container: 
                note = 39
    ListContainer: 
        ListContainer: 
            Container: 
                midicc = 48
                min = 0
                max = 127
            Container: 
                midicc = 49
                min = 0
                max = 127
            Container: 
                midicc = 50
                min = 0
                max = 127
            Container: 
                midicc = 51
                min = 0
                max = 127
        ListContainer: 
            Container: 
                midicc = 64
                min = 0
                max = 127
            Container: 
                midicc = 65
                min = 0
                max = 127
            Container: 
                midicc = 66
                min = 0
                max = 127
            Container: 
                midicc = 67
                min = 0
                max = 127
    Container: 
        transpose = (enum) TRANS_0 12
    Container: 
        keys = 0
        drums = 0
        filter = 67
        res = 0
        reverb = 35
        chorus = 0
        attack = 0
        release = 56
        eq_low = 64
        eq_high = 64
    Container: 

from mpd-utils.

CoolGames avatar CoolGames commented on June 19, 2024

I am not sure how to open this gift !
What can I do with the mpd-utils tool ?

I can get most function to operate as a General Midi but as attached image shows, the Play editor is unusable in Ubuntu when invoked using Wine.

image

from mpd-utils.

mungewell avatar mungewell commented on June 19, 2024

Assuming that the MPK Mini Play behaves similar to other devices....

The python script 'mpk_play.py' can take the configuration settings (miniplay_ram.zip) for the device and change certain parameters - such as the note/sounds/etc. The configuration settings themselves are a SysEx patch and can be directly downloaded to the device:

$ amidi -l
Dir Device    Name
IO  hw:1,0,0  MPD218 MIDI 1

$ amidi -p hw:1,0,0 -s example.mpd218

The dump ('-d') from above is a human readable version of the configuration. Normally you'd use the other command line parameters to change settings and then upload the new configuration to your device.

$ python3 mpk_play.py -h
Usage: mpk_play.py [options] FILENAME

Options:
  -h, --help            show this help message and exit
  -o OUTFILE, --output=OUTFILE
                        write data to OUTFILE
  -v, --verbose         
  -d, --dump            dump configuration to text
  -p PRESET, --preset=PRESET
                        change the profile number to PRESET
  -t TEMPO, --tempo=TEMPO
                        change the tempo to TEMPO
  -A, --arpeggio        Interactively configure the Arpeggiator
  -G, --general         Interactively configure general settings
  -J, --joy             Interactively configure the Joystick
  -T, --transpose       Interactively configure the Transposing
  -D DIAL, --dial=DIAL  Interactively configure a Dial
  -P PAD, --pad=PAD     Interactively configure a Pad
  -S, --sound           Interactively configure Key and Drum sounds
  -M SCALE, --scale=SCALE
                        Interactively configure multiple Pads as a scale

The settings are stored into the preset (termed 'favourite' by Akai) held in the configuration, this can be changed with the '-p' parameter. If you store a new configuration onto the device, you may have to select that particular 'favourite' again, to load it into current/RAM setting.

There is likely a SysEx command for retrieving the configurations (device->PC) and changing which is selected on the device.

from mpd-utils.

CoolGames avatar CoolGames commented on June 19, 2024

It hung but still ctl-c canceled then found a file...
Not sure what it did

$ amidi -l
IO hw:2,0,0 MPK mini play MIDI 1

$ amidi -p hw:2,0,0 -S 'F0 47 00 34 12 00 01 01 F7' -r recall_1.mpdplay

recall_1.mpdplay.zip

from mpd-utils.

mungewell avatar mungewell commented on June 19, 2024

The file that you posted does not look like the SysEx Config files that I have seen before.

The command that you give is for retrieving config from the MPD218:
https://github.com/mungewell/mpd-utils#downloading-from-the-device

I believe that you want to adjust it with the following ID's

Header = Struct(
    Const(b"\xf0"),                 # SysEx Begin
    Const(b"\x47\x7f"),             # Mfg ID = Akai
    Const(b"\x44"),                 # Dev ID = MPK Mini Play
    Const(b"\x64"),                 # CMD = Dump/Load Preset
    Const(b"\x00\x63"),             # Len = 99bytes (7bit stuffed)
# Note: doesn't match actual size...

So I think that the retrieve command should be similar to the MPK Mini MK2 command...
$ amidi -p hw:1,0,0 -S 'F0 47 7f 44 66 00 01 01 F7' -r recall_1.play

from mpd-utils.

CoolGames avatar CoolGames commented on June 19, 2024

Is this helpful ?

$ lsusb
Bus 001 Device 035: ID 09e8:0044 AKAI Professional M.I. Corp.

$ sudo lsusb -d 09e8:44 -v

Bus 001 Device 035: ID 09e8:0044 AKAI Professional M.I. Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x09e8 AKAI Professional M.I. Corp.
idProduct 0x0044
bcdDevice 2.00
iManufacturer 1 AKAI
iProduct 2 MPK mini play
iSerial 3 000000000000001
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 118
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 52
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 9
bInCollection 1
baInterfaceNr( 0) 2
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 1 Audio
bInterfaceSubClass 3 MIDI Streaming
bInterfaceProtocol 0
iInterface 0
MIDIStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 50
MIDIStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (MIDI_IN_JACK)
bJackType 1 Embedded
bJackID 1
iJack 0
MIDIStreaming Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (MIDI_OUT_JACK)
bJackType 1 Embedded
bJackID 2
bNrInputPins 1
baSourceID( 0) 1
BaSourcePin( 0) 1
iJack 0
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 0
bRefresh 0
bSynchAddress 0
MIDIStreaming Endpoint Descriptor:
bLength 5
bDescriptorType 37
bDescriptorSubtype 1 (GENERAL)
bNumEmbMIDIJack 1
baAssocJackID( 0) 1
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 0
bRefresh 0
bSynchAddress 0
MIDIStreaming Endpoint Descriptor:
bLength 5
bDescriptorType 37
bDescriptorSubtype 1 (GENERAL)
bNumEmbMIDIJack 1
baAssocJackID( 0) 2
Device Status: 0x0001
Self Powered

$ amidi -l
Dir Device Name
IO hw:1,0,0 AG06/AG03 MIDI 1
IO hw:2,0,0 MPK mini play MIDI 1

$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 01 F7' -r recall_1.play
^C
79 bytes read

$ hexdump recall_1.play
0000000 47f0 4400 0067 0147 0000 0004 0000 0000
0000010 0300 7800 0000 2010 1001 1020 1211 1413
0000020 1615 2017 2221 2423 2625 3027 7f00 0031
0000030 327f 7f00 0033 407f 7f00 0041 427f 7f00
0000040 0043 0c7f 0000 4040 4040 4040 4040 00f7
000004f

recall_1.play.zip

from mpd-utils.

mungewell avatar mungewell commented on June 19, 2024

Yes, that does help. :-)

It shows the same issue as the MPK Mini MK2, in that the 'files' recalled from device have a 0x67 rather than a 0x64. I saw that this needed to be corrected before they would upload.

See:
https://github.com/mungewell/mpd-utils/blob/master/sysex/sysex_mk2.md

It also has a slightly different ID and length count. I have just fixed these in the parser.
$ python3 mpk_play.py -d preset_play/preset_1.play > dump.txt
dump.txt

If you are up for some more experimentation... it would be helpful if you could retrieve all 8 presets from the device.

$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 01 F7' -r recall_1.play
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 02 F7' -r recall_2.play
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 03 F7' -r recall_3.play
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 04 F7' -r recall_4.play
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 05 F7' -r recall_5.play
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 06 F7' -r recall_6.play
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 07 F7' -r recall_7.play
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 08 F7' -r recall_8.play

As above, once the 0x67 is changed to 0x64 it should be possible to change and upload these back to the device

$ python3 mpk_play.py -S preset_play/preset_1.play 
[?] Key Sound [0]: 1
[?] Drum Sound [0]: 1
[?] Filter [64]: 
[?] Resonence [64]: 
[?] Reverb [64]: 
[?] Chorus [64]: 
[?] Attack [64]: 
[?] Release [64]: 
[?] EQ Low [64]: 
[?] EQ High [64]: 

$ amidi -p hw:2,0,0 -s preset_play/preset_1.play

Note: You may need to re-select the preset/favorite on the device (hold 'favorite' button and press pad) to bring the new settings into the RAM of the device... this is needed on the MK2.

from mpd-utils.

CoolGames avatar CoolGames commented on June 19, 2024

Make and zip all in one place
NOTE:
No favorite pad presses as no changes seen when done.
I was on 32 bit Insignia Win 10 tablet to see what editor saved without editing.
Factory.mpkplay.zip

$ mkdir presets

$ cd presets/
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 01 F7' -r recall_1.play
^C
163 bytes read
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 02 F7' -r recall_2.play
^C
79 bytes read
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 03 F7' -r recall_3.play
^C
79 bytes read
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 04 F7' -r recall_4.play
^C
79 bytes read
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 05 F7' -r recall_5.play
^C
79 bytes read
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 06 F7' -r recall_6.play
^C
79 bytes read
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 07 F7' -r recall_7.play
^C
79 bytes read
$ amidi -p hw:2,0,0 -S 'F0 47 7f 44 66 00 01 08 F7' -r recall_8.play
^C
79 bytes read
$

presets.zip

from mpd-utils.

mungewell avatar mungewell commented on June 19, 2024

Well the presets are all rather boring ;-) Seems that Akai did not change anything between them - previously I saw that the MPD218 was pre-configured with different settings for different applications (ie. preset 5 for working with MPC Essentials).

Were you able to change the preset settings and upload to your device?

from mpd-utils.

CoolGames avatar CoolGames commented on June 19, 2024

I am working on what I think are missing fonts for WINE due to failure during upgrade to Ubuntu 18.10
Adding Microsoft fonts to 18.10
UPDATE:
Found the needed font Arial32 at Sourceforge and installed.

Then I can get PLAY editor to run on same system.

Favorite 2 has selected different keys and drums but no difference in dumps
so need another command !

$ hexdump recall_2.play
0000000 47f0 4400 0067 0247 0000 0004 0000 0000
0000010 0300 7800 0000 2010 1001 1020 1211 1413
0000020 1615 2017 2221 2423 2625 3027 7f00 0031
0000030 327f 7f00 0033 407f 7f00 0041 427f 7f00
0000040 0043 0c7f 0000 4040 4040 4040 4040 00f7
000004f
$ hexdump recall_2a.play
0000000 47f0 4400 0067 0247 0000 0004 0000 0000
0000010 0300 7800 0000 2010 1001 1020 1211 1413
0000020 1615 2017 2221 2423 2625 3027 7f00 0031
0000030 327f 7f00 0033 407f 7f00 0041 427f 7f00
0000040 0043 0c7f 0404 4040 4040 4040 4040 00f7
000004f
$

I can watch with kMidimon when editor gets FAVORITE 2 then FAVORITE 1 with different patches.

22051,45.9564,0:1,,ALSA Port subscribed,131:0,24:0,
22051,45.9585,0:1,,ALSA Port subscribed,24:0,131:1,
22052,45.9609,24:0,-,System exclusive,79,,f0 47 00 44 67 00 47 01 00 00 04 00 00 00 00 00 00 03 00 78 00 00 10 20 01 10 20 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 00 7f 31 00 7f 32 00 7f 33 00 7f 40 00 7f 41 00 7f 42 00 7f 43 00 7f 0c 00 00 40 40 40 40 40 40 40 40 f7

183265,381.8130,0:1,,ALSA Port start,131:1,,
183265,381.8144,0:1,,ALSA Port subscribed,131:0,24:0,
183265,381.8160,0:1,,ALSA Port subscribed,24:0,131:1,
183265,381.8174,24:0,-,System exclusive,79,,f0 47 00 44 67 00 47 01 00 00 04 00 00 00 00 00 00 03 00 78 00 00 10 20 01 10 20 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 00 7f 31 00 7f 32 00 7f 33 00 7f 40 00 7f 41 00 7f 42 00 7f 43 00 7f 0c 00 00 40 40 40 40 40 40 40 40 f7

kmidimion while mpk play edit - screenshot_2018-12-26_14-04-37
kmidimon favorite 2 - screenshot_2018-12-26_14-09-30

Just figured how to use kMidimon to get NEW buffer then do Get favs 1 and 2 and save as attached file that shows the parameter and data changing.

Also, I had turned on time stamp from when I was working with Roland MIDI clock.

kMidimon columns are
Ticks, Time, Source, Event kind, Chan, Data 1, Data 2, Data 3

kMidimon - Play Get Favorite 1 then 2.txt

from mpd-utils.

mungewell avatar mungewell commented on June 19, 2024

You should look closer... there is a difference between the following. Seems you have changed the key and pad sounds.
$ hexdump recall_2.play
0000000 47f0 4400 0067 0247 0000 0004 0000 0000
0000010 0300 7800 0000 2010 1001 1020 1211 1413
0000020 1615 2017 2221 2423 2625 3027 7f00 0031
0000030 327f 7f00 0033 407f 7f00 0041 427f 7f00
0000040 0043 0c7f 0000 4040 4040 4040 4040 00f7
000004f
$ hexdump recall_2a.play
0000000 47f0 4400 0067 0247 0000 0004 0000 0000
0000010 0300 7800 0000 2010 1001 1020 1211 1413
0000020 1615 2017 2221 2423 2625 3027 7f00 0031
0000030 327f 7f00 0033 407f 7f00 0041 427f 7f00
0000040 0043 0c7f 0404 4040 4040 4040 4040 00f7
000004f

from mpd-utils.

CoolGames avatar CoolGames commented on June 19, 2024

Good eyes !
I stared at it a while and missed that !
Is the kMidimon approach worth using to get more feedback when used with Play EDITOR ?
Just let me know what to record !

Next, I plan to decipher why some songs freeze the Akai MPK mini Play.
I will use Rosegarden to Import and see what is happening.
Some songs cause an artifact of spurious sounds that exist after song completes.

from mpd-utils.

mungewell avatar mungewell commented on June 19, 2024

I'd still like to know whether my python script can change the settings and whether you can upload the configuration to the device...

You kMidimon approach only records data from the device, it might be helpful to see what the editor sends. Although I suspect that we already know everything it does.

For the MPK Mini MK2 I experimented a lot with SysEx commands to the device, and was able to figure out a few more 'commands'. The data you posted at the start of this thread suggests that 'we' might be able to read (and set?) the Program/Global memories of the device, this would likely take a lot of experimentation to understand fully.

Re stuck notes. The device should be able to respond to 'all notes off' and 'panic' MIDI messages.

from mpd-utils.

CoolGames avatar CoolGames commented on June 19, 2024

I'll try your script once I can fully grasp how it is built or sent in use.
Stuck is dead brick PLAY meaning nothing responds so not able to reset
with buttons or software.

The attached text earlier is bi directional but I agree I should see the request to send or else it is saying source 0:1 data 1 131:1 is all that is needed. What ever that means.

from mpd-utils.

CoolGames avatar CoolGames commented on June 19, 2024

@mungewell
Not seeing any Midi traffic when using the play editor so suspect I need to find a way to
track USB traffic during edit.
I have the LPD8 set to send PC for top and middle of GM midi table so as to set sounds faster than
knob on play.
Also set the knobs on LPD8 to send the 4x2 presets.
The LPD8 knobs are set from a login at midi.org GM1-rev4.pdf page 5 spec thus:
knob CC PLAY display or behavior
K1 6 Modwheel - vibrato behavior
K2 7 Volume - behavior
K3 10 Pan - Behavior
K4 11 Expression - volume behavior

K5 64 Sustain - Behavior
K6 65 nothing seen
K7 66 Sustain - Behavior?
K8 67 nothing seen

Prefer to use CC indicated in the screen and on device.
Need to experiment more to see if I can make the LPD8 knobs do same as PLAY.

Eventually want the LPD8 knobs to do same as PLAY knobs but no documentation found of what
CC is used.
I will also could read deeper into GM spec on midi.org to find CC for

FILTER, RESONANCE REVERB AMT, CHORUS AMT
ATTACK , RELEASE, EQ LOW, EQ HIGH

LPD8 and Play send data of attached kmidimon log when editors request PRESET 1
LPD8 and Play preset receive.txt

from mpd-utils.

mungewell avatar mungewell commented on June 19, 2024

You may be interested in this comment from Akai
https://getsatisfaction.com/akai_professional/topics/mpk-mini-play-midi-from-pc-to-device

[edit] this is what that page used to say...

When the Internal Sounds button is toggled on, the MPK's knobs will control the parameters assigned to the knobs like filter, resonance, reverb, etc. When the Internal Sounds button is toggled off, the MPK's knobs will send MIDI CC via USB.
The Play's internal sounds will be controlled exclusively by the parameter knobs when the Internal Sounds button is enabled. The knobs will send MIDI CC via USB when the Internal Sounds button is toggled off but the internal sounds do not respond to incoming MIDI CC data

from mpd-utils.

Related Issues (3)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.