Jump to content

Newbie's Implementation of QBAS's Velocity Scanning Matix


Bach911
 Share

Recommended Posts

I hate to ask questions when I am so new, but I am stuck. I am using Mike's Smash TV PIC core and components to implement QBAS's velocity scanning matrix for 61 keys. As directed I first undated to the latest MIOS bootstrap loader mios_v1_9f_pic18f452.hex. I used the MPLAB IDE environment to create the hex file, Active perl to create the main.syx and used MIDI-OX to send main.syx to the core. I tried light sensing diodes and mechanical switching both with diodes. I tested the switches with MIOS Studio. I did not use MIDI-OX since it does not give me velocity information. The key on and off works great at the appropriate notes. However all I get is 127 velocity regardless how I swipe the switches. I did not modify any files. Was I suppose to? I figured I better ask before tinkering with code since I don't have a clue what I am doing their. 

Link to comment
Share on other sites

Welcome aboard bach!

There are a few things that I'm not so sure about here...

I am using Mike's Smash TV PIC core

Is it mike's, or smashtv's? They're different!

and components to implement QBAS's velocity scanning matrix for 61 keys. As directed I first undated to the latest MIOS bootstrap loader mios_v1_9f_pic18f452.hex

PIC's bought from Mike or Smash usually have this bootloader installed already... Where did it say to upgrade?

. I used the MPLAB IDE environment to create the hex file,

Which document did you follow to get this instruction? It's very outdated. It should not even work. Perhaps you have old files and old documentation saved on your PC?

Active perl to create the main.syx and used MIDI-OX to send main.syx to the core.

Always use MIOS Studio in Smart Mode with Wait for Upload Request turned on. It's much safer, which is especially important when modifying the bootloader.

I did not use MIDI-OX since it does not give me velocity information.

It should!

The key on and off works great at the appropriate notes. However all I get is 127 velocity regardless how I swipe the switches.

What switches did you use exactly? Velocity sensitive switches are special types of switch with two sets of contacts...

Link to comment
Share on other sites

Quote from  stryd_one 2:06

[shadow=teal,left]Is it mike's, or smashtv's? They're different![/shadow]

SmashTV

Quote from  stryd_one 2:06

PIC's bought from Mike or Smash usually have this bootloader installed already... Where did it say to upgrade

I realize now, the directions in main.asm did not say to update the Bootloader and MIOS. It only mentioned to download and install the MIOS bootstrap loader from http://www.ucapps.de. However, after reading about the bootloader at ucapps, It directed me to update to the newest bootloader and MIOS.

Quote from  stryd_one 2:06

Which document did you follow to get this instruction? It's very outdated. It should not even work. Perhaps you have old files and old documentation saved on your PC?

I got the directions and code from QBAS Copyright Thorsten Klose documentation less than a year ago at http://www.avishowtech.com/mbhp/files/sm_16x16_vel.zip. It is still there.

I found this from a design concept forum dated 2006-10-16. I find the forum by searching "velocity scanning matrix" and choosing Sound Duke. I have not been able to find this topic in a newer forum (other than distant differences between sharps and naturals). Pointing me to newer forum would be very welcomed.

Quote from  stryd_one 2:06

Always use MIOS Studio in Smart Mode with Wait for Upload Request turned on. It's much safer, which is especially important when modifying the bootloader.

Thanks for the tip! When updating, I was in smart mode but did not check "wait for upload request before starting upload".

Quote from  stryd_one 2:06

What switches did you use exactly? Velocity sensitive switches are special types of switch with two sets of contacts...

