Objectives :.

The objective of this project is to produce a guitar that fluidly interfaces with any home computer. The guitar will have the unique ability to provide real-time feedback on the user's performance and the user interface will allow the user to correct any problems that may arrise with their technique. Guitar lessons can be quite costly; this provides the Project Whitesnake group with a very accepting target audience, because we believe we can produce both a low cost alternative to lessons and a versatile entertainment device.

Challenges :.

The challenges to producing such a unique device are numerous. Some of the major challenges include creation of a device: that can accurately read fingering information from 11 frets on 6 different strings, that can send this information to the personal computer to be processed in a time-effective manner, and that can efficiently process the information to provide the user with feedback in real-time.

There are obvious limitations to the speed at which one may send, process, and receive information. Due to the limitations on the USB Driver and PIC Microcontroller, one may only use a 4 MHz crystal allowing for 9600 bauds (approximately 600 full posts of 16 bits per second).

To produce a transferrable client that is capable of running on all standard operating systems (Windows, Linux, and MacOS), the group has decided to use Java for developing the tutorial and gaming environments. Due to the fact that Java utilizes an on-the-fly compiler, speeds are variant depending on the client computer. Therefore, it is extremely necessary to minimize the number of gross computations to maximize the efficiency and quality of the software's overall performance.

Progress :.

As of June 19, 2008 the Project Whitesnake group has met the following challenges.

:: Hardware ::

The guitar has had wires routed to the frets and tuning pegs and the interfacing circuit has been developed. The two modular systems are currently separate for testing purposes; however, in the near future, they will need to be put together to ensure proper functionality.

The circuit is composed primarily of a PIC18F4455 microcontroller, a customized USB interfacing circuit, and a series of multiplexors between the frets and microcontroller.

:: Software ::

The software developed to interface with the device has proven to be quite challenging. The device emulates a COM port through a USB connection to the client computer. Java JNI (Java Native Interface) has been used to access native C-libraries to open channel communications with the emulated COM port. The RXTXCOM Libraries are used to actually communicate (read/write) with the COM port via the Java JNI libraries. Because of the complexity of the combined libraries, we have used Log4J (Log For Java) to log all of the data including: all communications with the emulated COM port, all debugging information related to development, and the device status at any given time.

Because a large portion of this project is producing an interface to provide real-time feedback, the Project Nova group believes it would be best to use a pre-existing game library. The game library decided on is LWJGL (Light Weight Java Game Library). The learning and entertainment environments have yet to be developed; however, they are currently top priorty.