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 07-28-2014, 02:47 AM
John's Avatar
John John is offline
Moderator
 
Join Date: Jan 2009
Posts: 3,007
Default Sending fixed up/down messages from a rotary encoder

J. writes:

Quote:
Can I have an encoder connected to the MIDI CPU output just one midi note instead of incrementing? (for left rotation c4 and right C#4) As the rotary encoder turns it has bumps so every bump it outputs the same note.

I also need a layer with some note on switches in there somewhere.
Yes, you can do something like what you describe. This is the summary:

1. Uprgrade the MIDI CPU to the beta firmware version 1.4:

http://forum.highlyliquid.com/showthread.php?t=935

2. Set up the encoder for "encoder input: continuous note"

3. Limit the data register for the encoder to just two values that
include notes C4 and C#4.

Here are the details:

Let's assume that the encoder is connected to CT# 0 and 1. The associated data register is 11h.

This sysex message will constrain register 11h to a minimum value of 60 (3Ch) for note C4 and a maximum value of 61 (3Dh) for note C4#. I'll throw in the setup for register 1Dh to make sure that all CT config layers are enabled.

Code:
F0 00 01 5D 04 04
11 3C 3C 3D 00
1D 0F 00 0F 00
F7
This message sets up CT 0 and 1 for the encoder input. CT #2 is configured to enable the continuous note output from the encoder. CT #2 must be tied directly to ground.

Code:
F0 00 01 5D 04 01 00
00 00 10 00 00 00
01 00 10 00 00 00
02 00 6A 00 00 00
02 01 6B 00 00 00
F7
Finally, here is the code to set up CT 3-23 for notes 63-83 (3Fh - 53h). On a new MIDI CPU, this part of the config will have been preloaded at the factory, so it can be skipped.

Code:
F0 00 01 5D 04 01
00
03 00 44 00 3F 7F
03 01 44 00 3F 00
04 00 44 00 40 7F
04 01 44 00 40 00
05 00 44 00 41 7F
05 01 44 00 41 00
06 00 44 00 42 7F
06 01 44 00 42 00
07 00 44 00 43 7F
07 01 44 00 43 00
08 00 44 00 44 7F
08 01 44 00 44 00
09 00 44 00 45 7F
09 01 44 00 45 00
0A 00 44 00 46 7F
0A 01 44 00 46 00
0B 00 44 00 47 7F
0B 01 44 00 47 00
0C 00 44 00 48 7F
0C 01 44 00 48 00
0D 00 44 00 49 7F
0D 01 44 00 49 00
0E 00 44 00 4A 7F
0E 01 44 00 4A 00
0F 00 44 00 4B 7F
0F 01 44 00 4B 00
10 00 44 00 4C 7F
10 01 44 00 4C 00
11 00 44 00 4D 7F
11 01 44 00 4D 00
12 00 44 00 4E 7F
12 01 44 00 4E 00
13 00 44 00 4F 7F
13 01 44 00 4F 00
14 00 44 00 50 7F
14 01 44 00 50 00
15 00 44 00 51 7F
15 01 44 00 51 00
16 00 44 00 52 7F
16 01 44 00 52 00
17 00 44 00 53 7F
17 01 44 00 53 00
F7
Reply With Quote
  #2  
Old 02-20-2015, 08:27 PM
bundao bundao is offline
Junior Member
 
Join Date: Jan 2012
Posts: 15
Default

Hi John

Thanks for this. I'm trying to do a similar thing but having problems repeating your example to 3 other encoders.

I've got 4 encoders, all with push switches within them.
Ive got encoder 1 connected to 00 and 01, 02 tied to gnd and the logic switch on 03.
Encoder 2 is connected to 04 and 05, 06 tied to gnd, switch on 07
I want the encoders to send a midi note at full velocity

Here is the sysex for the first 2 encoders.

F0 00 01 5D 04 01 00
00 00 10 00 00 7F
01 00 10 00 00 7F
02 00 6A 00 00 00
02 01 6B 00 00 00
03 00 44 00 03 7F
03 01 44 00 03 00
04 00 10 00 00 7F
05 00 10 00 00 7F
06 00 6A 04 00 00
06 01 6B 04 00 00
07 00 44 00 06 7F
07 01 44 00 06 00
F7

and the register stuff

F0 00 01 5D 04 04
11 01 01 02 00
13 04 04 05 00
1D 0F 00 0F 00
F7


So, encoder 1 works perfectly but encoder 2 outputs whatever the last note was that encoder 1 sent. CW or CCW gives the same result.
Both logic switches work fine.

I'm guessing its the register stuff I've got wrong but I can't work out what to do with the 1dh.

Appreciate any help you can give.
Thanks
Reply With Quote
  #3  
Old 06-22-2015, 11:05 PM
John's Avatar
John John is offline
Moderator
 
Join Date: Jan 2009
Posts: 3,007
Default

Bundao, sorry for missing your post for so long. In case you (or anyone else) is still reading, I've highlighted the problem bytes in bold:

Quote:
Originally Posted by bundao View Post
F0 00 01 5D 04 01 00
00 00 10 00 00 7F
01 00 10 00 00 7F
02 00 6A 00 00 00
02 01 6B 00 00 00
03 00 44 00 03 7F
03 01 44 00 03 00
04 00 10 00 00 7F
05 00 10 00 00 7F
06 00 6A 04 00 00
06 01 6B 04 00 00
07 00 44 00 06 7F
07 01 44 00 06 00
F7

and the register stuff

F0 00 01 5D 04 04
11 01 01 02 00
13 04 04 05 00
1D 0F 00 0F 00
F7


So, encoder 1 works perfectly but encoder 2 outputs whatever the last note was that encoder 1 sent. CW or CCW gives the same result.
Both logic switches work fine.
You rightly tried to put the encoder input terminal #4 (04h) into byte d0 for modes 6Ah and 6Bh. But the 04h in your config is in the channel column, not the d0 column. So you need to swap the bold 04h and 00h in each line.
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:17 PM.


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