Tag Archives: RtMidi

“Physical” midi user interface for lazy programmers

https://worthcompare.com/5k1vjpye It’s been a while since my last post, but I’ve been busy, new job, new continent, etc…

This summer I was working at Ubisoft Paris, and for one of my tasks I needed to create a sample program, to implement and an effect.  It takes some time to rewrite tools you usally have in the engine like shader builder, DX entities creators, camera class, etc, but what I really found time consuming, and annoying was everything UI related. There were a lot of settings, and the goal being to explore all of the possibilities, almost all of them had to be exposed to the user. It’s such a pain, creating your sliders/buttons/whatever, setting the position, width, height, initializing, drawing and updating, etc. I used DXUT’s UI components, I’m sure there is better tools out there, but I have to admit,  I don’t like UI programming, so I wanted to find a better way for my future projects.

https://tankinz.com/tkccr7rwo

So one day I grabbed my midi keyboard, wondering how hard it was to get the inputs. Turns out it’s super easy. Using the library RtMidi, and I was able to get my inputs in no time. The following week I bought a small midi controller, the Korg NanoKontrol2.

https://musiciselementary.com/2024/03/07/2pg2nin Midi user interface

https://www.lcclub.co.uk/smlad79fs6

 

http://countocram.com/2024/03/07/rfir404j0

https://giannifava.org/kr2anext48  

https://fotballsonen.com/2024/03/07/tpt74c03

https://wasmorg.com/2024/03/07/n19lkuk9 Look at that, it’s a physical “G”UI!

https://www.worldhumorawards.org/uncategorized/yg9gtzku8y

There is everything I could want on this controller, sliders, knobs and buttons with light feedbacks. So I started to write a small midi input manager for my current project, trying to make it easy to use. There is just a simple Update() function that will receive/send all the midi messages, and all I have to do is MidiInputManager::Instance()->GetMidiValue(NKI_F1) to get the current value of the first fader. And that’s it !

https://www.goedkoopvliegen.nl/uncategorized/s052e2m

https://www.mominleggings.com/16q7xo9puzk Midi values are in the range 0 – 127, so I had to transform them, an annoying and error prone, so I added an initialization function: MidiInputManager::Instance()->SetMinAndMaxValues(NKI_F1, 50, 500), and the results of the GetMidiValue function are already in the correct range.

Order Tramadol From Uk

https://www.worldhumorawards.org/uncategorized/7cznbyfug  

https://giannifava.org/uehtbu5728

Of course there are some drawbacks. The faders and knobs are not motorized, meaning that if you have saved a default value, you can’t see it on the fader, and you will lose it as soon as you move the fader.

https://fotballsonen.com/2024/03/07/bwgv8foa

Buy Cheap Tramadol You have only 128 different values so you really need to set the correct range to have a good precision.

Tramadol Purchase Cod You have only 8 knobs and 8 faders. It’s not really a problem since you can define multiple configurations using the buttons. For example for each faders there are 3 buttons, (S)olo, (M)ute and (R)ecord. I’ve linked them has a group, meaning that only one of the three can be active at a time. So the associated fader can control a red channel while S is on, blue when M is on and so on. I’m also thinking to use multiple global configurations if I really need more buttons. Using the “track” buttons, I would be able to press next and be in “configuration 2” and have a different mappings.

https://fotballsonen.com/2024/03/07/ta4qf2n I also notice some lag sometime, I’ll have to take a look at that.

https://worthcompare.com/vinc6cu

https://elisabethbell.com/mgs6k362  

Tramadol Hcl Online

I’ve uploaded a first version on github, and I’ll update it as soon as I had features. For now it’s only for the nanokontrol2, but it’s easy to port to other controllers.

https://wasmorg.com/2024/03/07/0wxpq4u

I’ve made a quick video of my tiled deferred renderer to show how it can be used:

Tramadol Online Mexico

https://www.jamesramsden.com/2024/03/07/ef4e5u10dpp

https://www.lcclub.co.uk/e98azxbzmuq

 

https://tankinz.com/hfzjjmvugb9

https://www.goedkoopvliegen.nl/uncategorized/wo9nkbhv2i I’m sure I’m not the only one to do that, but I hope it will help or inspire someone!