Author |
Message |
State Machine
Janitor


Joined: Apr 17, 2006 Posts: 2809 Location: New York
Audio files: 24
|
Posted: Sat Oct 25, 2008 7:44 am Post subject:
Integrated Keyboard Controller (IKC) DIY Project Subject description: build a combined analog CV and MIDI controller keyboard ....... |
 |
|
After months of development, Dan “Antman” Lavin and I, Bill Manganaro, finally present the “Integrated Keyboard Controller” or better known as IKC to the members electro-music and the DIY sub-forum “Microcontrollers and Programmable Logic. The IKC is a project that fellow forum members can build and use as their “master” keyboard that interfaces with their voltage controlled modular synthesizer systems and/or MIDI sound modules. The project originally started as a challenge by Scott Stites to design a PCB layout for the Thomas Henry “Digital Keyboard”. This link below takes you there.
http://electro-music.com/forum/topic-17815.html
That thread then ended up linking to this thread as the original thread began to take a turn towards the “IKC” project. I took the challenge of making a printed circuit board for this project a bit further than expected as I realized, although the original design is very good, I thought it could be “modernized” or built upon by integrating or streamlining many of its digital sections into a single chip while at the same time, adding to it extended analog functionality, use of larger keyboards (up to 5 octaves), and some basic MIDI interfacing. This is where the “integrated” part of the name came from. I also realized two other things. The first being that the DIY synthesizer community really needed a more “full featured” analog keyboard controller design with multiple analog modulation sources and include basic MIDI capability. The other thing I realized was that I wanted to present a project that utilized the technology of using programmable logic in the design in the IKC. Yes, I could have coded the design in assembler, BASIC, or “C” or some other high level language and left the job to a microcontroller but did not want to do this.
Briefly, programmable logic design uses highly integrated standardized logic IC’s with general purpose digital building blocks, advanced interconnect matrixes, and large amounts of digital I/O. The user then defines its functions through a design entry process utilizing special integrated development software package. I used Xilinx “Webpack ISE”, available totally for FREE.
http://www.xilinx.com/
The design is then synthesized and sized fit the target chip, an XC95108 for this design, using the software’s device fitter. A programming file is generated that represents the finished design (a JEDEC file). This file is then programmed or “flashed” into a chip using a JTAG downloader cable you can get for about $25.00 USD.
http://www.renaelectronics.com/index.html
http://www.xilinx.com/products/devkits/HW-USB-II-G.htm
http://www.xilinx.com/support/documentation/xc9500.htm
This approach replaces the technique of using many discreet hardwired “building block” logic IC’s such as the ubiquitous “CD4000” or “74xx00” series we all come to know and love. I would guess that a great many of us, like myself, started designing some of our first logic circuits using these logic families then started moving into the 8-bit microprocessor arena and started mixing the two technologies. Partitioning what was coded in the processor and what became hardware then became the challenge. Using programmable logic was the methodology used for designing the IKC core digital logic and is a common practice in the industry today. I used a mix of “Very High Speed Integrated Ciruit Hardware Description Language” or “VHDL” and “Schematics” for the IKC design entry process and made circuit design changes as easy as changing code or a schematic then re-synthesizing and flashing onto the chip in circuit. Here is a good explanation and history of VHDL.
http://en.wikipedia.org/wiki/VHDL
What follows is a brief description of the IKC. The full, comprehensive, documentation on how to build and apply the IKC attached to this message and is entitled “IKC Build and Engineering Drawings”. An excerpt from this document follows:
“The Integrated Keyboard Controller (IKC) is a low cost, high quality, circuit board that can be used as the main functional building block that allows you to build a custom music synthesizer keyboard. The project was inspired by the Thomas Henry digital keyboard project that appeared in one of his early books entitled “Build a Better Music Synthesizer”. Bill Manganaro and Dan Lavin jointly developed the IKC. Bill handled the electronic design and programming duties while Dan did the PC board layout and some of the analog design. Dan was also very helpful in ideas for the design and for that I thank him very much. The IKC can support up to five octaves and will control both your analog and digital music synthesis equipment either simultaneously or separately. It incorporates all the circuits necessary to scan up to a five octave, 61 key matrix, and outputs a tunable 1V/Oct standard control voltage, trigger, gate, and has basic MIDI functionality. The IKC can be paired with the recommended MIDI Channel Changer (MCC) that interfaces directly with the IKC. The MCC is a small form factor circuit board containing four bits of MIDI channel selection logic and two 0.5” high, blue, seven segment LED displays for MIDI channel indication.”
The project also comes at the same time Scott Stites, analog synthesizer extraordinaire and master of the furry breadboard, is developing the “Appendage” versatile Ribbon Controller. The link to the ribbon controller is shown below. I have had the pleasure of working with Scott over the last several weeks on the project designing the PCB layout of this project.
http://electro-music.com/forum/topic-28138.html
I believe that the months ahead will be popular ones for performance controllers appearing on our forum. The “IKC/MCC” and the “Appendage Ribbon Controller” will be perfect together as they can be integrated into one unit or used on their own. We also hope it will inspire others to develop, or continue to develop, their own performance controllers such as this wind controller designed by Ian Fritz.
http://home.comcast.net/~ijfritz/sos_over.htm
There are many fantastic sound generating and sound modifying (VC filters, LFO’s, ADSR’s, etc…) modules out there that have been developed and presented right here on this very forum, these cpntrollers are a perfect match to take control of them and use them expressively to their fullest potential with this and other new contributions to our forum. I believe the “soldering musician” is very alive and all this activity on our forum, and others, are proof of that.
In addition to the IKC build documentation, an IKC price sheet is also attached so that you may consider purchasing your IKC supplies directly from sMs Audio Electronics, a quick view of those prices are shown below but suggest looking at the descriptions in detail. These include PC boards, FULL board parts kits, built and tested MIDI channel changer assemblies, programmed CPLD, or completely built, and calibrated/tested IKC circuit board assemblies. The purchased IKC board can be a complete OEM solution to your own keyboard building business if you wish. The entire project, however, can be completely constructed without any purchase from sMs Audio Electronics at all and is public domain.
The projects source “JEDEC” file, or CPLD configuration file, is also attached to complete the package and is currently at a revision 1.5 so that you can purchase your own blank CPLD and program or “flash” your own chip. The documentation shows you how to do this. All the chips are common in the project and are easily obtained and documented in the IKC build document. A dedicated documentation posting will be added and will be a read only post. As new documentation is added or changed, it will appear there.
NOTE: The CPLD configuration file Keyscan_Vx.x.jed has been renamed to Keyscan_Vx.x.txt so that it can be uploaded to this post. PLEASE CHENGE THE FILE NAME BACK TO A .JED BEFORE USING IT IN THE PROGRAMMING SOFTWARE WHEN FLASHING YOUR IKC CPLD"
Where can you get bare Fatar keyboards? Right from here of course at Analog Haven. Just follow the link below. No longer do you have to get your bare keyboards from overseas. They are right here in the US and they are shipped fast. Europeans can obtain their keyboards directly from Doepfer in Germany.
http://www.analoguehaven.com/doepfer/mke/
IKC and MCC Purchases can be made to my Paypal Account:
billnrob@optonline.net
Shipping is $4.80 USPS Priority mail to US and Canada
All other shipping is $10.00 flat rate to anywhere else in the world.
Price Summary (See Illustrated Price List Attached to This Post)
IKC PCB ……………………….. Cat# IKC_PCB_001 …….………….. $28.00
IKC PARTS KIT ……………... Cat# IKCPARTS001 ………………... $115.00
This kit includes the programmed CPLD (IKC_CPLD_001)
Includes all parts to build the IKC main board:
IC Sockets
Headers
Connector Housings
Crimp terminals
Capacitors
All semiconductors including the programmed CPLD
Resistors and networks
Diodes
Transistors
Trimmer
Everything !!!!
NOTE: builder will need to supply their own front panel and front panel components.
MDI CHANNEL CHANGER ... Cat# MCC_001 …………………….. $26.00
(MIDI Channel Changer - Built and tested)
IKC PROG. CPLD ……………. Cat# IKC_CPLD_001 ……………… $30.00
(PROGRAMMED IKC CPLD with the latest firmware configuration)
IKC COMP. ASSY. …………… Cat# IKC_COMP_PCB_001 ………. $280.00
(Completed, Calibrated, and tested IKC Board not including the MCC which is a separate item)
Each order will include an auto running Multimedia CD-ROM with all documentation, important web links menu, and 3 videos. One video covers programming your CPLD, another discusses downloader cables ,and another video gives you a tour of a 5 octave Fatar Keyboard.
Thanks for reading ………….
Bill
Description: |
|
Filesize: |
1.43 MB |
Viewed: |
1133 Time(s) |
This image has been reduced to fit the page. Click on it to enlarge. |

|
Description: |
My custom front panel for the keyboard that is being built with the sMs "IKC" and MIDI Channel Changer (MCC) electronics. |
|
Filesize: |
1.69 MB |
Viewed: |
1107 Time(s) |
This image has been reduced to fit the page. Click on it to enlarge. |

|
Description: |
Document contaning all the information necessary to build the IKC. |
|
 Download |
Filename: |
IKC Build Document & Engineering Drawings.pdf |
Filesize: |
3.19 MB |
Downloaded: |
1876 Time(s) |
Description: |
Pruce sheet for all IKC products |
|
 Download |
Filename: |
IKC Pricing.pdf |
Filesize: |
1.62 MB |
Downloaded: |
1357 Time(s) |
Description: |
Congiguration file for IKC CPLD chip. After downloading, rename file with -JED as it's extension. The TXT extension will not be recognized by the programming aoftware. |
|
 Download |
Filename: |
keyscan_V1.5.txt |
Filesize: |
99.97 KB |
Downloaded: |
1212 Time(s) |
Last edited by State Machine on Sun Jun 28, 2009 1:27 pm; edited 6 times in total |
|
Back to top
|
|
 |
fonik

Joined: Jun 07, 2006 Posts: 3950 Location: Germany
Audio files: 23
|
Posted: Sat Oct 25, 2008 9:05 am Post subject:
|
 |
