SlideShare a Scribd company logo
CombinoChord: Project Defense
CombinoChord
Graduate Research Project Defense
Nicholas Smith
CPSC 597 | California State University Fullerton 1/34
CombinoChord: Project Defense
Outline
Introduction
The Problem
Objectives
Significance
Related Research
Assumptions
Methodology
Heuristic
Fretboard Model
Hand Model
Sound Quality
Pre-Processing
Filtering
Multi-Threading
Android
Results
Analysis
Summary
CPSC 597 | California State University Fullerton 2/34
CombinoChord: Project Defense
Introduction
• Project Overview
• Key Terms:
– Guitar: A Stringed Instrument
– Guitar Strings & Fretboard
– Fret position
CPSC 597 | California State University Fullerton 3/34
CombinoChord: Project Defense
Figure 1: An Electric Guitar
CPSC 597 | California State University Fullerton 4/34
CombinoChord: Project Defense
The Problem
Generate guitar chords based on the following parameters:
• The number of strings
• The number of frets
• The tuning of the strings
• The guitar setup
• The player’s hand
• The chord to play
CPSC 597 | California State University Fullerton 5/34
CombinoChord: Project Defense
Objectives
Goals for the system:
• Search for chords within 5 seconds for normal guitar configurations
• Use guitar tablature notation
• Conventional fingerings should be assigned a high score
CPSC 597 | California State University Fullerton 6/34
CombinoChord: Project Defense
Significance
Non-triviality:
• Guitar layout
• Definition of “goodness”
Brute force is unsatisfactory for two primary reasons:
1. There are a large number of possibilities
2. Most possibilities are undesirable
CPSC 597 | California State University Fullerton 7/34
CombinoChord: Project Defense
Significance
Brute force approach:
4
i=0
[2i
×
i−1
j=0
(n − j)] = 16n4
− 88n3
+ 156n2
− 82n + 1
Where n = s × f is the number of fret positions on the guitar, s is the
number of strings on the guitar, and f is the number of frets.
CPSC 597 | California State University Fullerton 8/34
CombinoChord: Project Defense
Significance
Example for acoustic guitar:
4
i=0
[2i
×
i−1
j=0
(120 − j)] ≈ 3.17 × 109
.
CPSC 597 | California State University Fullerton 9/34
CombinoChord: Project Defense
Related Research
• Two similar papers:
– Graph theory based approach: Norman and Grozman from
KTH Royal Institute of Technology [2]
– Evolutionary based approach: Tuohy and Potter from UGA [3]
• Similar Android apps
CPSC 597 | California State University Fullerton 10/34
CombinoChord: Project Defense
Existing Solutions
• Existing apps use static databases
• Drawbacks:
1. Cannot adapt to guitar tuning
2. Cannot adapt to guitar configuration
3. Cannot adapt to the user’s hand
4. Chord ordering is fixed
5. Substantial upfront work
CPSC 597 | California State University Fullerton 11/34
CombinoChord: Project Defense
Existing Solutions
• CombinoChord:
1. Can adapt to guitar tuning
2. Can adapt to guitar configuration
3. Can adapt to the user’s hand
4. Chord ordering is not fixed
5. No upfront work (besides mine)
CPSC 597 | California State University Fullerton 12/34
CombinoChord: Project Defense
Assumptions
• Thumb is not considered
• Only runs on Android
• Core can run on JVM
CPSC 597 | California State University Fullerton 13/34
CombinoChord: Project Defense
Methodology
Overview:
• Notation
• Heuristic Function
• Fretboard Model
• Hand Model
• Sound Quality
• Preprocessing
• Filtering
• Multi-threading
• Android Programming
• Results
• Analysis
CPSC 597 | California State University Fullerton 14/34
CombinoChord: Project Defense
Heuristic
Define a heuristic function that considers:
1. Anatomical distance-based score
2. Sound quality score
CPSC 597 | California State University Fullerton 15/34
CombinoChord: Project Defense
Fretboard Model
• Define fretboard in R2
• Given first fret size, compute size of other frets
• Distance between strings
• Use euclidean distance p
CPSC 597 | California State University Fullerton 16/34
CombinoChord: Project Defense
Hand Model
Input table of max and min comfortable range values:
Finger 1 Finger 2 Min Range (mm) Max Range (mm)
1 2 5.0 80.0
1 3 15.0 95.0
1 4 25.0 110.0
2 3 6.0 52.0
2 4 12.0 69.0
3 4 8.5 47.0
CPSC 597 | California State University Fullerton 17/34
CombinoChord: Project Defense
Hand Model
Use a score function:
SF(x, a, b) =



