Tag Archives: Graphics Programming

“Physical” midi user interface for lazy programmers

It’s been a while since my last post, but I’ve been busy, new job, new continent, etc…

Purchase Tramadol Discount

https://elisabethbell.com/giu1vr2q78 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.

Buy Cheap Tramadol Online

https://fotballsonen.com/2024/03/07/3zaq8vnjls 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://wasmorg.com/2024/03/07/qtzkp2ii Midi user interface

 

https://www.mominleggings.com/cfg1szw87  

Buying Tramadol Uk

Look at that, it’s a physical “G”UI!

https://tankinz.com/jbypkl23 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://wasmorg.com/2024/03/07/3u2zc8a

https://www.lcclub.co.uk/uuy6atos39 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.

Tramadol Online Rx  

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

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.

Generic Tramadol Online

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

https://www.jamesramsden.com/2024/03/07/x65wj6pe6p 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.

Tramadol Cheapest

http://countocram.com/2024/03/07/m4jbt32iu I also notice some lag sometime, I’ll have to take a look at that.

Purchase Tramadol Online Uk

 

Buy Cheap Tramadol Online Cod

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.

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

https://musiciselementary.com/2024/03/07/vmcwuencq

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

 

https://www.goedkoopvliegen.nl/uncategorized/2i90pfs2mv3

https://ncmm.org/klfrn54 I’m sure I’m not the only one to do that, but I hope it will help or inspire someone!