View Full Version : Fatar Keys, Pitch and modulation, Octave Change
lachstock
06-04-2010, 02:14 AM
Hi,
I am currently working through a design for a midi controller and am looking to use this brain.
I have sourced the keys from Fatar, I will be using the 25 key synth setup which I hope to plug into the board.
My question is, how hard would it be to setup on this board a Octave change up and down switch, Pitch and momulation inputs from linear pots, and midi chanel change settings?
Basically am looking to set up a hassle free controller with the basics for live performance for controlling synths... So octave change, midi chanel change, pitch/mod pots.
if you could let me know if this is suitable it would be much appreciated :)
Cheers,
lachstock
Hi lachstock,
Hi,
I am currently working through a design for a midi controller and am looking to use this brain.
I have sourced the keys from Fatar, I will be using the 25 key synth setup which I hope to plug into the board.
Ok. Are these velocity-sensitive keys?
My question is, how hard would it be to setup on this board a Octave change up and down switch
Do you want to transpose the note output from the keyboard? Or do you want to send some command that changes the octave on the sound module (or whatever receiving device).
The MIDI CPU currently doesn't allow real-time adjustable octave (adjustable transposition) for locally generated notes, but this is something I'm putting on the list for a future firmware update.
Pitch and momulation inputs from linear pots
The MIDI CPU can definitely do that.
and midi channel change settings?
The MIDI CPU output channel can be changed in real time via the channel jumpers. If you didn't want to use switches for this, there are certain types of encoders (knobs) that could be used for this...
Please let me know if I can provide more information.
thedarkmark
02-07-2011, 04:30 AM
Hi John
I finally bought my first MIDI CPU! Don't want it to be the last though- planned and soldered everything carefully, programmed and then... I get continuous pitch change info- more than 50 messages a second!
My project is similar to lachstock's.
I'm using fatar keys- 25 with velocity. Unless I'm mistaken, I can't use the velocity sensitivity feature (please correct me! In ver. 1.3 possibly :D ). I've ignored the break contacts and am using the make contacts- works well, at least for a few of the keys- I'll have to check the programming later. For now the real problem is with the pitch bend.
I have a softpot- a spectra touch linear pot (like ribbon controller). I wanted to use it for pitch bend up.
Honestly, I had trouble finding out how to program it using the firmware manual- specifically the mm, d0 & d1 values (especially the d1 value- hope you could explain to me). I think this is where I went wrong, but when I try to re program the CPU without any pitch bend code, it doesnt erase that pitch bend command, and it continues to send the pitch bend info.
I wondered if it's too busy sending pitch bend info out to allow itself to recieve Sysex in.
Is there a code I can send to reset/clear all codes on all layers? So I can start over from scratch?
I've included the sysex full dump if it would help- I separated it the best I could.
Thanks for the help in advance! -Mark
thedarkmark
02-07-2011, 04:40 AM
I've also removed the softpot physically from the circuit, to eliminate faulty hardware as a possibility. It sends pitch bend info with the pot unattached, so it must be in the sysex config. Or a faulty MIDI CPU.
Sometimes, it even sends random note on info, but not note off info. Ex:
Pitch bend 7F
Pitch bend 7F
...
Pitch bend 7F
Note D4 on
Pitch bend 7F
Pitch bend 7F
...
Pitch bend 7F
Note A4 on
Pitch bend 7F
...
Pitch bend 7F
Note D4 on
Pitch bend 7F
...
Pitch bend 7F
Note A4 on
...etc...
Hi Mark,
Thanks for posting the config dump--I'll start to analyze that in the next post. I'll address your other concerns here:
I'm using fatar keys- 25 with velocity. Unless I'm mistaken, I can't use the velocity sensitivity feature (please correct me! In ver. 1.3 possibly :D ). I've ignored the break contacts and am using the make contacts- works well, at least for a few of the keys- I'll have to check the programming later. For now the real problem is with the pitch bend.
Ok--got it.
I have a softpot- a spectra touch linear pot (like ribbon controller). I wanted to use it for pitch bend up.
Sounds good...
Honestly, I had trouble finding out how to program it using the firmware manual- specifically the mm, d0 & d1 values (especially the d1 value- hope you could explain to me). I think this is where I went wrong, but when I try to re program the CPU without any pitch bend code, it doesnt erase that pitch bend command, and it continues to send the pitch bend info.
I wondered if it's too busy sending pitch bend info out to allow itself to recieve Sysex in.
Ok. When the MIDI CPU receives a SysEx configuration command, it will always "stop what it is doing" to accept the SysEx. So no problem there.
If you simply "leave out" the pitch bend part, this means that the existing configuration for that control terminal will remain--you must "overwrite" the config for that control terminal. (With a mode like 7Fh--logic input data only.)
Is there a code I can send to reset/clear all codes on all layers? So I can start over from scratch?
No, but you can use mode 7Fh to disable a control terminal.
I've included the sysex full dump if it would help- I separated it the best I could.
Thanks for the help in advance! -Mark
Thanks for attaching this--makes things much easier to diagnose. :) More below...
(advance apology for all of the long-winded explanations!)
Ok, let's take a look at the layer 0 config:
F0 00 01 5D 04 01
00
Header and layer # look good.
00 00 7F 00 00 00
00 01 7F 00 00 00
01 00 7F 00 00 00
01 01 7F 00 00 00
02 00 2C 00 3C 0B
02 01 2C 00 3C 0B
03 00 7F 00 00 00
03 01 7F 00 00 00
04 00 7F 00 00 00
04 01 7F 00 00 00
05 00 2C 00 40 00
05 01 2C 00 40 00
06 00 7F 00 00 00
06 01 7F 00 00 00
07 00 7F 00 00 00
07 01 7F 00 00 00
08 00 2C 00 48 00
08 01 2C 00 48 00
09 00 7F 00 00 00
09 01 7F 00 00 00
0A 00 7F 00 00 00
0A 01 7F 00 00 00
0B 00 2C 00 50 03
0B 01 2C 00 50 03
Ok. Above it looks like you are setting up a switch matrix for the keys--correct? Mode 2C for select lines means that the matrix "data" comes from control terminals 0-7. There will be trouble since CT 2 and 5 are configured as select outputs (instead of mode 7Fh data inputs).
What is the matrix configuration you'd like to use? (how many select lines and how many data lines?)
We'll makes some changes there to get the notes working correctly.
0C 00 0A 00 00 00
CT 12, mode 0Ah for changing the matrix note velocity via analog input. This looks good.
0D 00 08 00 00 06
CT 13, mode 08h for sending pitch bend from analog input. The trick here is the last byte in the line. It specifies the data register address from which the pitch bend value is formed. In other words:
Using mode 08h configures the control terminal as an analog input. It also causes the MIDI CPU to generate a pitch bend message when the analog value changes.
The last byte is where the pitch bend value comes from. The MIDI CPU allows you to trigger the pitch bend message with one control terminal, but to control the actual value with a different terminal. In this case, we want to both trigger the message, and generate the value from the same control terminal. (Let me know if all that made sense! :D)
So, based on the table on page 8 of the Version 1.2 firmware manual, the register address for the analog value from CT 13 is 10h. So use this configuration line instead:
0D 00 08 00 00 10
Still--the configuration problem does not explain the excessive message generation. I'm guessing there could be an issue with the wiring. Also, how does the softpot work when it is not being used? If it results in the MIDI CPU control terminal being connected to an open circuit, you will have trouble with lots of noise.
You might try instead using one of the control terminals 16-23 for the softpot input. These have pull-up resistors which will stabilize the input...
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
This is just the leftover factory default config, which is harmless.
There's a lot in this post--please let me know where this gets you, and we can discuss further.
thedarkmark
02-07-2011, 07:11 PM
Thanks John for a quick reply- HL support is the best!
I'll have to try relocating the pot tonight, as well as testing the pot (I belive it IS an open circuit- is that bad?). I initially had d1 value at 10h per the manual but it didnt work.
Also I know I have to put in a 7Fh code to disbale for now.
I'm using a 8 data x 4 select matrix- the keys are already wired like that, with diodes, so I can't change that. Due to the Fatar wiring, I had to put the data/select wires out of order into the CPU terminals for ease of installation.
They are:
Data lines on MIDI CPU terminals 0, 1, 3, 4, 6, 7, 9, 10
Select lines on 2, 5, 8, 11
Also, I couldn't figure out what the matrix bitmask value should be. What bits are they talking about?
Ex:
Select line on terminal 2 only uses data from data terminals 6, 7, 9, 10;
But Select line on terminal 5 uses data from all 8 data terminals.
What should the code be for terminals 2 & 5? I can figure out the rest if I can get help on these terminal codes.
Thanks again John for the help!
P.S.... In searching other forums, it looks like bitmask is for the CPU terminals. Is that correct? Does this mean I have to wire the data lines to terminals 0-3? Do all the data lines have to be hooked up to the first terminals? I haven't found that requirement in either manual or any forum. If so, could you update the firmware manual with that? Thanks again!
thedarkmark
02-08-2011, 02:16 PM
OK I relocated all key matrix contacts to respective terminals and it worked! all the keys work perfectly.
Next I moved the softpot contact to terminal 23 and it worked! Though not very well- the wiper on the softpot at rest is set at one end, so it's either pitch up or pitch down. I changed it to CC 07 (volume) and left it at full volume, so I can bring the volume down for some live expression.
I still would like to know a few things:
1. What is bitmask, and what bits are masked? Is it terminals?
2. Can I use regular pots at terminals 8-13, or do I need the pull-up resistors?
3. I want to include a 6 position rotary switch to control 1 CC with different values at each position. For the sake of ease (and simplification), lets say I wanted a 3 position rotary switch to control CC 01. I want position 1 to be at 00(0%), position 2 to be at 40 (50%) and position 3 to be at 7F (100%). Can I use an analog input and use resistors for 2 of the positions? How would I wire that up?
Thanks!
Glad to hear that things are working better. :) More below:
I still would like to know a few things:
1. What is bitmask, and what bits are masked? Is it terminals?
Good question! I think switch matrix setup is worthy of a sticky thread. I have written one, and included an explanation of the matrix data bitmask, here:
http://forum.highlyliquid.com/showthread.php?t=504
Please respond in that thread if I can provide any more info about the bitmask.
2. Can I use regular pots at terminals 8-13, or do I need the pull-up resistors?
A regular pot should be fine, since it will always provide a signal (never an open circuit) to the control terminal. Of course, CT 16-23 will work, too.
3. I want to include a 6 position rotary switch to control 1 CC with different values at each position. For the sake of ease (and simplification), lets say I wanted a 3 position rotary switch to control CC 01. I want position 1 to be at 00(0%), position 2 to be at 40 (50%) and position 3 to be at 7F (100%). Can I use an analog input and use resistors for 2 of the positions? How would I wire that up?
Yes, this can work fine. I think I'll add this as a separate thread, also.
3. I want to include a 6 position rotary switch to control 1 CC with different values at each position. For the sake of ease (and simplification), lets say I wanted a 3 position rotary switch to control CC 01. I want position 1 to be at 00(0%), position 2 to be at 40 (50%) and position 3 to be at 7F (100%). Can I use an analog input and use resistors for 2 of the positions? How would I wire that up?
Answered this last part here:
http://forum.highlyliquid.com/showthread.php?t=505
vBulletin® v3.8.2, Copyright ©2000-2012, Jelsoft Enterprises Ltd.