Skip to content

Instantly share code, notes, and snippets.

@Silverwolf90
Forked from caseypeter10/guitar project
Last active August 29, 2015 14:02
Show Gist options
  • Save Silverwolf90/818da4d0c19fd635828d to your computer and use it in GitHub Desktop.
Save Silverwolf90/818da4d0c19fd635828d to your computer and use it in GitHub Desktop.
MAX_STRINGS = 6
MAX_FRETS = 12
def note_filter(key):
if key in ['C','G','D','A','E','B','F#','C#']:
return ['C','C#','D','D#','E','F','F#','G','G#','A','A#','B',]
else:
return ['C','Db','D','Eb','E','F','Gb','G','Ab','A','Bb','B']
def string_prep(start, notes):
#This function is intended to provide an organized string of notes that can be used to generate the
#note values for a guitar string
prepared_notes = []
note_counter = 0
found_note = 0
while note_counter < len(notes):
if notes[note_counter] == start:
found_note = note_counter #records the location of the open string note in the raw note list
while note_counter < len(notes):
prepared_notes.append(notes[note_counter])
#print prepared_notes
note_counter = note_counter + 1
if note_counter > 11:
#print note_counter
note_counter = 0 #starts over at beginning of notes
#print found_note
elif note_counter == found_note :#breaks out of prepared list creation
#print note_counter
return prepared_notes
else:
note_counter = note_counter + 1
class string(object):
# returns a list of note objects that contain a fret and a pitch value
string_pitches = []
fret = 0
notes = []
def __init__(self, filtered_notes):
notes = filtered_notes
def create_string(self):
fret = 0
for pitch in self.notes:
self.string_pitches.append(note(pitch,fret))
fret += 1
return self.string_pitches
class note(object):
def __init__(self,pitch,fret):
self.pitch = pitch
self.fret = fret
#attempt to generate an E_String
string_1 = string(string_prep('E',note_filter('E')))
def scale_finder(key,notes):
#supposed to generate major scale but it doesn't
#print statement on line 123 only prints out first value
organized_on_key = string_prep(key, notes)
print organized_on_key
note_number = 0
major_scale = []
while note_number < len(organized_on_key):
print note_number;
print len(organized_on_key)
if note_number == 0:
major_scale.append(organized_on_key[note_number])
elif note_number == 2:
major_scale.append(organized_on_key[note_number])
elif note_number == 4:
major_scale.append(organized_on_key[note_number])
elif note_number == 5:
major_scale.append(organized_on_key[note_number])
elif note_number == 7:
major_scale.append(organized_on_key[note_number])
elif note_number == 9:
major_scale.append(organized_on_key[note_number])
elif note_number == 11:
major_scale.append(organized_on_key[note_number])
note_number += 1;
return major_scale
print scale_finder('A',note_filter('A'))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment