shadiradio wroteEDIT: My MiniLab is double triggering. Oh my god. I wonder if all of these controllers use the same sourced sensors/mechanisms for pads. Could be. All these devices are amazingly inexpensive when you think about it. I guess there’s not as much of a market for a space-efficient high-quality (and price) combination controller. I also think it’s why companies like Nektar tuned their velocity response so you have to slam it for it to register. I’d bet money that if the Nektar pads registered light hits they would double trigger like others. If you’re OK with having a separate keyboard and pad surface I suggested a couple in my last posts. |
I just ended up writing my own C# program to make my controller behave the way I want. I added conversions to make the MiniLab's encoders send relative values that Studio One likes, and modifying plugin parameters in Studio One is now smooth and great, just like the SQ.
More importantly, I also fixed the double triggering and this would work for any controller. I just store the last timestamps for every note, and if the current note is within 50ms (my double trigger threshold after some tests), I just don't pass it along to the output. Storing the timestamps for every single key is a tiny amount of data (less than a kilobyte), and the processing is so trivial, I don't see why this isn't handled in firmware of all the controllers out there. It took maybe a couple hours to write, and most of that time was just spent finding a C# MIDI library to use for a dotnet app, and reading its documentation. I don't get it... this is a hardware issue easily resolved by software. At least I can just run my app whenever I need to and it'll do its filtering in the background now.
shadiradio.com | Studio One Pro 5, Atom SQ, Windows 10 Pro 64bit, macOS Big Sur, AMD Ryzen 7 3700x, 32 GB RAM
|
shadiradio wroteStoring the timestamps for every single key is a tiny amount of data (less than a kilobyte), and the processing is so trivial, I don't see why this isn't handled in firmware of all the controllers out there. It took maybe a couple hours to write I bet if you were already familiar with that library, the time would likely dwindle down to an hour at most. I don't get it either; ignoring impossibly close same-note triggers is definitely the simplest solution. As the OP pointed out, it's more likely that the cause of delays is everything that happens before and after the actual coding, like project management, scheduling, approval, deployment, or urgency. |
shadiradio wroteI just ended up writing my own C# program to make my controller behave the way I want. I added conversions to make the MiniLab's encoders send relative values that Studio One likes, and modifying plugin parameters in Studio One is now smooth and great, just like the SQ. If you have time maybe chuck it on GitHub and maybe Presonus could clone your code (and we could use it!). Thx.
Intel i9 9900K (Gigabyte Z390 DESIGNARE motherboard), 32GB RAM, EVGA Geforce 1070 (Nvidia drivers).
Dell Inspiron 7591 (2 in 1) 16Gb. Studio One Pro 6.x, Windows 11 Pro 64 bit, also running it on Mac OS Catalina via dual boot (experimental). Presonus Quantum 2626, Presonus Studio 26c, Focusrite Saffire Pro 40, Faderport Classic (1.45), Atom SQ, Atom Pad, Maschine Studio, Octapad SPD-30, Roland A300, a number of hardware synths. |
PreAl wroteIf you have time maybe chuck it on GitHub and maybe Presonus could clone your code (and we could use it!). Maybe if I can clean it up, make it handle port errors and stuff, and easier for people to just download and run I'll put it up there. In the meantime, here's the basic C# program for a dotnet console app. The double trigger filtering out logic is extremely simple - infinitely more simple than anything else the Atom SQ firmware is doing with all its capabilities. The relevant bit is basically just the short OnMessageReceived() function. EDIT: Forgot to mention this program uses the managed-midi package here: https://github.com/atsushieno/managed-midi
Last edited by shadiradio on Fri Jul 02, 2021 3:09 pm, edited 1 time in total.
shadiradio.com | Studio One Pro 5, Atom SQ, Windows 10 Pro 64bit, macOS Big Sur, AMD Ryzen 7 3700x, 32 GB RAM
|
^ Well that's the post of the month so far!! Thx!
Intel i9 9900K (Gigabyte Z390 DESIGNARE motherboard), 32GB RAM, EVGA Geforce 1070 (Nvidia drivers).
Dell Inspiron 7591 (2 in 1) 16Gb. Studio One Pro 6.x, Windows 11 Pro 64 bit, also running it on Mac OS Catalina via dual boot (experimental). Presonus Quantum 2626, Presonus Studio 26c, Focusrite Saffire Pro 40, Faderport Classic (1.45), Atom SQ, Atom Pad, Maschine Studio, Octapad SPD-30, Roland A300, a number of hardware synths. |
I spent the weekend making the little tool more flexible and a little more user friendly. You can add different types of filters, configure & re-order the chain, and import/export your configuration. I think after a little more work I'll just put this up on my site to download... it should solve double triggers for any controller.
So far all the filters I've added were to solve needs I have but it's pretty easy now to add more types in the future:
shadiradio.com | Studio One Pro 5, Atom SQ, Windows 10 Pro 64bit, macOS Big Sur, AMD Ryzen 7 3700x, 32 GB RAM
|
aduki wroteWow that's great. Is this Windows only and if it is, is a Mac port possible? Thanks! It'll work on Mac too. It's basically a terminal app, but it supports mouse interaction too.
shadiradio.com | Studio One Pro 5, Atom SQ, Windows 10 Pro 64bit, macOS Big Sur, AMD Ryzen 7 3700x, 32 GB RAM
|
aduki wroteOK went to your Github. Amazing work! But..I know nothing when it comes to this. Thanks! I don't actually have anything up on Github yet, but I'll probably just host the download on my own site when I'm done (shouldn't be too long). I can't really support anything like this or promise anything, but it should work for most people - just choose the MIDI in and out ports (like using a virtual midi cable or the built in IAC bus on Mac), and then add a block doubles filter and that's it.
shadiradio.com | Studio One Pro 5, Atom SQ, Windows 10 Pro 64bit, macOS Big Sur, AMD Ryzen 7 3700x, 32 GB RAM
|
For anyone that this may help, I packed up my little MIDI tool and put it up on my site for download: http://www.shadiradio.com You'll need a virtual MIDI cable of some sort, but the setup should be pretty easy. Just run the app, choose your MIDI in/out ports, and add some filters. The most relevant filter for this topic is blocking double note triggers, and you can specify your time interval. I found 70ms to basically catch all the double triggers coming out of my MiniLab, so experiment with the value to fix the Atom SQ ones. I can't promise this will work on everyone's machine, but it's a simple terminal app and I've tested it on my Mac and my PC. I hope it's helpful, and I'll probably be improving it over time now that I can make MIDI controllers work for me. It should fix double triggering from any controller regardless of manufacturer if you leave it running while you make music.
shadiradio.com | Studio One Pro 5, Atom SQ, Windows 10 Pro 64bit, macOS Big Sur, AMD Ryzen 7 3700x, 32 GB RAM
|
aduki wroteThanks for this. Wow that's interesting - the Atom SQ must be double triggering immediately. I've updated the app (v0.1.1) and you can set it from 1-250ms now. BTW If you have the + or - buttons highlighted when editing values, holding down the spacebar will make them go through the timing values faster. I'm interested to know if going below 5ms works for your SQ. macOS: https://midimado.s3.amazonaws.com/midimado-macOS.zip windows: https://midimado.s3.amazonaws.com/midimado-Windows.zip
shadiradio.com | Studio One Pro 5, Atom SQ, Windows 10 Pro 64bit, macOS Big Sur, AMD Ryzen 7 3700x, 32 GB RAM
|
aduki wroteSadly the Atom SQ seems to be dependent on the software used. This is strange I know but with Wave Alchemy's excellent Drumvolution I cannot consistently eliminate double triggers even at 1ms. Hmm this is actually strange... also I just realized I didn't need to update the software since midimado will capture all double triggers below the threshold set, so it should be capturing 0ms as well. Are you using a virtual midi cable to pipe the messages between midimado and the software? It's necessary for this to work: Atom SQ -> virtual midi port A -> midimado -> virtual midi port B -> DAW The only other thing I can think of is to open a midi monitor (like the one built in to Studio One) and tap pads until you hear/see a double trigger, and then look at the times of the two NoteOn messages. The difference will be the ms, in this case my MiniLab is showing 41ms. I have a third unopened Atom SQ, but I don't want to open it because I already have it listed for sale on Reverb, so I can't test with it.
shadiradio.com | Studio One Pro 5, Atom SQ, Windows 10 Pro 64bit, macOS Big Sur, AMD Ryzen 7 3700x, 32 GB RAM
|
I did wonder about the 'below n ms' parameter and what that meant, makes sense.
Midi path: I'm selecting Atom SQ as the input in Midimado then selectin IAC for midi output. Then in Kontakt I select IAC bus as input and make sure to de-select the Atom SQ as an input. I think that's correct? So now, later in the day, no double hits at all even without Midimado. Totally random! Atom SQ needs warming up it seems |
aduki wroteI did wonder about the 'below n ms' parameter and what that meant, makes sense. Hmm yeah that sounds like the right setup. I noticed that with my SQ way back too - it wasn't consistent. I wonder if temperature has anything to do with it, or even some kind of internal data buffer makes things behave differently the more you play it or something. If it does start double triggering again for you, I'd love to see the timestamps from the midi output readout.
shadiradio.com | Studio One Pro 5, Atom SQ, Windows 10 Pro 64bit, macOS Big Sur, AMD Ryzen 7 3700x, 32 GB RAM
|
Users browsing this forum: No registered users and 12 guests