Characteristic of Guitar

 

To convert from the pitch frequency to a guitar score written in a comfortable and natural way for a guitarist to play, we need to know some basic characteristics of guitar. Guitarist prefers to play strings within a small area – minimize the finger movement.

 

 

#6

#5

#4

#3

#2

#1

0

82.41

110.00

146.83

196.00

246.94

329.63

1

87.31

116.54

155.56

207.65

261.63

349.23

2

92.50

123.47

164.81

220.00

277.18

369.99

3

98.00

130.81

174.61

233.08

293.66

392.00

4

103.83

138.59

185.00

246.94

311.13

415.30

5

110.00

146.83

196.00

261.63

329.63

440.00

6

116.54

155.56

207.65

277.18

349.23

466.16

7

123.47

164.81

220.00

293.66

369.99

493.88

8

130.81

174.61

233.08

311.13

392.00

523.25

9

138.59

185.00

246.94

329.63

415.30

554.37

10

146.83

196.00

261.63

349.23

440.00

587.33

11

155.56

207.65

277.18

369.99

466.16

622.25

12

164.81

220.00

293.66

392.00

493.88

659.26

13

174.61

233.08

311.13

415.30

523.25

698.46

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 




Figure 1. Guitar notes frequency map

 

For example, C (261.63) is the next note after A (220), a preferred move will be from (3,2) à (2,1) instead of (3, 2) à (3, 5) or (4, 7) à (3, 5), since the distance in the first case is minimized one.

 

Greedy Algorithm

 

Based on such characteristic, we designed our midi notes to guitar score algorithm. The basic philosophy behind the algorithm is actually trying to find a path going through the whole note sequence with every step minimized.  Greedy searching method matches our category perfectly.

 

·        Preprocessing

 

A guitar score is actually a combination of string and cell locations, which can be perfectly represented by a two-dimension array – x-axis is the location of cell, y-axis is the location of string.

 

One guitar pitch frequency can be mapped to several points on the figure 1, some combination of string and cell generate the same pitch frequency. A flexible-length collection structure needs to be used here to store all the possible locations, which can generate the same frequency given a pitch value in the note sequence.

 

·        Detail Algorithm

 

FIND-GREEDY-POINT

Figure 2. Greedy point searching algorithm

 

SEARCH-GREEDY

Figure 3. Recursive function to find the minimized cost in every step

 

 

System Diagram

 

Input: wave/midi data

Output: guitar score / generated MIDI from FFT result

             

Figure 4. System Diagram

 

 

User Manual

 

(1). Before you run our program, please make sure you have already installed the Java SDK 1.4 or above on your machine. You can download Java 2 Platform, Standard Edition (J2SE) 1.4.2 from http://java.sun.com/j2se/1.4.2/download.html. After you finish install it, you have to set up a PATH environment towards to the bin directory of Java home directory. For Windows 2000 user, right click “My Computer” icon, choose “Property” à “Advanced”à”Environment Variable”, you either can set PATH variable for system or your own account only. Press “Add” if there is no PATH entry or “Edit” if there is. Add the entry point to the bin directory of your JDK home directory.

 

(2). Unzip the ISE599.zip package at any directory you like. In the dos prompt window, go to the unzipped directory, type “java –jar ISE599.jar” to the run the program.

 

(3). There are buttons,

Load text file – generate guitar score from the text input

Load midi file – generate guitar score from midi input

Convert to midi from text file – generate midi from text file, which is the result of FFT









The University of Southern California does not screen or control the content on this website and thus does not guarantee the accuracy, integrity, or quality of such content. All content on this website is provided by and is the sole responsibility of the person from which such content originated, and such content does not necessarily reflect the opinions of the University administration or the Board of Trustees