Comments (7)
Hi,
This issue is new for me as well. I assume itโs coming either from a Python update, or more likely to the OS I use (Ubuntu Linux).
For me the issue (and I assume it is the same for you) is that the OS I use already has Python packages available through its package manager. To avoid conflicts between OS-installed packages and pip-installed ones, the default behaviour from Python is to forbid installations using pip. But you may still be able to install the packages from your package manager. If you use Ubuntu, try this:
sudo apt install python3-rtmidi python3-pyqt5
If you use another OS or distribution, these packages may still be available under a different name from your package manager.
If you cannot find them, you could still try one of the solutions outlined in this answer. There might be possible risks of breakage, but this worked for me:
pip install -r requirements.txt --break-system-packages
The sysex messages for the controller set the entirety of a program at once, you canโt really just edit one parameter as far as I know. Youโd need to read the current programme, edit the value you want, then send it back โ which is basically what this editor does!
from mpk-m2-editor.
Oh, interesting ! So the way a sysex message is written is in "one shot" with all parameters...
I made many tests yesterday with the "amidi" commend line, and I receive little sysex messages when I press keys, turn knobs... But nothing appears when I put the arpeggiator on, or push "prog change" (in short, anything that isn't cc or note). That's why I'm a bit confused... Also I'm unable to read an entire program.
Maybe "amidi" isn't the tool I need, but there's few informations about sysex messages on the internet, and even less so with this specific device. How were you able to see these infos ? Can you recommend some tools ?
I will also try the solution for the python problem, at least see if I can make your editor work !
from mpk-m2-editor.
But nothing appears when I put the arpeggiator on, or push "prog change" (in short, anything that isn't cc or note).
IIRC the sysex Iโm referring to only appear when you exchange programs with the editor, by pressing Get/Send Current/All/RAM. The arpeggiator or prog switch only change the operation of the controller, but donโt require sending any data to the computer.
How were you able to see these infos ? Can you recommend some tools ?
I used WireShark at the time I wrote this program, but honestly I pretty much forgot how it works since then. ๐
However I have documented what a config looks like in the code: each line gives you the expected value or range of values, and what it does.
I will also try the solution for the python problem, at least see if I can make your editor work !
I hope it works for you!
from mpk-m2-editor.
Hurray !
So first I tried to send the message that is in init, and nothing worked. I was almost giving up, but out of curiosity I tried to send the GET_CONFIG message, and finally something appeared in my PureData console. After analyzing the values I was seeing, I realized they were the "same" as what I observed in your init method (well, not exactly the same, but same number of bytes, same type of values, etc.). At this point it was pretty obvious I wasn't far from my goal.
After spending some more time not being able to set a program via a sysex message, I saw that the 5th byte ("sysex_4" in your init method, which is set to 103) could be set to 100 (which is a "send" command). So I tried to replace "103" by "100" and changed some parameters and... it worked (well, last step was to use the "Prog Select" button to reload Program 1) !!! I saw the octave down button getting red 4 times without pressing on it :) And now I'm able to synchronize my MPK 2 mini with Pure Data !!!
From all the research I've done before contacting you, I saw there wasn't a lot of documentation (if any) about sending sysex messages with Pure Data. I think I might do a youtube tutorial or a blog post about it. Would you agree to be cited ? It won't be for tomorrow so no urge to respond, but it is clear that I wouldn't have been able to do it without your well commented code :)
from mpk-m2-editor.
Hurray !
Awesome ๐
(well, last step was to use the "Prog Select" button to reload Program 1)
This should not be needed if you use Send RAM, which can modify the current state of the controller without editing any program, and without you needing to reload it. This would be done with (102, 0) as sysexes 4 and 5.
Would you agree to be cited ?
Of course, Iโm glad it could be of help :) Let me know when you publish it.
from mpk-m2-editor.
This would be done with (102, 0) as sysexes 4 and 5
Wait, seriously ? I'll test that later ! This is incredible because Pure Data has now a "child" (PlugData) which is more or less the same thing but can be opened as a vst... This means we should be able to automate state of controllers through a DAW... crazy stuff !!!
Great, I'll let you know when I'm doing this tutorial :)
from mpk-m2-editor.
Well this time I wasn't lucky...
I tried to replace (100 0) by (102 0) in my message but it didn't change current state. I simply received the full program values in my console. It's like as soon as there's (102), the sysex is interpreted as a query, not a "send" command. Is it possible that other bytes need to be changed ?
Also I tried to mess around with the message, deleting some stuff, going back to (100) instead of (102)... I "succeeded" to make the octave up button blinking as if it was the tap tempo button... I guess I ended up somewhere random in the RAM, but I stopped there because I didn't want to mess everything up haha
from mpk-m2-editor.
Related Issues (12)
- addWidget(...): argument 2 has unexpected type 'float' HOT 4
- editor window not rendering HOT 2
- rtmidi-python won't work with Python3.10+ HOT 4
- Pads Off by One Octave HOT 2
- Speficy a version in setup to avoid packaging problems HOT 1
- Installation Issues with M1 HOT 3
- Support for Mini MK1 and Mini Play HOT 5
- [feature request] i18n HOT 19
- Traduction manquante HOT 2
- Support for MPK mini mk3 HOT 13
- libjack-dev2 instead of libjack-dev HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mpk-m2-editor.