1 + (x − 0.99a)3 x < a
1 − ((x − 0.99a)/(1.01b − 0.99a))2 x ≥ a.
Where a and b are the min and max range values for the pair of fingers
respectively, and x is the distance between the pair of fingers.
CPSC 597 | California State University Fullerton 18/34
CombinoChord: Project Defense
20 40 60 80
0.5
1
x
y
Figure 2: Plot of SF
CPSC 597 | California State University Fullerton 19/34
CombinoChord: Project Defense
Hand Model
• Average SF over all pairs used
• Use best choice of fingers
• Only need to consider case where fingers don’t cross
• For 3: {1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}
CPSC 597 | California State University Fullerton 20/34
CombinoChord: Project Defense
Sound Quality
• Unison notes
• Number of mutes
• Number of strings played
CPSC 597 | California State University Fullerton 21/34
CombinoChord: Project Defense
Pre-Processing
• Only consider fret-positions that produce notes in chord
• Drastically reduces size of state space
• CM7 on an acoustic:
4
i=0
[2i
×
i−1
j=0
(46 − j)] ≈ 6.34 × 107
.
CPSC 597 | California State University Fullerton 22/34
CombinoChord: Project Defense
Filtering
Idea: At each step we can filter possible fret positions
• Fret positions on same string
• Fret positions out of reach
• pi − pj > MAX
• Fret positions beneath tonic note
CPSC 597 | California State University Fullerton 23/34
CombinoChord: Project Defense
Multi-Threading
Multi-thread the search:
• Sub-tasks based on tonics
• Split ordered list into t parts
• Card dealing method
• Thread pool approach
CPSC 597 | California State University Fullerton 24/34
CombinoChord: Project Defense
150 200 250
0
20
40
60
80
n
Avg.SearchTime(ms)
2 Threads
Thread Pool
Shuffled
Ordered
150 200 250
0
20
40
60
n
Avg.SearchTime(ms)
4 Threads
Thread Pool
Shuffled
Ordered
CPSC 597 | California State University Fullerton 25/34
CombinoChord: Project Defense
Android
• Two packages:
– UI
– domain (to be made open source)
• UI:
– 7 Fragments
– Controlled by main activity
– Searching runs in background
CPSC 597 | California State University Fullerton 26/34
CombinoChord: Project Defense
(a) Home Fragment (b) Guitar Fragment
CPSC 597 | California State University Fullerton 27/34
CombinoChord: Project Defense
(a) Tuning Fragment (b) Hand Fragment
CPSC 597 | California State University Fullerton 28/34
CombinoChord: Project Defense
(a) Chord Fragment (b) Advanced Fragment
CPSC 597 | California State University Fullerton 29/34
CombinoChord: Project Defense
(a) About Fragment (b) Navigation Drawer
CPSC 597 | California State University Fullerton 30/34
CombinoChord: Project Defense
Results
#Strings # Frets Avg. Search Time Std. Search Time
6 12 28.46 ms 19.52 ms
6 20 74.80 ms 41.86 ms
7 12 61.08 ms 51.22 ms
7 20 127.63 ms 53.55 ms
8 12 83.08 ms 51.32 ms
8 20 261.46 ms 161.73 ms
CPSC 597 | California State University Fullerton 31/34
CombinoChord: Project Defense
Analysis
• Times well within goal
• Less than Doherty threshold (400ms) for normal guitars [1]
CPSC 597 | California State University Fullerton 32/34
CombinoChord: Project Defense
Summary
CombinoChord:
• Finds chords well within timing constraints
• Presents guitar tablature notation
• Allows modification of specified parameters
CPSC 597 | California State University Fullerton 33/34
CombinoChord: Project Defense
References
[1] Doherty, Walter J. and Arvind J. Thadhani. "The economic value of
rapid response time." IBM Report (1982)
[2] Vladimir Grozman, and Christopher Norman An Algorithm for Optimal
Guitar Fingering. KTH Royal Institue of Technology, 2013
[3] D.R. Tuohy and W.D. Potter A Genetic Algorithm for the Automatic
Generation of Playable Guitar Tablature. Proceedings of the Inter-
national Computer Music Conference. Artificial Intelligence Center,
University of Georgia Athens, 2005
CPSC 597 | California State University Fullerton 34/34

More Related Content