|
bill, dan, that's amazing.
i will have to go through the parts list and then decide what to order. (the fatar keyboard is already here!).
great work, boys. _________________
cheers,
matthias
____________
Big Boss at fonitronik
Tech Buddy at Random*Source |
|
Back to top
|
|
 |
johans121

Joined: Jun 19, 2007 Posts: 178 Location: Huntsville, AL (USA)
|
Posted: Sat Oct 25, 2008 9:15 am Post subject:
|
 |
|
WAH WHOOO!!!!!!!!!!!!!
I'm placing my order NOW! |
|
Back to top
|
|
 |
philpeery
Joined: Nov 08, 2006 Posts: 137 Location: new jersey, usa
|
Posted: Sat Oct 25, 2008 10:50 am Post subject:
|
 |
|
It's here! Awesome job guys!
Couple of quick questions, Bill, and then my order will come your way. Does the pcb come with the full parts kit, or is it a seperate item? Also, does the Midi changer comes as a kit, or is it assembled only?
Looks great, the doc is very clear and detailed as well. Another great one from sMs! A++!
Phil |
|
Back to top
|
|
 |
State Machine
Janitor


Joined: Apr 17, 2006 Posts: 2809 Location: New York
Audio files: 24
|
Posted: Sat Oct 25, 2008 1:44 pm Post subject:
|
 |
|
Quote: | Couple of quick questions, Bill, and then my order will come your way. Does the pcb come with the full parts kit, or is it a seperate item? Also, does the Midi changer comes as a kit, or is it assembled only? |
Thanks for the nice comments BTW. I tell you Dan Lavin is a gem to work with and we both have had a great time building our prototypes through the development. We will be working on the expansion board very soon.
The PCB board and parts can be purchased separately. The parts kit includes ALL PCB parts you will need including all semiconductors and programmed CPLD chip. The headers, housings and crimp terminals are also included to build all you interconnects.
The MCC is re-built and tested. If you prefer to build it we can arrange something but it's really not that exciting to put together. Also, I am working on getting mounting kits together for it with a nice blue filter for the face. That is next but there is enough to get you going for now. When they are available, I will post that as well.
Quote: | Looks great, the doc is very clear and detailed as well. Another great one from sMs! A++! |
Wow, thanks. That truly makes me feel great ! Yes from sMs and Dan the Antman !!!!!!!!!
Bill |
|
Back to top
|
|
 |
State Machine
Janitor


Joined: Apr 17, 2006 Posts: 2809 Location: New York
Audio files: 24
|
Posted: Sat Oct 25, 2008 2:16 pm Post subject:
|
 |
