And a Nefertiti bust that I embedded a small wireless motion detector in - when I was building our alarm system - I had the idea of hiding stuff in the furniture so to speak.
Very cool! The 2nd vid was only 1 second long. Was that intentional?
Relative rotary controller proof of concept. Right now I have to push the button and hold to scroll vertical, later I'll change that to a push-to-toggle vert/horiz so I can just push it to switch to vert, then push again to go back to horizontal.
I'm being a little sneaky with the code, I'm just looking for a direction change, when that happens, set the increment value to 0, then continue incrementing +1 or -1 depending on the direction, until the direction changes, rinse repeat. That's probably asking for an overflow, but if I restrict relative to +/- 127 then it won't work right for zoom/scroll (just like my nektar p6 rotaries don't work correctly for it). We'll see what wall I hit or what I break...
If I get it working well, I'm going to use a big metal knob for zoom and scroll so I can grab and spin like a flywheel.
More like it !
Assign that to nudge item by pixel left/right and smile (at least I would!, My eyes thank me anyway)
Have you also tried that assigned to last touched parameter?
Push to switch is neat idea, I guess that could conceivably (assuming code wizardry) cycle different functions i.e zoom>scroll>nudge>parameter>adjust curtains etc.
Have you also tried that assigned to last touched parameter?
I assume that "might" work with this...
"FX: Set MIDI learn for last touched FX parameter"
But that's just a matter of attaching that action to a push button, keystroke or toolbar button. My additional encoders arrived a few minutes ago so it's possible I may be testing my three knob idea this evening.
Zoom Knob, Scroll Knob, Automation Knob
Where zoom and scroll have a push button on the knob itself to toggle between vert/horz. I think the pro micro has 5 interrupt pins (I need 4), if so I should be good. I did need to do some edits in a mastering project last night, the scroll knob was still there and active so I used it, it worked great!
Note: With so few interrupt pins, the number of rotary encoders is roughly 2. So to make something with more relative encoders, either includes adding more pro micros and shipping data between them or a different processor - but, it also has to be something than ca advertise itself as USB/MIDI.
__________________ Music is what feelings sound like.
Last edited by karbomusic; 02-11-2018 at 09:15 AM.
"FX: Set MIDI learn for last touched FX parameter"
But that's just a matter of attaching that action to a push button, keystroke or toolbar button. My additional encoders arrived a few minutes ago so it's possible I may be testing my three knob idea this evening.
Zoom Knob, Scroll Knob, Automation Knob
Where zoom and scroll have a push button on the knob itself to switch between vert/horz. I think the pro micro has 5 interrupt pins (I need 4), if so I should be good.
Yeh to clarify I mean hard assigning knob to the action - *adjust* last touched parameter (midi cc ) etc.
Probably My favourite reaper action.
Fun day ahead! I got an ssd to squeeze into a Mac mini - gah.
It's just a personal pleasure mostly but the reason I'm posting all the info is so anyone else who want's can make their own.
Yep that's all koolio--it's just personally i don't have a printer just laying around doing nothing--if i did it might be doing something!!
Point being--if say,1 was to design a control board specifically for stock reaper devices--would you be interested in printing out a prototype model for a show n' 'tell tutorial kinda thing??
Will your printer do labelling and very fine detailings karbomusic?
would you be interested in printing out a prototype model for a show n' 'tell tutorial kinda thing??
I'll document when finished.
Quote:
Will your printer do labelling and very fine detailings karbomusic?
It does OK for detail but I wouldn't use it for labeling, I have waterslide decals I'll use for that. I'm not making a real product but if I did, the enclosure wouldn't be 3D printed as it isn't "production quality" really. Perfect for personal stuff though.
__________________ Music is what feelings sound like.
^Xactly^ -nice little sideliner merchandiser for ya there karbomusic >very cheap,portable casings-specifically bespoke designed for reaper users/customers-- so long the thing performs the functions--the surface details are always a bonus right<< i'm actually after a fresh new design surface with multiple faders/dials and buttons-- this would be a perfect for personal needs-- i already designed a >reason controll surface< which never actually got printed (realized) - this moment could be the perfect opportunity to make that finally happen (although it's quite a personal dream to use+ possibly abuse such things......)
Could whip up some fresh 3d mesh ideas later on tonight >> am feeling creative......
I'll see if I can get all three working later today. One of the interrupt pins I need is being used by tx but I think I can override that since I'm not using it. Or it will break serial communication - if that happens then pro micro might not fit the bill.
__________________ Music is what feelings sound like.
if that happens then pro micro might not fit the bill.
^Aye-you appear bright enough to work this out (or around similar) quite painlessly
8 faders-8 dials-8 buttons-+ a small stylophone beatbox type thing integrated (or similar tiny touch keyboard,stylus touch)
Most basic web control included for reaper fm+ web interacing. =)
If you count the basic cost of 3d casing design and time to solder--shoot some figures and can seewhat can be done about that yip.
Took three hours of poking and prodding but seems to work.
Red Knob: Used to write automation via MIDI CC
Middle Knob + Button: Scroll horizontal/vertical
Right Knob + Button: Zoom horizontal/vertical
Both Buttons: Press and hold button on left knob, then press button on right knob once - moves edit cursor and view to play cursor for zooming while playback is occurring (not shown in video).
The built in push buttons on the zoom/scroll encoders toggle between horizontal/vertical for the two. I need to tweak my debounce routine a little (fixed) as there are times I have to push the button an extra time or two, to get it to toggle orientation but shouldn't be too much work.
One headache was interrupt pins 2/3 (on physical pins 0/1) were preset to be additional serial pins (rx/tx) aka Serial1. I needed those two pins for the second encoder but was finally able to turn off tx/rx on those pins using Serial1.end() and they suddenly started working.
The reaction time of zoom/scroll is fine but there appears to be a "turnaround delay" or maybe "easing" is the better word. IOW when changing directions for zoom or scroll, I can see the encoder CCs leaving the Arduino but Reaper seems to ease into stopping then ease into moving the other direction. Not saying that's bad per se but reversing direction requires an extra turn on the knob or two to get it going.
The pots are stuck to my desk with Blu Tack to keep them from flying all over the place and I had to move the Arduino to a breadboard to handle the extra wiring. I'm going to leave it just like this for a few days/week, use it some when doing normal Reaper work and see what needs tweaking. If it remains useful in a real world session, I'll print an enclosure and keep it. I'm sure I'll add a couple LEDs that illuminate when sending MIDI etc., basic visual feedback stuff.
Here are the knobs I'm going to use hopefully for zoom/scroll. They are 38mm and metal so that should be enough mass so that I can spin them and let go if that makes sense. Should make zoom/scroll less work.
__________________ Music is what feelings sound like.
Last edited by karbomusic; 02-11-2018 at 09:27 PM.
Green = Zoom
Blue = Scroll
Magenta = Automation
Yellow LEDs = vertical scroll and/or vertical zoom are enabled.
Green (small) = Power is on
Orange Flash = Scroll button press
Blue Flash = Zoom button press
Red Flash = Scroll and Zoom pressed (moves cursor to play position)
That's really all I need for this project, I'll bang out the enclosure in Blender tonight or this week, print and build except I might etch a PCB to keep down the wires...
__________________ Music is what feelings sound like.
Finished printing the enclosure last night. Only one of the three aluminum buttons are in but installed it just to see how things are going to work out. If things continue to go well I should have this finished and in production in my setup in the next day or two...
Took 8 hours to print. But realizing something, modeling it in Blender then spitting it out into real life is just amazing.
__________________ Music is what feelings sound like.
Thanks my friend and is humbling to hear. There are really two main reasons I post stuff like this. 1) It sort of serves as my own documentation and 2) I do like to share what I learn so others can be inspired to do their thing and benefit from it. And of course I've known so many of you here for so long, there is enjoyment of the shop talk of it all - wifeypoo isn't really into the geek thing (she appreciates but it's all gobbledygook to her) so you guys are part of my man cave LOL.
__________________ Music is what feelings sound like.
Your controller is so dope/amazing,/ingenious!
I've thought of similar.
I've considered tearing apart a mouse wheel and replacing the wheel with a knob somehow, but never put thought into action. That's where it really counts. Doing the actual work to make it a reality.
The physical build is the more difficult, getting the little Arduino Micro (~$10) programmed, especially with the code already written is almost as simple as clicking "build+deploy".
__________________ Music is what feelings sound like.
Note: With so few interrupt pins, the number of rotary encoders is roughly 2. So to make something with more relative encoders, either includes adding more pro micros and shipping data between them or a different processor - but, it also has to be something than ca advertise itself as USB/MIDI.
You might want to have a look at the Teensy USB Development Board, there are several to choose from and they have more power (speed, memory, interrupt pins etc.) than an Arduino. There's also excellent MIDI (USB, USB-host, serial) support built in, see Using USB MIDI.
For reading analog values (e.g. pots) nothing beats the ResponsiveAnalogRead library.
A remark on the code: You should get rid of the delay() statement and use a timer, see ElapsedMillis.
BTW the Teensyduino install already contains the libraries you need for developing MIDI or OSC controllers. The Teensyduino install also contains several examples for building MIDI controllers (using timers and the ResponsiveAnalogRead and Bounce libraries).
I've been aware of the Teensy for a while but someone mentioned the Micro being able to present as a MIDI device so I just had to try it out since I already had a bunch of them lying around. One of these days I'll order a Teensy and play with it.
__________________ Music is what feelings sound like.
I've considered tearing apart a mouse wheel and replacing the wheel with a knob somehow, but never put thought into action. That's where it really counts. Doing the actual work to make it a reality.
In my experience, encoder in normal button is far from perfect.
If you mean encoders found on production controllers, I agree. One reason I built mine is because no production controller (that I know of) can do zoom/scroll as smoothly as mine via reaper actions - it has to do with how they handle the relative spew for lack of a better term. I'm actually surprised (and sort of not) that controllers are this terrible at this. I'm not promoting mine, I'm just saying it's 1000% better/smoother then off-the-shelf rotary midi controllers.
__________________ Music is what feelings sound like.
If you mean encoders found on production controllers, I agree. One reason I built mine is because no production controller (that I know of) can do zoom/scroll as smoothly as mine via reaper actions - it has to do with how they handle the relative spew for lack of a better term. I'm actually surprised (and sort of not) that controllers are this terrible at this. I'm not promoting mine, I'm just saying it's 1000% better/smoother then off-the-shelf rotary midi controllers.
Normal (mechanical) rotary encoders have a low resolution, they max out at 24PPR which translates to 96 pulses after proper decoding. 96 pulses is not even enough to cover the standard MIDI controller range of 127 steps thus it becomes necessary to use tricks like acceleration. Using acceleration means you can have precision or speed but not both at the same time.
For my controller I used Bourns EM14 optical rotary encoders with 64PPR (256 after decoding), this is more than enough to cover the standard MIDI controller range. By using 212 steps (10/12=300degrees) the movement of the encoders exactly matches the virtual knobs on the controller and on the computer monitor.
There are encoders with much higher resolution but these are intended for use with machinery (CNC mill, lathe etc.). The Bourns EM14 series are for HMI (human machine interaction) and have a very nice dampened feel like the most expensive potentiometer. Very nice parts, the only problem is that they're expensive.
Normal (mechanical) rotary encoders have a low resolution, they max out at 24PPR which translates to 96 pulses after proper decoding. 96 pulses is not even enough to cover the standard MIDI controller range of 127 steps thus it becomes necessary to use tricks like acceleration.
I get that but I didn't need it for my rotary controllers because it's a relative +/- only which is why it works as well as it does. My third controller (of the three knobs) is an analog pot (not rotary) which I use for absolute, and it works exactly and perfectly from 0-127. I agree with what you are saying, it simply isn't required in my design.
__________________ Music is what feelings sound like.
Last edited by karbomusic; 09-21-2018 at 08:55 AM.
Normal (mechanical) rotary encoders have a low resolution, they max out at 24PPR which translates to 96 pulses after proper decoding. 96 pulses is not even enough to cover the standard MIDI controller range of 127 steps thus it becomes necessary to use tricks like acceleration. Using acceleration means you can have precision or speed but not both at the same time.
I have tried to play with (software) acceleration, but I was not happy with the result. IMHO controllers use "acceleration" for encoders to indicate it was turned by several ticks since the last message, I do not think they use smart time based algos.
I have found that coarse/fine mode switch helps. I normally set coarse to 2-5% per of the whole range per tick, and fine to 0.1%. I do not think any fixed value can work as universal, even for expensive encoders. Some parameters need tiny changes (f.e. EQ frequency, envelopes in synths), but in many cases radical change by small movement is required (f.e. initial settings for almost everything).
Hope it's ok to bump an older thread here. I am interested in building a single-knob MIDI controller for Reaper and discovered this thread - it seems like there was some great success.
karbomusic, are you still using the controller you built? I see that I can still get hold of the parts that you mentioned, but perhaps there are some things you learned in the meantime that might have changed the way you would approach it if you were to do it again?
I have some experience working with Arduino and MIDI, but that was using a pre-packaged kit and then just tweaking some code, so this seems like a fun project that would be a bit more hands-on.
Hope it's ok to bump an older thread here. I am interested in building a single-knob MIDI controller for Reaper and discovered this thread - it seems like there was some great success.
karbomusic, are you still using the controller you built? I see that I can still get hold of the parts that you mentioned, but perhaps there are some things you learned in the meantime that might have changed the way you would approach it if you were to do it again?
I have some experience working with Arduino and MIDI, but that was using a pre-packaged kit and then just tweaking some code, so this seems like a fun project that would be a bit more hands-on.
Thanks!
Hey there! Yes, I still use it. For what I use it for I don't know of much I'd change. Just make sure you get an Arduino Pro Micro because it can function as a USB/MIDI device. Here's the github link for the code if you want to use it.