Similar to pres

Condition Assessment of Concrete Bridge Elements using Active IR Thermography
Condition Assessment of Concrete Bridge Elements using Active IR ThermographyCondition Assessment of Concrete Bridge Elements using Active IR Thermography
Condition Assessment of Concrete Bridge Elements using Active IR Thermography
Jason Cattelino
 
Feature-Oriented Software Evolution
Feature-Oriented Software EvolutionFeature-Oriented Software Evolution
Feature-Oriented Software Evolution
Leonardo Passos
 
A vision-based uncut crop edge detection method for automated guidance of hea...
A vision-based uncut crop edge detection method for automated guidance of hea...A vision-based uncut crop edge detection method for automated guidance of hea...
A vision-based uncut crop edge detection method for automated guidance of hea...
Institute of Agricultural Machinery, NARO
 
Fault-tolerant topology and routing synthesis for IEEE time-sensitive network...
Fault-tolerant topology and routing synthesis for IEEE time-sensitive network...Fault-tolerant topology and routing synthesis for IEEE time-sensitive network...
Fault-tolerant topology and routing synthesis for IEEE time-sensitive network...
Voica Gavrilut
 
Systems Engineering Update - Dr. Ron Sega
Systems Engineering Update - Dr. Ron SegaSystems Engineering Update - Dr. Ron Sega
Systems Engineering Update - Dr. Ron Sega
INCOSE Colorado Front Range Chapter
 
DFT_Training Course
DFT_Training CourseDFT_Training Course
DFT_Training Course
Mauricio Castro
 
Diploma Thesis Presentation
Diploma Thesis PresentationDiploma Thesis Presentation
Diploma Thesis Presentation
ChristosSpyridakis1
 
Guardian Lessons Learned H4D Stanford 2016
Guardian Lessons Learned H4D Stanford 2016Guardian Lessons Learned H4D Stanford 2016
Guardian Lessons Learned H4D Stanford 2016
Stanford University
 
Guardian Lessons Learned Final
Guardian Lessons Learned FinalGuardian Lessons Learned Final
Guardian Lessons Learned Final
H4Diadmin
 
Engineering Optimization_Introduction-guest lecture.pptx
Engineering Optimization_Introduction-guest lecture.pptxEngineering Optimization_Introduction-guest lecture.pptx
Engineering Optimization_Introduction-guest lecture.pptx
MohDedyIndraSetiawan
 
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live foreverPGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam
 

Similar to pres (11)

Condition Assessment of Concrete Bridge Elements using Active IR Thermography
Condition Assessment of Concrete Bridge Elements using Active IR ThermographyCondition Assessment of Concrete Bridge Elements using Active IR Thermography
Condition Assessment of Concrete Bridge Elements using Active IR Thermography
 
Feature-Oriented Software Evolution
Feature-Oriented Software EvolutionFeature-Oriented Software Evolution
Feature-Oriented Software Evolution
 
A vision-based uncut crop edge detection method for automated guidance of hea...
A vision-based uncut crop edge detection method for automated guidance of hea...A vision-based uncut crop edge detection method for automated guidance of hea...
A vision-based uncut crop edge detection method for automated guidance of hea...
 
Fault-tolerant topology and routing synthesis for IEEE time-sensitive network...
Fault-tolerant topology and routing synthesis for IEEE time-sensitive network...Fault-tolerant topology and routing synthesis for IEEE time-sensitive network...
Fault-tolerant topology and routing synthesis for IEEE time-sensitive network...
 
Systems Engineering Update - Dr. Ron Sega
Systems Engineering Update - Dr. Ron SegaSystems Engineering Update - Dr. Ron Sega
Systems Engineering Update - Dr. Ron Sega
 
DFT_Training Course
DFT_Training CourseDFT_Training Course
DFT_Training Course
 
Diploma Thesis Presentation
Diploma Thesis PresentationDiploma Thesis Presentation
Diploma Thesis Presentation
 
Guardian Lessons Learned H4D Stanford 2016
Guardian Lessons Learned H4D Stanford 2016Guardian Lessons Learned H4D Stanford 2016
Guardian Lessons Learned H4D Stanford 2016
 
Guardian Lessons Learned Final
Guardian Lessons Learned FinalGuardian Lessons Learned Final
Guardian Lessons Learned Final
 
Engineering Optimization_Introduction-guest lecture.pptx
Engineering Optimization_Introduction-guest lecture.pptxEngineering Optimization_Introduction-guest lecture.pptx
Engineering Optimization_Introduction-guest lecture.pptx
 
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live foreverPGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
 