|
Quote: | bill, dan, that's amazing. Very Happy |
Thanks Fonik !!!!
Quote: | i will have to go through the parts list and then decide what to order. (the fatar keyboard is already here!). |
OK, very good. Take your time. Also, I have designed transition boards that will help you connect any Fatar Key-Bed to the IKC. Which Fatar keyboard model do you own?
Thanks again we appreciate it .........
Bill |
|
Back to top
|
|
 |
State Machine
Janitor


Joined: Apr 17, 2006 Posts: 2809 Location: New York
Audio files: 24
|
Posted: Sat Oct 25, 2008 3:01 pm Post subject:
|
 |
|
Quote: | WAH WHOOO!!!!!!!!!!!!!
I'm placing my order NOW! |
Johans, I thank you for your support I will get that together this evening and ship that out on Monday for you.
Bill |
|
Back to top
|
|
 |
Luka

Joined: Jun 29, 2007 Posts: 1003 Location: Melb.
|
|
Back to top
|
|
 |
Dan Lavin

Joined: Nov 09, 2006 Posts: 649 Location: Spring Lake, Mi, USA
Audio files: 21
|
Posted: Mon Oct 27, 2008 7:29 pm Post subject:
My Front Panel Designs |
 |
|
Here's just a couple files outlining how I did my IKC. I modeled my design after the ARP 2600 keyboard. I wish I had made the panel a little wider though as I think our daughterboard will force me to move stuff around to accommodate the width.
The mod wheel uses a grounded center tapped pot so I can feed 2 separate LFO's into each end of the pot and access each by turning the wheel forward for one LFO and pulling it back towards me for the other LFO. The detent of the pot matches the center tap. I bought this from EML about 30 years ago!
Anyway, there's a million ways to design the keyboard case and front panel and it's probably the most fun part of the project!
-Dan
Description: |
|
Filesize: |
1.1 MB |
Viewed: |
1046 Time(s) |
This image has been reduced to fit the page. Click on it to enlarge. |

|
Description: |
|
 Download |
Filename: |
IKC panel.fpd |
Filesize: |
2.07 KB |
Downloaded: |
1108 Time(s) |
|
|
Back to top
|
|
 |
fonik

Joined: Jun 07, 2006 Posts: 3950 Location: Germany
Audio files: 23
|
Posted: Tue Oct 28, 2008 6:36 am Post subject:
|
 |
|
ordered! thank's guys.
the build of a performance keyboard synth is my major goal for the next year (will have to reduce my backlog, though).
it will then incorporate the IKC and the appendage controller -  _________________
cheers,
matthias
____________
Big Boss at fonitronik
Tech Buddy at Random*Source |
|
Back to top
|
|
 |
State Machine
Janitor


Joined: Apr 17, 2006 Posts: 2809 Location: New York
Audio files: 24
|
Posted: Wed Oct 29, 2008 12:47 pm Post subject:
|
 |
|
Quote: | Anyway, there's a million ways to design the keyboard case and front panel and it's probably the most fun part of the project! |
Thanks for posting the picture Dan. I was up to my limit of attachments in my opening post.
I agree with your statement above BTW. the user can create any type of control panel to suit the need. In fact the IKC can be connected to an array of 64 switches and use it as a MIDI controller to trigger any event in, for example, a software synthesizer. The documentation shows you how to do this.
Although my documentation has one interconnect diagram, on can as creative as they want with the IKC. I decided to create 3 way multi's for the GATE/TRIGGER and CV outputs, as you did Dan, on my front panel. In addition, a foot pedal can change velocity over MIDI and/or the analog control voltage.
Bill |
|
Back to top
|
|
 |
Dan Lavin

Joined: Nov 09, 2006 Posts: 649 Location: Spring Lake, Mi, USA
Audio files: 21
|
Posted: Wed Oct 29, 2008 7:08 pm Post subject:
|
 |
|
Here's few recordings I made while running my IKC thru it's paces for the first time. Most of these solos are just 1 or 2 fingers. I was mainly checking for the high note priority by holding a top note then playing a 2nd note under the first. My apologies for the un-professional playing...nothing was prepared.
The analog synths were 2 Thomas Henry SN-Voices. The midi synth is an old Emu Proteus 1/Pop playing piano and xylophone sounds.
Description: |
This is the SN Voice showing the portamento and high note priority. The second part uses the LFO from SN Voice #2 to modulate the octave shift function. You can really go crazy with octave modulation on top of regular modulation. I had much crazier sou |
|
 Download |
