Virtual Piano – A Lesson to Learn
Computer and programming was my fascination from my childhood. During my 8th standard summer vacation I went for a course in NIIT for basic computer course on Windows and it’s applications. During that time, I started my programming on BASIC and Quick BASIC. 2 years later, I got introduced to C programming at the age of 15 during my summer vacation after 10th Class. I went for a short term course in a computer institute in our town. The idea was to keep me occupied during my summer vacation. But soon C programming became my passion and spent a lot of time and energy on that. Slowly my programming, design skills and logic development improved. Within a few months, I ventured into studying OOPs and C++. That was an exciting journey as well.
Consequently, in my 11th Standard, I specifically chose Computer Science as one of my subjects. Because of my interest and passion, I did exceptionally well in computer science all throughout my studies.
In 12th Standard, all of the computer science students were supposed to do a project wherein we have to develop an application. It was a great opportunity for me to express my passion which I’ve harnessed for almost 2 years.
Music and Piano have been another area where I was passionate, so I decided to design and develop a “Virtual Piano”. The purpose of the application is simple, it will allow the user to play a piano tone on the computer screen using Keyboard or Mouse.
The application was designed and programmed completely in Borland C++ 5. There was very limited graphics capability in the built-in to the compiler libraries. With no additional 3rd party libraries or graphics framework to work with, the next challenge was to build your own UI framework with what was available. There were no UI builder or designer to build UI from read-to-use drag and drop elements. With all these constraints, it was quite challenging to develop a
Realistic 3D appearance was rendered using 2D shapes, shadows and projection techniques. Windows, Dialog Boxes, Title Bars, Buttons, Piano keys and other elements were all rendered using the same 2D technique.
As can be seen from the screenshot, the normal keys and pressed key (C1) are distinguished using 2D projection technique.
- 4 Octave Keyboard with monophonic support
- Current Date/Time displayed
- Current played Key Information – Key and Frequency
- 5 built-in demos of popular songs
- Record/Playback of a song, Save and Load of a recorded song
- Utilities – Calendar, Clock, Shuffle game and screensavers
Here’s a video demo of the Virtual Piano in Action.
Virtual Piano application can be downloaded from this link.
To run Virtual Piano in Modern Windows OS, you need to have a DOS Emulator Software. DosBox is an excellent emulator that can be downloaded from here.
The development of this application was an excellent exercise for the brain. With the completion of this, a lot of learning and insights on application development was acquired. All of my school teachers were extremely appreciative of achieving such a feat in a short span especially when having loads of other things-to-do in 12th Board exam.
Finally, my older brother took up this application and put up a small website to sell this software. He got his first order from Chennai.
Now looking back at this application which was developed 20 years back, it still gives me a great joy that this challenge was not given up at no point during development with no project managers, product managers, people managers, technical leaders or QA team to track, guide, validate and verify. The greatest lesson we can learn from this is that we can all achieve far beyond what we think we can do. Sometimes, our past experiences are an impediment to future growth.
Let’s this story inspire you to go for your best and don’t limit yourselves!