-
-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Various improvements #47
Conversation
@mojca @johnroper100 I just created this |
Also can you split this PR into maybe 3 or 4 smaller ones? |
Yes and no. Yes, I gladly split them once you tell me what precisely you want, or what you want first. These commits depend on each other to quite some extent, so if I split the code to four smaller PRs, I'll have to fix all the other three PRs as soon as you merge the first one, then again the remaining two PRs once you merge the second one etc.
Do you only like the UI or do you also really really want to stick with merge commits as well? Linear history is still fully compatible with nice user interface when using the "right" settings. |
Oops I completely did a mess with a wrong PR with a merge in "rebase" mode between |
Summary of our chat, and of the parts which need to be checked before merging:
=> We need to double check the new one works on: (also discussed here: #43 (comment))
As discussed on chat, this is a custom system you designed for your device (using COM port on Windows, etc.), and this is probably better in a fork.
Yes good
We need to double check this, I don't remember exactly why these characters were needed (with slash/antislash escaping), but it probably was, so we need to check. About 38400 vs 31250 baud etc. (see #49) we need to test with the MIDI IN circuit (here https://www.samplerbox.org/files/samplerbox_schematics.jpg we just use the MIDI IN circuit from the official MIDI specifications) + a standard synth Roland Yamaha, etc. |
Which error do you get in Python 3 if you keep the original:
without removing the Could you past the error, and an example of definition file with generates the error? Thanks @mojca. |
c889c25
to
59a5435
Compare
I tested three out of four (I didn't install python 2.7 on Windows), but it would of course be helpful if someone checked this independently. Now I seem to be at least a bit confused because the website doesn't mention support for 2.7.
It's only available in binary form for python 3.6 to 3.9 for Windows. So I'm mostly missing python 3.10 on that list, not so much python 2.7. (Nobody says that Windows users need to use Python 2.7 when they have a newer version available and working. I can request publishing wheels for 3.10.) But doesn't one need the compiler for
I removed this part. This code could in fact be much easier (I added some error handling because I wanted user-friendly errors when a port was missing etc.), but I'll revisit it once I add support for easier configuration that won't require messing with the source code. Let's forget about it for now.
Is this one also correct? It wasn't technically needed, I just thought it might be better to use explicit integer results.
Yes, we definitely need to check.
The note names were simply not recognised. I don't remember whether there was in fact any error as I needed to add some additional debugging myself to see what was actually happening / why the sound was missing. We are using simple Here's a minimal example to demonstrate the problem:
which outputs
in python 3.10 under Windows and
in python 2.7 under Linux (I have those two at hand, I can test more later). |
@mojca There was a change at Python 3.7 about the
So, after thinking about it, I'll do a Python 3 patch, and it won't be retro-compatible to Python 2, maybe it was needed after all. (I don't want to have many cases in the code "if Python2 then", "if Python3 then"...) About I'll close this PR for now, because it is too complex for me with |
This pull requests includes various changes that I couldn't easily split into individual pull requests as they would conflict with each other, but I would be more than happy to isolate some changes out and remove others.
The changes currently include
python-rtmidi
(covered by Make samplerbox.py work with rtmidi-python #43)What's still missing:
What I'm puzzled about:
see hack in /boot/cmline.txt: 38400 is 31250 baud for MIDI!
", but there's no/boot/cmline.txt
anywhere and the baud rate was in fact 38400, not 31250 as claimed. Since we control the midi source, we just switched the baud rate to 115200 on both sides. When sending MIDI messages at 31250 we had tons of strange issues, with midi messaged being misinterpreted at times (while working at other times).