Filename: |
IKCanalogControlexamples.mp3 |
Filesize: |
1.92 MB |
Downloaded: |
1260 Time(s) |
Description: |
This is a 2 finger solo on the Proteus 1....but only 1 finger is moving. The other is holding a higher note while the 2nd finger hits lower notes. |
|
 Download |
Filename: |
IKCMidiControlexamples.mp3 |
Filesize: |
941.63 KB |
Downloaded: |
1163 Time(s) |
Description: |
This is the IKC controlling a Proteus 1 with midi but with the SN Voices LFOs driving the octave inputs. So this is literally a 1 finger solo on one key. Now if you were to mix up the notes a bit, you could do a really easy accompaniment on one hand wit |
|
 Download |
Filename: |
ikcMidiControlOctaveShift.mp3 |
Filesize: |
948.16 KB |
Downloaded: |
1210 Time(s) |
|
|
Back to top
|
|
 |
philpeery
Joined: Nov 08, 2006 Posts: 137 Location: new jersey, usa
|
Posted: Wed Oct 29, 2008 11:37 pm Post subject:
|
 |
|
Ya-HOO! Just ordered my pcb, parts kit, and midi changer! Can't wait! I WILL post pics of my build...!
Phil |
|
Back to top
|
|
 |
Uncle Krunkus
Moderator

Joined: Jul 11, 2005 Posts: 4761 Location: Sydney, Australia
Audio files: 52
G2 patch files: 1
|
Posted: Thu Oct 30, 2008 3:16 am Post subject:
|
 |
|
Congratulations guys on a great project!
Truly inspiring vision and implementation.
I can't afford to buy anything for a little while (besides, the AU$ just shat itself! ) But a project like this would definitely be heaps of fun to look forward to.
You have my admiration and best wishes.  _________________ What makes a space ours, is what we put there, and what we do there. |
|
Back to top
|
|
 |
State Machine
Janitor


Joined: Apr 17, 2006 Posts: 2809 Location: New York
Audio files: 24
|
Posted: Fri Oct 31, 2008 6:20 am Post subject:
|
 |
|
Quote: | Congratulations guys on a great project!
Truly inspiring vision and implementation.
I can't afford to buy anything for a little while (besides, the AU$ just shat itself! Laughing ) But a project like this would definitely be heaps of fun to look forward to.
You have my admiration and best wishes. |
Andy, I can't say enough to thank you and you have always been a perfect gentleman.
I wish to get more details on your power supply project also and mate it with the IKC. Your DIY supply and this project may perhaps make a good pair. You can PM me on any details if you would like.
Bill |
|
Back to top
|
|
 |
State Machine
Janitor


Joined: Apr 17, 2006 Posts: 2809 Location: New York
Audio files: 24
|
Posted: Fri Oct 31, 2008 6:22 am Post subject:
|
 |
|
Quote: | a-HOO! Just ordered my pcb, parts kit, and midi changer! Can't wait! I WILL post pics of my bu |
All packed and shipping today sir !!!!!! Thanks !
Bill |
|
Back to top
|
|
 |
richardc64

Joined: Jun 01, 2006 Posts: 677 Location: NYC
Audio files: 26
|
Posted: Fri Oct 31, 2008 8:42 am Post subject:
|
 |
|
Looks like excellent work -- as usual -- from both Bill and Dan. Me, I'm holding out for polyphony, or at least two-voice.
Dan, is that the Cherry you mentioned? Looks great. _________________ Revenge is a dish best served with a fork... in the eye |
|
Back to top
|
|
 |
State Machine
Janitor


Joined: Apr 17, 2006 Posts: 2809 Location: New York
Audio files: 24
|
Posted: Fri Oct 31, 2008 9:20 am Post subject:
|
 |
|
Quote: | Looks like excellent work -- as usual -- from both Bill and Dan. Me, I'm holding out for polyphony, or at least two-voice.
|
Richard,
Thanks man ! Polyphony sounds like something I would like to tackle on the next controller. I would also like to take advantage of the Fatar keyboard's dual switching (MAKE-BREAK) contacts for velocity sensing.
Hinton Instruments ,however, makes these velocity sensitive keyboard chips if your ever interested in "rolling" your own:
http://www.hinton-instruments.co.uk/components/kv64/index.htm
Here is an 88 note KB scanner example using the KV64 chip:
http://www.hinton-instruments.co.uk/images/components/kv64_kbd88.gif
Thanks again for the compliment
Bill
[/right] |
|
Back to top
|
|
 |
