Highly Liquid Forum facebook twitter google plus rss feed

Go Back   Highly Liquid Forum > Current Products > MIDI CPU

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 04-28-2015, 03:07 AM
ElektroDave ElektroDave is offline
Junior Member
 
Join Date: Sep 2014
Posts: 11
Default Rotary Encoder relative control change messages

Hello.
I have a question regarding the use of Rotary Encoders :
Is it possible to configure the Logic Input Rotary Encoder Modes so that the Encoders sends relative Control Change messages, for example a value of 65 for each clockwise step, and a value of 63 for each anti-clockwise step.
I have not found anything about it in the manual nor on the forum.
I have to say, I'm not familiar with rotary encoders.
Thank a lot for your help.

Last edited by ElektroDave; 04-28-2015 at 01:59 PM.
Reply With Quote
  #2  
Old 04-28-2015, 02:05 PM
Synthetech's Avatar
Synthetech Synthetech is offline
Moderator
 
Join Date: May 2012
Location: USA
Posts: 711
Default

you might accomplish your example with two layers


layer 00h
have the encoder incr/decr a register.. 11h for example(if the encoder was on Ct's 00 and 01), by +/- 2.
see
3.3.5 Encoder Input: Data Register: Increment / Decrement
in the manual

config reg. 11h to start up at 63, min value 63/max 65, no wrapping around



layer 01h
encoder will send CC midi msg. of chosen CC# and will use the value in reg. 11h for it's value.
see..
3.3.2 Encoder Input: Control Change (CC)
in the manual.. use mode 14h



so 1st it will be 63, if you turn CCW it will try to subtract 2 from 63, but cant.. so it will stay 63
then in 2nd layer it will send the CC with value 63

if you turn CW, it will add 2 to 63.. which is 65
then it will send the CC with value 65
if you turn CW again, it will try to add again, but cant due to the max of 65 so it will send 65 again.


I have never had anyone try the above, but can't see why it wouldnt work.
Reply With Quote
  #3  
Old 04-28-2015, 02:26 PM
ElektroDave ElektroDave is offline
Junior Member
 
Join Date: Sep 2014
Posts: 11
Default

Thanks Synthetech.
I will try this and let you know if it worked.
Cheers.
Reply With Quote
  #4  
Old 04-29-2015, 01:44 AM
ElektroDave ElektroDave is offline
Junior Member
 
Join Date: Sep 2014
Posts: 11
Default Problem solves.

Synthetech.
It works!
Actually, if I use the initial values I asked about - 63 as minimum and 65 as maximum - each time I increase or decrease the knob, the value 64 is always introduce once when between all the 63 or 65.
I was not able to figure out why?
But if I use instead a value 64 as maximum and make the DATA Register Inc / Dec by +/- 1, it perfectly works.

I really appreciate your help Synthetech.
Your response for my question was very clear and the steps well explained.
Thank you again.
By the way, if anybody is wondering, from what I understood, it only works with firmware v1.4.
Reply With Quote
  #5  
Old 04-30-2015, 02:10 PM
Synthetech's Avatar
Synthetech Synthetech is offline
Moderator
 
Join Date: May 2012
Location: USA
Posts: 711
Default

glad you got it going..

yea sometimes you gotta just tweak it a bit to get it right.
Reply With Quote
  #6  
Old 06-13-2015, 09:25 PM
ElektroDave ElektroDave is offline
Junior Member
 
Join Date: Sep 2014
Posts: 11
Default Randomly sending value when rotary encoders turn too quickly

Hello again.
I have an new issue with my rotary encoders.
To make them do what I was looking for, I configured my MIDI CPU with the two layers procedure Sythetech suggested me earlier in the post.
And It works.
Until I found this new issue :
If I turn my rotary encoders too quickly, it becomes confused, and send values that are suppose to be sent only when turned the other side. For example, it is suppose to send 64 value when turned clockwise and 63 value when turned counter clockwise. When turn fast clockwise, it randomly sends 63 value between 64 values. Same thing counter clockwise.
Does someone has any clue why is this happenning?
I made some research and I'm wondering if this could be cause by the bouncing effect of the rotary encoder.
Here is the rotary encoders I am using :

http://www.mouser.com/ProductDetail/...bCGWMVmlqJAYjh

Thank you very much for your help.

Last edited by ElektroDave; 06-16-2015 at 06:52 PM.
Reply With Quote
  #7  
Old 06-19-2015, 11:38 PM
ElektroDave ElektroDave is offline
Junior Member
 
Join Date: Sep 2014
Posts: 11
Default My experience with Rotary Encoders and MIDI CPU

So finally, I was not able to make MIDI CPU work well with Rotary Encoders. If I turn the encoders slowly, it works. But with my setup, sometimes I need to turns those very quickly. And when I do this, they get completely lost. I had to go with Arduino to take care of my Encoders. And now, they work very well.
For the rest of my knob though (pots, switches and push buttons), MIDI CPU works fine.
Reply With Quote
  #8  
Old 06-22-2015, 11:50 PM
John's Avatar
John John is offline
Moderator
 
Join Date: Jan 2009
Posts: 3,007
Default

Quote:
Originally Posted by ElektroDave View Post
So finally, I was not able to make MIDI CPU work well with Rotary Encoders. If I turn the encoders slowly, it works. But with my setup, sometimes I need to turns those very quickly. And when I do this, they get completely lost. I had to go with Arduino to take care of my Encoders. And now, they work very well.
For the rest of my knob though (pots, switches and push buttons), MIDI CPU works fine.
Dave, I'm sorry that the encoder functionality didn't do the job for you. Hopefully I will find a way to improve the MIDI CPU handling of encoders to allow for faster knob turns.

Thanks for posting your results!
Reply With Quote
  #9  
Old 07-05-2015, 07:34 PM
dgood dgood is offline
Junior Member
 
Join Date: May 2015
Posts: 13
Default

As I'm still a little new to writing my own sysex effectively, i'm running into some trouble, it's probably a simple fix for more experienced programmers, but I can't seem to program the encoders to do what I want.

It's very simple, just 8 rotary encoders on terminals 00+01, 02+03, 04+05, 06+07, 08+09, 10+11, 12+13, 14+15.

My objective is just to control basic parameters such as Threshold, Ratio, Gain, etc.. basic software plugin type things.

They seem to turn up and down just fine and it registers. However it's a pre determined category the pots are under. Also, it maps in software but does nothing when I turn the encoder, even though its registering on midi mapper. Is there something simple here i'm overlooking? I've been stumped for a long time!

This is what midi monitor tells me the pots are encoded as:

Code:
12:22:49.664	From In	Control	1	Bank Select	2
12:22:50.678	From In	Control	1	Bank Select	1
12:22:52.679	From In	Control	1	Modulation Wheel (coarse)	1
12:22:53.318	From In	Control	1	Modulation Wheel (coarse)	0
12:22:55.003	From In	Control	1	Breath Control (coarse)	2
12:22:56.158	From In	Control	1	Breath Control (coarse)	1
12:23:00.669	From In	Control	1	Portamento Time (coarse)	2
12:23:01.586	From In	Control	1	Portamento Time (coarse)	2
12:23:02.748	From In	Control	1	Data Entry (coarse)	0
12:23:03.323	From In	Control	1	Data Entry (coarse)	0
12:23:03.466	From In	Control	1	Data Entry (coarse)	0
12:24:31.770	From In	Control	1	Bank Select	0
12:24:31.822	From In	Control	1	Bank Select	0
12:24:32.152	From In	Control	1	Bank Select	0
12:24:32.217	From In	Control	1	Bank Select	1
12:24:32.289	From In	Control	1	Bank Select	1
12:24:33.748	From In	Control	1	Modulation Wheel (coarse)	0
12:24:33.838	From In	Control	1	Modulation Wheel (coarse)	0
12:24:33.903	From In	Control	1	Modulation Wheel (coarse)	0
12:24:34.330	From In	Control	1	Modulation Wheel (coarse)	1
12:24:34.414	From In	Control	1	Modulation Wheel (coarse)	2
12:24:37.183	From In	Control	1	Breath Control (coarse)	1
12:24:37.202	From In	Control	1	Breath Control (coarse)	1
12:24:37.248	From In	Control	1	Breath Control (coarse)	1
12:24:37.584	From In	Control	1	Breath Control (coarse)	1
12:24:37.713	From In	Control	1	Breath Control (coarse)	2
12:24:40.883	From In	Control	1	Portamento Time (coarse)	2
12:24:40.948	From In	Control	1	Portamento Time (coarse)	2
12:24:41.374	From In	Control	1	Portamento Time (coarse)	2
12:24:42.394	From In	Control	1	Data Entry (coarse)	0
12:24:42.485	From In	Control	1	Data Entry (coarse)	0
12:24:42.918	From In	Control	1	Data Entry (coarse)	0
12:24:43.860	From In	Control	1	Portamento Time (coarse)	2
Reply With Quote
  #10  
Old 07-06-2015, 08:55 PM
John's Avatar
John John is offline
Moderator
 
Join Date: Jan 2009
Posts: 3,007
Default

Quote:
Originally Posted by dgood View Post
As I'm still a little new to writing my own sysex effectively, i'm running into some trouble, it's probably a simple fix for more experienced programmers, but I can't seem to program the encoders to do what I want.

It's very simple, just 8 rotary encoders on terminals 00+01, 02+03, 04+05, 06+07, 08+09, 10+11, 12+13, 14+15.

My objective is just to control basic parameters such as Threshold, Ratio, Gain, etc.. basic software plugin type things.

They seem to turn up and down just fine and it registers. However it's a pre determined category the pots are under. Also, it maps in software but does nothing when I turn the encoder, even though its registering on midi mapper. Is there something simple here i'm overlooking? I've been stumped for a long time!

This is what midi monitor tells me the pots are encoded as:

Code:
12:22:49.664	From In	Control	1	Bank Select	2
12:22:50.678	From In	Control	1	Bank Select	1
12:22:52.679	From In	Control	1	Modulation Wheel (coarse)	1
12:22:53.318	From In	Control	1	Modulation Wheel (coarse)	0
12:22:55.003	From In	Control	1	Breath Control (coarse)	2
12:22:56.158	From In	Control	1	Breath Control (coarse)	1
12:23:00.669	From In	Control	1	Portamento Time (coarse)	2
12:23:01.586	From In	Control	1	Portamento Time (coarse)	2
12:23:02.748	From In	Control	1	Data Entry (coarse)	0
12:23:03.323	From In	Control	1	Data Entry (coarse)	0
12:23:03.466	From In	Control	1	Data Entry (coarse)	0
12:24:31.770	From In	Control	1	Bank Select	0
12:24:31.822	From In	Control	1	Bank Select	0
12:24:32.152	From In	Control	1	Bank Select	0
12:24:32.217	From In	Control	1	Bank Select	1
12:24:32.289	From In	Control	1	Bank Select	1
12:24:33.748	From In	Control	1	Modulation Wheel (coarse)	0
12:24:33.838	From In	Control	1	Modulation Wheel (coarse)	0
12:24:33.903	From In	Control	1	Modulation Wheel (coarse)	0
12:24:34.330	From In	Control	1	Modulation Wheel (coarse)	1
12:24:34.414	From In	Control	1	Modulation Wheel (coarse)	2
12:24:37.183	From In	Control	1	Breath Control (coarse)	1
12:24:37.202	From In	Control	1	Breath Control (coarse)	1
12:24:37.248	From In	Control	1	Breath Control (coarse)	1
12:24:37.584	From In	Control	1	Breath Control (coarse)	1
12:24:37.713	From In	Control	1	Breath Control (coarse)	2
12:24:40.883	From In	Control	1	Portamento Time (coarse)	2
12:24:40.948	From In	Control	1	Portamento Time (coarse)	2
12:24:41.374	From In	Control	1	Portamento Time (coarse)	2
12:24:42.394	From In	Control	1	Data Entry (coarse)	0
12:24:42.485	From In	Control	1	Data Entry (coarse)	0
12:24:42.918	From In	Control	1	Data Entry (coarse)	0
12:24:43.860	From In	Control	1	Portamento Time (coarse)	2
If the messaging is showing up in MIDI Monitor, it seems likely that the problem is the setup in the software application.

The "predetermined category" shown in the MIDI Monitor log is just the conventional name of the given CC number. Here is a list of CC numbers as defined in the MIDI spec:

http://www.blitter.com/~russtopia/MI...ec/ctllist.htm

In practice, some (or, most) devices do not use a given CC number for the "standard" purpose. If MIDI Monitor identifies a "portamento time" message, it just means that a CC #5 message was received. The actual purpose may be different in your application.

Does this help clarify what is happening?

Last edited by John; 07-06-2015 at 08:58 PM.
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 09:25 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, vBulletin Solutions, Inc.