I am using the Fairchild QRB1113 QRB1114 (I don't know the difference between the two). It is a reflective sensor with an enclosed infrared diode and phototransitor  They can be found at Mouser. They are thin enough to place two beside each other within the distance of one key (even a black key). I plan to use stainless steel or copper 1/2 strapping to reflect the IR diode into the phototransistor. For now with testing, I move an angled white card in front of two units to create the two signals needed for each key.

I also tried manually tripping the two contacts on the prototype board with the same results. I found it is improtant which switch is activated first.

The two sided prototype board with the sensors is about 1 inch wide by one octive long. It is attached to another one sided prototype board at right angles. The board is about 4 inches and contains the traces for the matrix and power for the diodes in the sensor. It also contains the necessary switching diodes. For now, I made the wider prototype board only one octive wide since I knew I would be changing the design. I already found mistakes and needed improvements. Eventually it will be a bit less than three feet long for the five octives. 

With support, these prototype boards will hold the units at the approprioate width and distance from the angled strap attached to each key. I got keyboards from Organ Supplies Industries at Erie PA US. They are more reasonably priced when when you assemble the keyboards yourself. They have about an 18 inch fulcum which reduces differences between black and white keys velocity. The people at Organ Supplies Industries were very kind to supply me even though they are a wholesaler.   

I was incorrect when I said I did not modify the code. I added the PATH_INFO to MIOS Skeleton Small.mcp. I placed the files under c:\ . The programs don't seem to like long paths.

Link to comment
Share on other sites

I'm afraid I'll need to leave this to you and qbas :( ... It's custom code, requiring an outdated toolchain, with custom hardware that has not been confirmed working... kinda out of my area of expertise heheh

Good luck! Please keep us posted with your progress as this sounds really interesting!

Link to comment
Share on other sites

  • 3 weeks later...

Hi - nice to see the forum again!

If I can still something help please let me know.

Maybe you have old version of code, or an error on pcb with switches...

Code has protection: if you press only first switch without second, note on will not be send. The same is with second switch. But if you press first switch and after this second then (for sure) you will have note on message at MIDI out. So if you get a note always with 127 velocity then probably you have minimal time delay between switches (maybe an short on pcb witch switches?) I`m open to talk about possible errors.

By almost 3 years I did about 6 different versions for 6 different matrixes. From about 2 years I`m not changing main part of code, but only adjusted matrix to different types of keyboards.

Like styrd_one said this custom project was never documented, commented, and finished, but I`m using my 88keys keyboard from about two years with great results (excluding not finished box, still not added Roland pitch/mod joy, without standard panel functions like transpose, velocity curves etc. what is planned in future).

p.s. Great to see that this site is growing constantly.

Link to comment
Share on other sites

Great to talk with you. Thank you for replying.

I got your software and directions from Smash TV site http://www.avishowtech.com/mbhp/files/sm_16x16_vel.zip

Both MIOS Studio and MIDI-OX show note on and velocity 127 when both switches on. I can control speed on switch 1 and 2 on from milli second to seconds but always 127 velocity. Note off message is given when two or both are off.

I am using photo diodes and transitor for switches. However, I also tried manual switching with same results. I tried on two different Smash TC cores using same AIN and AOUT modules with same results.

If there is newer implementation, please tell me how to obtain. I would prefer to use Roland standard 64 matrix if available. However, I can implement any matrix since I am building my own keyboard electronic single and dual layer copper boards.

Does code have ability for log, exp etc velocity change?

Thanks for sharing your work. There is on one else than you has developed and shared velocity scanning matrix software.  :)

Link to comment
Share on other sites

I forgot to mention I am using a 64 bit computer with Vista home 64. I was having a lot of trouble with my older XP laptop. I will try to create the main.syx in a 32 bit machine and download to the core. Will try to complete 2/15/2009. I am not home until then. I will let you know the results.

The date on main.asm is 6/28/2006. This looks like the newest date. The oldest date is main.syx 6/26/2004.

I apologize for the question on velocity curves. I finally read your plan for the future.  :-[

Roland style is 16 rows by 8 columns parallel

I did not make schmatics. I attached test layout I created. This is top 13 note octive. There are some errors (mostly which note is which). Single layer board bottom two are input. Top two are ouput. Only using three ouput on top for top 13 notes. Diodes are input and bottom. Dual layer attaches 45 degree from single using 45 degree connectors. Wire is used to connect ouptut to connector blocks.   

Keyboard Proto Type F.pdf

Keyboard Proto Type F.pdf

Link to comment
Share on other sites

OK I see that you are not limited by hardware matrix since you can build it from scratch.  I can send you code that I actually use, or even more for 3 different matrixes. E-mail just was sent. If one from these newer version files will work for you then maybe better will be to replace hosted version?

Does code have ability for log, exp etc velocity change?

No. Unfortunately I don`t know how to put this kind of calculations (it will be nice to smoothly change response by parameter in realtime), but it is possible to switch different tables witch prepared velocity response.

I not finish polishing my own table for fatar88 keyboard, it mean from over one year I have too soft touch response, but it is nice to playing.

(I everyday move this job for tomorrow :D)

I will try to create the main.syx in a 32 bit machine and download to the core.

The date on main.asm is 6/28/2006. This looks like the newest date. The oldest date is main.syx 6/26/2004.

Opps I`m sorry that I wasted your time! It can be a key for your troubles because generally 3 years ago I used (linux) hex files with great MIOS Studio (on linux) and I`m not converted files to syx format. BUT unfortunately I not deleted syx. I didnt touch this project from over year, (I everyday move this job for tomorrow  :P)

(My music adventure with linux was finish about year ago.)

I apologize for the question on velocity curves. I finally read your plan for the future.

I apologize that I cannot implement that feature, but limitations are too big for me. Switching tables seems to be good workaround, but since I not finished panel witch joy/bender and have now 0 switches, no lcd... I have no possibility to switch notching. Just play keyboard.

Roland style is 16 rows by 8 columns parallel
Great! I know that in some cheaper models of Roland was used fatar keyboard also.

Mine has n x 8 matrix.

I did not make schmatics. I attached test layout I created. This is top 13 note octive. There are some errors (mostly which note is which). Single layer board bottom two are input. Top two are ouput. Only using three ouput on top for top 13 notes. Diodes are input and bottom. Dual layer attaches 45 degree from single using 45 degree connectors. Wire is used to connect ouptut to connector blocks. 
  I dont analyze your borad since I trust you that you know what you do. If you will meet problems then I can try to understand it more.
Link to comment
Share on other sites

Nice to here from you. Thank you for the update you sent by email.

I will not have a chance to check my email for the next two days. I will be traveling for the next two days. I am writing on computer now that does not have access to my email.

I am excited to try out your new code. I would much rather run your code for my pet project than run a black box.

I hope to test the update and inform by next weekend.

Until then, thank you very much.  :D

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...