Blue Hell
Site Admin

Joined: Apr 03, 2004 Posts: 24005 Location: The Netherlands, Enschede
Audio files: 274
G2 patch files: 320
|
Posted: Fri Oct 31, 2008 2:52 pm Post subject:
|
 |
|
State Machine wrote: | I was up to my limit of attachments in my opening post. |
First things first ... congrats on the keyboard, good to see it come alive!
Some good news : I upped your quota once more.
Then the bad news ... this is the last up I could do (given the current quota system). _________________ Jan
also .. could someone please turn down the thermostat a bit.
 |
|
Back to top
|
|
 |
Dan Lavin

Joined: Nov 09, 2006 Posts: 649 Location: Spring Lake, Mi, USA
Audio files: 21
|
Posted: Sun Nov 02, 2008 6:14 am Post subject:
|
 |
|
Bill,
The Hinton stuff does look exciting at first glance, but it uses the old changeover type key contacts instead the newer parallel bubble contacts used by Fatar and similar keyboards produced today.
[quote Dan, is that the Cherry you mentioned? Looks great.[/quote]
Thanks, Richard! Yes it is the "found" cherry wood that my father-in-law had. Fortunately I have broken him of his oak habit for everything!
regards,
Dan |
|
Back to top
|
|
 |
State Machine
Janitor


Joined: Apr 17, 2006 Posts: 2809 Location: New York
Audio files: 24
|
Posted: Sun Nov 02, 2008 7:50 am Post subject:
|
 |
|
Quote: | First things first ... congrats on the keyboard, good to see it come alive!
Some good news : I upped your quota once more.
Then the bad news ... this is the last up I could do Shocked (given the current quota system). |
Thanks Jan, well appreciated. It's not usual to have that many attachments but very handy when several documents need to be attached. That will change soon and dragged my feet long enough.
Bill |
|
Back to top
|
|
 |
State Machine
Janitor


Joined: Apr 17, 2006 Posts: 2809 Location: New York
Audio files: 24
|
Posted: Sun Nov 02, 2008 7:56 am Post subject:
|
 |
|
Quote: | The Hinton stuff does look exciting at first glance, but it uses the old changeover type key contacts instead the newer parallel bubble contacts used by Fatar and similar keyboards produced toda |
And so it is, Now I wonder why they would still be marketing something that would be of little use for today's keyboard standards? As Richard pointed out, the scanning is only part of the solution. Besides, my scanner chip is only $30.00 USD, theirs is 34 British Pounds, quite a bit more.
Bill |
|
Back to top
|
|
 |
fonik

Joined: Jun 07, 2006 Posts: 3950 Location: Germany
Audio files: 23
|
Posted: Sat Nov 08, 2008 5:03 am Post subject:
|
 |
|
parts arrived save and sound. this is a great motivation for me to clean my workbench by finishing all open projects, and to start building my keyboard synthesizer (monofonik, minifonik, profonik ???)  _________________
cheers,
matthias
____________
Big Boss at fonitronik
Tech Buddy at Random*Source |
|
Back to top
|
|
 |
State Machine
Janitor


Joined: Apr 17, 2006 Posts: 2809 Location: New York
Audio files: 24
|
Posted: Sat Nov 08, 2008 8:49 am Post subject:
|
 |
|
Quote: | parts arrived save and sound. this is a great motivation for me to clean my workbench by finishing all open projects, and to start building my keyboard synthesizer (monofonik, minifonik, profonik ???) |
Great news ..... I kind of like the "Monofonik" name myself .....
Thanks -- and feel free to ask any questions you need to get you through the project ........
Bill |
|
Back to top
|
|
 |
Sound
Joined: Jun 06, 2006 Posts: 842
Audio files: 1
|
Posted: Wed Nov 26, 2008 12:30 pm Post subject:
|
 |
|
OMG! I just have seen this thread! One question, in the MIDI mode is it possible to split the keyboard? |
|
Back to top
|
|
 |
|