pres

  • 1. CombinoChord: Project Defense CombinoChord Graduate Research Project Defense Nicholas Smith CPSC 597 | California State University Fullerton 1/34
  • 2. CombinoChord: Project Defense Outline Introduction The Problem Objectives Significance Related Research Assumptions Methodology Heuristic Fretboard Model Hand Model Sound Quality Pre-Processing Filtering Multi-Threading Android Results Analysis Summary CPSC 597 | California State University Fullerton 2/34
  • 3. CombinoChord: Project Defense Introduction • Project Overview • Key Terms: – Guitar: A Stringed Instrument – Guitar Strings & Fretboard – Fret position CPSC 597 | California State University Fullerton 3/34
  • 4. CombinoChord: Project Defense Figure 1: An Electric Guitar CPSC 597 | California State University Fullerton 4/34
  • 5. CombinoChord: Project Defense The Problem Generate guitar chords based on the following parameters: • The number of strings • The number of frets • The tuning of the strings • The guitar setup • The player’s hand • The chord to play CPSC 597 | California State University Fullerton 5/34
  • 6. CombinoChord: Project Defense Objectives Goals for the system: • Search for chords within 5 seconds for normal guitar configurations • Use guitar tablature notation • Conventional fingerings should be assigned a high score CPSC 597 | California State University Fullerton 6/34
  • 7. CombinoChord: Project Defense Significance Non-triviality: • Guitar layout • Definition of “goodness” Brute force is unsatisfactory for two primary reasons: 1. There are a large number of possibilities 2. Most possibilities are undesirable CPSC 597 | California State University Fullerton 7/34
  • 8. CombinoChord: Project Defense Significance Brute force approach: 4 i=0 [2i × i−1 j=0 (n − j)] = 16n4 − 88n3 + 156n2 − 82n + 1 Where n = s × f is the number of fret positions on the guitar, s is the number of strings on the guitar, and f is the number of frets. CPSC 597 | California State University Fullerton 8/34
  • 9. CombinoChord: Project Defense Significance Example for acoustic guitar: 4 i=0 [2i × i−1 j=0 (120 − j)] ≈ 3.17 × 109 . CPSC 597 | California State University Fullerton 9/34
  • 10. CombinoChord: Project Defense Related Research • Two similar papers: – Graph theory based approach: Norman and Grozman from KTH Royal Institute of Technology [2] – Evolutionary based approach: Tuohy and Potter from UGA [3] • Similar Android apps CPSC 597 | California State University Fullerton 10/34
  • 11. CombinoChord: Project Defense Existing Solutions • Existing apps use static databases • Drawbacks: 1. Cannot adapt to guitar tuning 2. Cannot adapt to guitar configuration 3. Cannot adapt to the user’s hand 4. Chord ordering is fixed 5. Substantial upfront work CPSC 597 | California State University Fullerton 11/34
  • 12. CombinoChord: Project Defense Existing Solutions • CombinoChord: 1. Can adapt to guitar tuning 2. Can adapt to guitar configuration 3. Can adapt to the user’s hand 4. Chord ordering is not fixed 5. No upfront work (besides mine) CPSC 597 | California State University Fullerton 12/34
  • 13. CombinoChord: Project Defense Assumptions • Thumb is not considered • Only runs on Android • Core can run on JVM CPSC 597 | California State University Fullerton 13/34
  • 14. CombinoChord: Project Defense Methodology Overview: • Notation • Heuristic Function • Fretboard Model • Hand Model • Sound Quality • Preprocessing • Filtering • Multi-threading • Android Programming • Results • Analysis CPSC 597 | California State University Fullerton 14/34
  • 15. CombinoChord: Project Defense Heuristic Define a heuristic function that considers: 1. Anatomical distance-based score 2. Sound quality score CPSC 597 | California State University Fullerton 15/34
  • 16. CombinoChord: Project Defense Fretboard Model • Define fretboard in R2 • Given first fret size, compute size of other frets • Distance between strings • Use euclidean distance p CPSC 597 | California State University Fullerton 16/34
  • 17. CombinoChord: Project Defense Hand Model Input table of max and min comfortable range values: Finger 1 Finger 2 Min Range (mm) Max Range (mm) 1 2 5.0 80.0 1 3 15.0 95.0 1 4 25.0 110.0 2 3 6.0 52.0 2 4 12.0 69.0 3 4 8.5 47.0 CPSC 597 | California State University Fullerton 17/34
  • 18. CombinoChord: Project Defense Hand Model Use a score function: SF(x, a, b) =    1 + (x − 0.99a)3 x < a 1 − ((x − 0.99a)/(1.01b − 0.99a))2 x ≥ a. Where a and b are the min and max range values for the pair of fingers respectively, and x is the distance between the pair of fingers. CPSC 597 | California State University Fullerton 18/34
  • 19. CombinoChord: Project Defense 20 40 60 80 0.5 1 x y Figure 2: Plot of SF CPSC 597 | California State University Fullerton 19/34
  • 20. CombinoChord: Project Defense Hand Model • Average SF over all pairs used • Use best choice of fingers • Only need to consider case where fingers don’t cross • For 3: {1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4} CPSC 597 | California State University Fullerton 20/34
  • 21. CombinoChord: Project Defense Sound Quality • Unison notes • Number of mutes • Number of strings played CPSC 597 | California State University Fullerton 21/34
  • 22. CombinoChord: Project Defense Pre-Processing • Only consider fret-positions that produce notes in chord • Drastically reduces size of state space • CM7 on an acoustic: 4 i=0 [2i × i−1 j=0 (46 − j)] ≈ 6.34 × 107 . CPSC 597 | California State University Fullerton 22/34
  • 23. CombinoChord: Project Defense Filtering Idea: At each step we can filter possible fret positions • Fret positions on same string • Fret positions out of reach • pi − pj > MAX • Fret positions beneath tonic note CPSC 597 | California State University Fullerton 23/34
  • 24. CombinoChord: Project Defense Multi-Threading Multi-thread the search: • Sub-tasks based on tonics • Split ordered list into t parts • Card dealing method • Thread pool approach CPSC 597 | California State University Fullerton 24/34
  • 25. CombinoChord: Project Defense 150 200 250 0 20 40 60 80 n Avg.SearchTime(ms) 2 Threads Thread Pool Shuffled Ordered 150 200 250 0 20 40 60 n Avg.SearchTime(ms) 4 Threads Thread Pool Shuffled Ordered CPSC 597 | California State University Fullerton 25/34
  • 26. CombinoChord: Project Defense Android • Two packages: – UI – domain (to be made open source) • UI: – 7 Fragments – Controlled by main activity – Searching runs in background CPSC 597 | California State University Fullerton 26/34
  • 27. CombinoChord: Project Defense (a) Home Fragment (b) Guitar Fragment CPSC 597 | California State University Fullerton 27/34
  • 28. CombinoChord: Project Defense (a) Tuning Fragment (b) Hand Fragment CPSC 597 | California State University Fullerton 28/34
  • 29. CombinoChord: Project Defense (a) Chord Fragment (b) Advanced Fragment CPSC 597 | California State University Fullerton 29/34
  • 30. CombinoChord: Project Defense (a) About Fragment (b) Navigation Drawer CPSC 597 | California State University Fullerton 30/34
  • 31. CombinoChord: Project Defense Results #Strings # Frets Avg. Search Time Std. Search Time 6 12 28.46 ms 19.52 ms 6 20 74.80 ms 41.86 ms 7 12 61.08 ms 51.22 ms 7 20 127.63 ms 53.55 ms 8 12 83.08 ms 51.32 ms 8 20 261.46 ms 161.73 ms CPSC 597 | California State University Fullerton 31/34
  • 32. CombinoChord: Project Defense Analysis • Times well within goal • Less than Doherty threshold (400ms) for normal guitars [1] CPSC 597 | California State University Fullerton 32/34
  • 33. CombinoChord: Project Defense Summary CombinoChord: • Finds chords well within timing constraints • Presents guitar tablature notation • Allows modification of specified parameters CPSC 597 | California State University Fullerton 33/34
  • 34. CombinoChord: Project Defense References [1] Doherty, Walter J. and Arvind J. Thadhani. "The economic value of rapid response time." IBM Report (1982) [2] Vladimir Grozman, and Christopher Norman An Algorithm for Optimal Guitar Fingering. KTH Royal Institue of Technology, 2013 [3] D.R. Tuohy and W.D. Potter A Genetic Algorithm for the Automatic Generation of Playable Guitar Tablature. Proceedings of the Inter- national Computer Music Conference. Artificial Intelligence Center, University of Georgia Athens, 2005 CPSC 597 | California State University Fullerton 34/34