{"version":3,"sources":["components/Constant.js","components/CanvasDraw.js","components/Display.js","App.js","serviceWorker.js","index.js"],"names":["N","N2","key","N3","noteData","testData","CanvasDraw","props","selectedNote","testState","React","useState","x","y","scale","setScale","canvas","useRef","resized","current","width","clientWidth","height","clientHeight","useEffect","currentCanvas","addEventListener","removeEventListener","scaleX","scaleY","ctx","getContext","clearRect","canvasW","window","innerWidth","canvasH","innerHeight","pianoX","pianoW","pianoY","pianoH","keyboardContainerX","keyboardContainerY","whiteNoteIndexes","blackNoteIndexes","fillStyle","fillRect","highlightStyle","shadowStyle","highlightSize","shadowSize","beginPath","moveTo","lineTo","closePath","fill","i","currentOctave","totalOctaves","Math","floor","w","indexToCheck","length","data","matchingNotes","text","j","arc","PI","blackNoteOffsets","offsetIndex","blackNoteWidth","h","whiteNoteHeight","whiteNoteWidth","drawingPiano","ref","style","Display","state","handleInputChange","bind","event","value","target","this","setState","className","placeholder","id","type","spellCheck","autoComplete","onChange","autofocus","Component","App","Boolean","location","hostname","match","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.b98051d2.chunk.js","sourcesContent":["export const N = {\r\n 'C': 1,\r\n 'C#': 2,\r\n 'Db': 2,\r\n 'D': 3,\r\n 'D#': 4,\r\n 'Eb': 4,\r\n 'E': 5,\r\n 'E#': 6,\r\n 'F': 6,\r\n 'F#': 7,\r\n 'Gb': 7,\r\n 'G': 8,\r\n 'G#': 9,\r\n 'Ab': 9,\r\n 'A': 10,\r\n 'A#': 11,\r\n 'Bb': 11,\r\n 'B': 12\r\n}\r\n\r\nexport const N2 = {}\r\n\r\nfor (let key in N) {\r\n N2[key] = N[key] + 12;\r\n}\r\n\r\nexport const N3 = {}\r\n\r\nfor (let key in N) {\r\n N3[key] = N2[key] + 12;\r\n}\r\n\r\nexport const noteData = {\r\n testData: {\r\n // '': [],\r\n 'C': [N['C'], N['E'], N['G']],\r\n 'CM': [N['C'], N['E'], N['G']],\r\n 'Cm': [N['C'], N['E'], N['G']],\r\n 'Cmaj': [N['C'], N['E'], N['G']],\r\n 'Cmin': [N['C'], N['Eb'], N['G']],\r\n 'Csus4': [N['C'], N['F'], N['G']],\r\n 'Csus2': [N['C'], N['D'], N['G']],\r\n 'Caug': [N['C'], N['E'], N['G#']],\r\n 'Cdim': [N['C'], N['Eb'], N['Gb']],\r\n 'CM6': [N['C'], N['E'], N['G'], N['A']],\r\n 'Cmaj6': [N['C'], N['E'], N['G'], N['A']],\r\n 'Cmin6': [N['C'], N['Eb'], N['G'], N['A']],\r\n 'Cmin7': [N['C'], N['Eb'], N['G'], N['Bb']],\r\n 'C7': [N['C'], N['E'], N['G'], N['Bb']],\r\n 'CM7': [N['C'], N['E'], N['G'], N['B']],\r\n 'Cmaj7': [N['C'], N['E'], N['G'], N['B']],\r\n 'C9': [N['C'], N['E'], N['G'], N['Bb'], N2['D']],\r\n 'CM9': [N['C'], N['E'], N['G'], N['B'], N2['D']],\r\n 'Cmaj9': [N['C'], N['E'], N['G'], N['B'], N2['D']],\r\n 'Cmin9': [N['C'], N['Eb'], N['G'], N['Bb'], N2['D']],\r\n 'C9#5': [N['C'], N['E'], N['G#'], N['Bb'], N2['D']],\r\n 'C9b5': [N['C'], N['E'], N['Gb'], N['Bb'], N2['D']],\r\n 'C9aug': [N['C'], N['E'], N['G#'], N['Bb'], N2['D#']],\r\n 'C11': [N['C'], N['E'], N['G'], N['Bb'], N2['D'], N2['F']],\r\n 'CM11': [N['C'], N['E'], N['G'], N['B'], N2['D'], N2['F']],\r\n 'Cmaj11': [N['C'], N['E'], N['G'], N['B'], N2['D'], N2['F']],\r\n 'C11aug': [N['C'], N['E'], N['G#'], N['Bb'], N2['D'], N2['F']],\r\n 'C13': [N['C'], N['E'], N['G'], N['Bb'], N2['D'], N2['F'], N2['A']],\r\n 'CM13': [N['C'], N['E'], N['G'], N['Bb'], N2['D'], N2['F'], N2['A']],\r\n 'Cmaj13': [N['C'], N['E'], N['G'], N['B'], N2['D'], N2['F'], N2['A']],\r\n 'Cdim7': [N['C'], N['Eb'], N['Gb'], N['A']],\r\n 'Cdom7': [N['C'], N['Eb'], N['G'], N['Bb']],\r\n 'C7b5': [N['C'], N['E'], N['Gb'], N['Bb']],\r\n 'C7#5': [N['C'], N['E'], N['G#'], N['Bb']],\r\n 'C7b9': [N['C'], N['E'], N['G'], N['Bb'], N2['C#']],\r\n 'C7#9': [N['C'], N['E'], N['G'], N['Bb'], N2['D#']],\r\n 'Cmin7b': [N['C'], N['Eb'], N['G'], N['Bb']],\r\n 'C6sus4': [N['C'], N['F'], N['G'], N['A']],\r\n 'C7sus4': [N['C'], N['F'], N['G'], N['Bb']],\r\n 'C9sus4': [N['C'], N['F'], N['G'], N['Bb'], N2['D']],\r\n\r\n 'C#': [N['C#'], N['F'], N['G#']],\r\n 'C#M': [N['C#'], N['F'], N['G#']],\r\n 'C#m': [N['C#'], N['E'], N['G#']],\r\n 'C#min': [N['C#'], N['E'], N['G#']],\r\n 'C#sus4': [N['C#'], N['F#'], N['G#']],\r\n 'C#sus2': [N['C#'], N['C#'], N['G#']],\r\n 'C#aug': [N['C#'], N['F'], N['A']],\r\n 'C#dim': [N['C#'], N['E'], N['G']],\r\n 'C#M6': [N['C#'], N['F'], N['G#'], N['Bb']],\r\n 'C#maj6': [N['C#'], N['F'], N['G#'], N['Bb']],\r\n 'C#min6': [N['C#'], N['E'], N['G#'], N['Bb']],\r\n 'C#min7': [N['C#'], N['E'], N['G#'], N['B']],\r\n 'C#7': [N['C#'], N['F'], N['G#'], N2['D#']],\r\n 'C#M7': [N['C#'], N['F'], N['G#'], N2['D#']],\r\n 'C#maj7': [N['C#'], N['F'], N['G#'], N2['D#']],\r\n 'C#9': [N['C#'], N['F'], N['G#'], N['B'], N2['D#']],\r\n 'C#M9': [N['C#'], N['F'], N['G#'], N2['C'], N2['D#']],\r\n 'C#maj9': [N['C#'], N['F'], N['G#'], N2['C'], N2['D#']],\r\n 'C#min9': [N['C#'], N['E'], N['G#'], N['B'], N2['D#']],\r\n 'C#9#5': [N['C#'], N['F'], N['A'], N['B'], N2['D#']],\r\n 'C#9b5': [N['C#'], N['F'], N['G'], N['B'], N2['D#']],\r\n 'C#9aug': [N['C#'], N['F'], N['A'], N['B'], N2['D#']],\r\n 'C#11': [N['C#'], N['F'], N['G#'], N['B'], N2['D#'], N2['F#']],\r\n 'C#M11': [N['C#'], N['F'], N['G#'], N['B'], N2['D#'], N2['F#']],\r\n 'C#maj11': [N['C#'], N['F'], N['G#'], N2['C'], N2['D#'], N2['F#']],\r\n 'C#11aug': [N['C#'], N['F'], N['A'], N['B'], N2['D#'], N2['F#']],\r\n 'C#13': [N['C#'], N['F'], N['G#'], N['B'], N2['D#'], N2['F#'], N2['Bb']],\r\n 'C#M13': [N['C#'], N['F'], N['G#'], N['B'], N2['D#'], N2['F#'], N2['Bb']],\r\n 'C#maj13': [N['C#'], N['F'], N['G#'], N2['C#'], N2['D#'], N2['F#'], N2['Bb']],\r\n 'C#dim7': [N['C#'], N['E'], N['G'], N['Bb']],\r\n 'C#dom7': [N['C#'], N['E'], N['G#'], N['B']],\r\n 'C#7b5': [N['C#'], N['F'], N['G'], N['B']],\r\n 'C#7#5': [N['C#'], N['F'], N['A'], N['B']],\r\n 'C#7b9': [N['C#'], N['F'], N['G#'], N['B'], N2['D']],\r\n 'C#7#9': [N['C#'], N['F'], N['G#'], N['B'], N2['E']],\r\n 'C#min7b': [N['C#'], N['E'], N['G#'], N['B']],\r\n 'C#6sus4': [N['C#'], N['F#'], N['G#'], N['Bb']],\r\n 'C#7sus4': [N['C#'], N['F#'], N['G#'], N['B']],\r\n 'C#9sus4': [N['C#'], N['F#'], N['G#'], N['B'], N2['D#']],\r\n\r\n 'Db': [N['Db'], N['F'], N['G#']],\r\n 'DbM': [N['Db'], N['F'], N['G#']],\r\n 'Dbmaj': [N['Db'], N['F'], N['G#']],\r\n 'Dbmin': [N['Db'], N['E'], N['G#']],\r\n 'Dbm': [N['Db'], N['E'], N['G#']],\r\n 'Dbsus4': [N['Db'], N['F#'], N['G#']],\r\n 'Dbsus2': [N['Db'], N['Db'], N['G#']],\r\n 'Dbaug': [N['Db'], N['F'], N['A']],\r\n 'Dbdim': [N['Db'], N['E'], N['G']],\r\n 'DbM6': [N['Db'], N['F'], N['G#'], N['Bb']],\r\n 'Dbmaj6': [N['Db'], N['F'], N['G#'], N['Bb']],\r\n 'Dbmin6': [N['Db'], N['E'], N['G#'], N['Bb']],\r\n 'Dbmin7': [N['Db'], N['E'], N['G#'], N['B']],\r\n 'Db7': [N['Db'], N['F'], N['G#'], N2['D#']],\r\n 'DbM7': [N['Db'], N['F'], N['G#'], N2['D#']],\r\n 'Dbmaj7': [N['Db'], N['F'], N['G#'], N2['D#']],\r\n 'Db9': [N['Db'], N['F'], N['G#'], N['B'], N2['D#']],\r\n 'DbM9': [N['Db'], N['F'], N['G#'], N2['C'], N2['D#']],\r\n 'Dbmaj9': [N['Db'], N['F'], N['G#'], N2['C'], N2['D#']],\r\n 'Dbmin9': [N['Db'], N['E'], N['G#'], N['B'], N2['D#']],\r\n 'Db9#5': [N['Db'], N['F'], N['A'], N['B'], N2['D#']],\r\n 'Db9b5': [N['Db'], N['F'], N['G'], N['B'], N2['D#']],\r\n 'Db9aug': [N['Db'], N['F'], N['A'], N['B'], N2['D#']],\r\n 'Db11': [N['Db'], N['F'], N['G#'], N['B'], N2['D#'], N2['F#']],\r\n 'DbM11': [N['Db'], N['F'], N['G#'], N['B'], N2['D#'], N2['F#']],\r\n 'Dbmaj11': [N['Db'], N['F'], N['G#'], N2['C'], N2['D#'], N2['F#']],\r\n 'Db11aug': [N['Db'], N['F'], N['A'], N['B'], N2['D#'], N2['F#']],\r\n 'Db13': [N['Db'], N['F'], N['G#'], N['B'], N2['D#'], N2['F#'], N2['Bb']],\r\n 'DbM13': [N['Db'], N['F'], N['G#'], N['B'], N2['D#'], N2['F#'], N2['Bb']],\r\n 'Dbmaj13': [N['Db'], N['F'], N['G#'], N2['Db'], N2['D#'], N2['F#'], N2['Bb']],\r\n 'Dbdim7': [N['Db'], N['E'], N['G'], N['Bb']],\r\n 'Dbdom7': [N['Db'], N['E'], N['G#'], N['B']],\r\n 'Db7b5': [N['Db'], N['F'], N['G'], N['B']],\r\n 'Db7#5': [N['Db'], N['F'], N['A'], N['B']],\r\n 'Db7b9': [N['Db'], N['F'], N['G#'], N['B'], N2['D']],\r\n 'Db7#9': [N['Db'], N['F'], N['G#'], N['B'], N2['E']],\r\n 'Dbmin7b': [N['Db'], N['E'], N['G#'], N['B']],\r\n 'Db6sus4': [N['Db'], N['F#'], N['G#'], N['Bb']],\r\n 'Db7sus4': [N['Db'], N['F#'], N['G#'], N['B']],\r\n 'Db9sus4': [N['Db'], N['F#'], N['G#'], N['B'], N2['D#']],\r\n\r\n\r\n 'D': [N['D'], N['F#'], N['A']],\r\n 'DM': [N['D'], N['F#'], N['A']],\r\n 'Dmaj': [N['D'], N['F#'], N['A']],\r\n 'Dmin': [N['D'], N['F'], N['A']],\r\n 'Dm': [N['D'], N['F'], N['A']],\r\n 'Dsus4': [N['D'], N['G'], N['A']],\r\n 'Dsus2': [N['D'], N['E'], N['A']],\r\n 'Daug': [N['D'], N['F#'], N['A#']],\r\n 'Ddim': [N['D'], N['F'], N['Ab']],\r\n 'DM6': [N['D'], N['F#'], N['A'], N['B']],\r\n 'Dmaj6': [N['D'], N['F#'], N['A'], N['B']],\r\n 'Dmin6': [N['D'], N['F'], N['A'], N2['B']],\r\n 'Dmin7': [N['D'], N['F'], N['A'], N2['C']],\r\n 'D7': [N['D'], N['F#'], N['A'], N2['C']],\r\n 'DM7': [N['D'], N['F#'], N['A'], N2['C#']],\r\n 'Dmaj7': [N['D'], N['F#'], N['A'], N2['C#']],\r\n 'D9': [N['D'], N['F#'], N['A'], N2['C'], N2['E']],\r\n 'DM9': [N['D'], N['F#'], N['A'], N2['C#'], N2['E']],\r\n 'Dmaj9': [N['D'], N['F#'], N['A'], N2['C#'], N2['E']],\r\n 'Dmin9': [N['D'], N['F'], N['A'], N2['C'], N2['E']],\r\n 'D9#5': [N['D'], N['F#'], N['A#'], N2['C'], N2['E']],\r\n 'D9b5': [N['D'], N['F#'], N['A'], N2['C'], N2['E']],\r\n 'D9aug': [N['D'], N['F#'], N['A#'], N2['C'], N2['F']],\r\n 'D11': [N['D'], N['F#'], N['A'], N2['C'], N2['E'], N2['G']],\r\n 'DM11': [N['D'], N['F#'], N['A'], N2['C#'], N2['E'], N2['G']],\r\n 'Dmaj11': [N['D'], N['F#'], N['A'], N2['C#'], N2['E'], N2['G']],\r\n 'D11aug': [N['D'], N['F#'], N['A#'], N2['C'], N2['E'], N2['G']],\r\n 'D13': [N['D'], N['F#'], N['A'], N2['C'], N2['E'], N2['G'], N2['B']],\r\n 'DM13': [N['D'], N['F#'], N['A'], N2['C#'], N2['E'], N2['G'], N2['B']],\r\n 'Dmaj13': [N['D'], N['F#'], N['A'], N2['C#'], N2['E'], N2['G'], N2['B']],\r\n 'Ddim7': [N['D'], N['F'], N['Ab'], N['B']],\r\n 'Ddom7': [N['D'], N['F'], N['A'], N2['C']],\r\n 'D7b5': [N['D'], N['F#'], N['Ab'], N2['C']],\r\n 'D7#5': [N['D'], N['F#'], N['A#'], N2['C']],\r\n 'D7b9': [N['D'], N['F#'], N['A'], N2['C'], N2['D#']],\r\n 'D7#9': [N['D'], N['F#'], N['A'], N2['C'], N2['F']],\r\n 'Dm7b': [N['D'], N['F'], N['A'], N2['C']],\r\n 'D6sus4': [N['D'], N['G'], N['A'], N2['B']],\r\n 'D7sus4': [N['D'], N['G'], N['A'], N2['C']],\r\n 'D9sus4': [N['D'], N['G'], N['A'], N2['C'], N2['E']],\r\n\r\n 'D#': [N['D#'], N['G'], N['A#']],\r\n 'D#M': [N['D#'], N['G'], N['A#']],\r\n 'D#maj': [N['D#'], N['G'], N['A#']],\r\n 'D#min': [N['D#'], N['F#'], N['A#']],\r\n 'D#m': [N['D#'], N['F#'], N['A#']],\r\n 'D#sus4': [N['D#'], N['G#'], N['A#']],\r\n 'D#sus2': [N['D#'], N['F'], N['A#']],\r\n 'D#aug': [N['D#'], N['G'], N['B']],\r\n 'D#dim': [N['D#'], N['F#'], N['A']],\r\n 'D#M6': [N['D#'], N['G'], N['A#'], N2['C']],\r\n 'D#maj6': [N['D#'], N['G'], N['A#'], N2['C']],\r\n 'D#min6': [N['D#'], N['F#'], N['A#'], N2['C']],\r\n 'D#min7': [N['D#'], N['F#'], N['A#'], N2['C#']],\r\n 'D#7': [N['D#'], N['G'], N['A#'], N2['F']],\r\n 'D#M7': [N['D#'], N['G'], N['A#'], N2['F']],\r\n 'D#maj7': [N['D#'], N['G'], N['A#'], N2['F']],\r\n 'D#9': [N['D#'], N['G'], N['A#'], N2['C#'], N2['F']],\r\n 'D#M9': [N['D#'], N['G'], N['A#'], N2['D'], N2['F']],\r\n 'D#maj9': [N['D#'], N['G'], N['A#'], N2['D'], N2['F']],\r\n 'D#min9': [N['D#'], N['F#'], N['A#'], N2['C#'], N2['F']],\r\n 'D#9#5': [N['D#'], N['G'], N['B'], N2['C#'], N2['F']],\r\n 'D#9b5': [N['D#'], N['G'], N['A'], N2['C#'], N2['F']],\r\n 'D#9aug': [N['D#'], N['G'], N['B'], N2['C#'], N2['F']],\r\n 'D#11': [N['D#'], N['G'], N['A#'], N2['C#'], N2['F'], N2['G#']],\r\n 'D#M11': [N['D#'], N['G'], N['A#'], N2['C#'], N2['F'], N2['G#']],\r\n 'D#maj11': [N['D#'], N['G'], N['A#'], N2['D'], N2['F'], N2['G#']],\r\n 'D#11aug': [N['D#'], N['G'], N['B'], N2['C#'], N2['F'], N2['G#']],\r\n 'D#13': [N['D#'], N['G'], N['A#'], N2['C#'], N2['F'], N2['G#'], N2['C']],\r\n 'D#M13': [N['D#'], N['G'], N['A#'], N2['C#'], N2['F'], N2['G#'], N2['C']],\r\n 'D#maj13': [N['D#'], N['G'], N['A#'], N2['D#'], N2['F'], N2['G#'], N2['C']],\r\n 'D#dim7': [N['D#'], N['F#'], N['A'], N2['C']],\r\n 'D#dom7': [N['D#'], N['F#'], N['A#'], N2['C#']],\r\n 'D#7b5': [N['D#'], N['G'], N['A'], N2['C#']],\r\n 'D#7#5': [N['D#'], N['G'], N['B'], N2['C#']],\r\n 'D#7b9': [N['D#'], N['G'], N['A#'], N2['C#'], N2['E']],\r\n 'D#7#9': [N['D#'], N['G'], N['A#'], N2['C#'], N2['F#']],\r\n 'D#min7b': [N['D#'], N['F#'], N['A#'], N2['C#']],\r\n 'D#6sus4': [N['D#'], N['G#'], N['A#'], N2['C']],\r\n 'D#7sus4': [N['D#'], N['G#'], N['A#'], N2['C#']],\r\n 'D#9sus4': [N['D#'], N['G#'], N['A#'], N2['C#'], N2['F']],\r\n\r\n\r\n 'Eb': [N['Eb'], N['G'], N['A#']],\r\n 'EbM': [N['Eb'], N['G'], N['A#']],\r\n 'Ebmaj': [N['Eb'], N['G'], N['A#']],\r\n 'Ebmin': [N['Eb'], N['F#'], N['A#']],\r\n 'Ebm': [N['Eb'], N['F#'], N['A#']],\r\n 'Ebsus4': [N['Eb'], N['G#'], N['A#']],\r\n 'Ebsus2': [N['Eb'], N['F'], N['A#']],\r\n 'Ebaug': [N['Eb'], N['G'], N['B']],\r\n 'Ebdim': [N['Eb'], N['F#'], N['A']],\r\n 'EbM6': [N['Eb'], N['G'], N['A#'], N2['C']],\r\n 'Ebmaj6': [N['Eb'], N['G'], N['A#'], N2['C']],\r\n 'Ebmin6': [N['Eb'], N['F#'], N['A#'], N2['C']],\r\n 'Ebmin7': [N['Eb'], N['F#'], N['A#'], N2['C#']],\r\n 'Eb7': [N['Eb'], N['G'], N['A#'], N2['F']],\r\n 'EbM7': [N['Eb'], N['G'], N['A#'], N2['F']],\r\n 'Ebmaj7': [N['Eb'], N['G'], N['A#'], N2['F']],\r\n 'Eb9': [N['Eb'], N['G'], N['A#'], N2['C#'], N2['F']],\r\n 'EbM9': [N['Eb'], N['G'], N['A#'], N2['D'], N2['F']],\r\n 'Ebmaj9': [N['Eb'], N['G'], N['A#'], N2['D'], N2['F']],\r\n 'Ebmin9': [N['Eb'], N['F#'], N['A#'], N2['C#'], N2['F']],\r\n 'Eb9#5': [N['Eb'], N['G'], N['B'], N2['C#'], N2['F']],\r\n 'Eb9b5': [N['Eb'], N['G'], N['A'], N2['C#'], N2['F']],\r\n 'Eb9aug': [N['Eb'], N['G'], N['B'], N2['C#'], N2['F']],\r\n 'Eb11': [N['Eb'], N['G'], N['A#'], N2['C#'], N2['F'], N2['G#']],\r\n 'EbM11': [N['Eb'], N['G'], N['A#'], N2['C#'], N2['F'], N2['G#']],\r\n 'Ebmaj11': [N['Eb'], N['G'], N['A#'], N2['D'], N2['F'], N2['G#']],\r\n 'Eb11aug': [N['Eb'], N['G'], N['B'], N2['C#'], N2['F'], N2['G#']],\r\n 'Eb13': [N['Eb'], N['G'], N['A#'], N2['C#'], N2['F'], N2['G#'], N2['C']],\r\n 'EbM13': [N['Eb'], N['G'], N['A#'], N2['C#'], N2['F'], N2['G#'], N2['C']],\r\n 'Ebmaj13': [N['Eb'], N['G'], N['A#'], N2['Eb'], N2['F'], N2['G#'], N2['C']],\r\n 'Ebdim7': [N['Eb'], N['F#'], N['A'], N2['C']],\r\n 'Ebdom7': [N['Eb'], N['F#'], N['A#'], N2['C#']],\r\n 'Eb7b5': [N['Eb'], N['G'], N['A'], N2['C#']],\r\n 'Eb7#5': [N['Eb'], N['G'], N['B'], N2['C#']],\r\n 'Eb7b9': [N['Eb'], N['G'], N['A#'], N2['C#'], N2['E']],\r\n 'Eb7#9': [N['Eb'], N['G'], N['A#'], N2['C#'], N2['F#']],\r\n 'Ebmin7b': [N['Eb'], N['F#'], N['A#'], N2['C#']],\r\n 'Eb6sus4': [N['Eb'], N['G#'], N['A#'], N2['C']],\r\n 'Eb7sus4': [N['Eb'], N['G#'], N['A#'], N2['C#']],\r\n 'Eb9sus4': [N['Eb'], N['G#'], N['A#'], N2['C#'], N2['F']],\r\n\r\n 'E': [N['E'], N['G#'], N['B']],\r\n 'EM': [N['E'], N['G#'], N['B']],\r\n 'Emaj': [N['E'], N['G#'], N['B']],\r\n 'Emin': [N['E'], N['G'], N['B']],\r\n 'Em': [N['E'], N['G'], N['B']],\r\n 'Esus4': [N['E'], N['A'], N['B']],\r\n 'Esus2': [N['E'], N['F#'], N['B']],\r\n 'Eaug': [N['E'], N['G#'], N2['C']],\r\n 'Edim': [N['E'], N['G'], N['Bb']],\r\n 'EM6': [N['E'], N['G#'], N['B'], N2['C#']],\r\n 'Emaj6': [N['E'], N['G#'], N['B'], N2['C#']],\r\n 'Emin6': [N['E'], N['G'], N['B'], N2['C#']],\r\n 'Emin7': [N['E'], N['G'], N['B'], N2['D']],\r\n 'E7': [N['E'], N['G#'], N['B'], N2['D']],\r\n 'EM7': [N['E'], N['G#'], N['B'], N2['D#']],\r\n 'Emaj7': [N['E'], N['G#'], N['B'], N2['D#']],\r\n 'E9': [N['E'], N['G#'], N['B'], N2['D'], N2['F#']],\r\n 'EM9': [N['E'], N['G#'], N['B'], N2['D#'], N2['F#']],\r\n 'Emaj9': [N['E'], N['G#'], N['B'], N2['D#'], N2['F#']],\r\n 'Emin9': [N['E'], N['G'], N['B'], N2['D'], N2['F#']],\r\n 'E9#5': [N['E'], N['G#'], N2['C'], N2['D'], N2['F#']],\r\n 'E9b5': [N['E'], N['G#'], N['B'], N2['D'], N2['F#']],\r\n 'E9aug': [N['E'], N['G#'], N2['C'], N2['D'], N2['F#']],\r\n 'E11': [N['E'], N['G#'], N['B'], N2['D'], N2['F#'], N2['A']],\r\n 'EM11': [N['E'], N['G#'], N['B'], N2['D#'], N2['F#'], N2['A']],\r\n 'Emaj11': [N['E'], N['G#'], N['B'], N2['D#'], N2['F#'], N2['A']],\r\n 'E11aug': [N['E'], N['G#'], N2['C'], N2['D'], N2['F#'], N2['A']],\r\n 'E13': [N['E'], N['G#'], N['B'], N2['D'], N2['F#'], N2['A'], N3['C#']],\r\n 'EM13': [N['E'], N['G#'], N['B'], N2['D#'], N2['F#'], N2['A'], N3['C#']],\r\n 'Emaj13': [N['E'], N['G#'], N['B'], N2['D#'], N2['F#'], N2['A'], N3['C#']],\r\n 'Edim7': [N['E'], N['G'], N['Bb'], N2['C#']],\r\n 'Edom7': [N['E'], N['G'], N['B'], N2['D']],\r\n 'E7b5': [N['E'], N['G#'], N['Bb'], N2['D']],\r\n 'E7#5': [N['E'], N['G#'], N2['C'], N2['D']],\r\n 'E7b9': [N['E'], N['G#'], N['B'], N2['D'], N2['F']],\r\n 'E7#9': [N['E'], N['G#'], N['B'], N2['D'], N2['G']],\r\n 'Em7b': [N['E'], N['G'], N['B'], N2['D']],\r\n 'E6sus4': [N['E'], N['A'], N['B'], N2['C#']],\r\n 'E7sus4': [N['E'], N['A'], N['B'], N2['D']],\r\n 'E9sus4': [N['E'], N['A'], N['B'], N2['D'], N2['F#']],\r\n\r\n 'F': [N['F'], N['A'], N2['C']],\r\n 'FM': [N['F'], N['A'], N2['C']],\r\n 'Fmaj': [N['F'], N['A'], N2['C']],\r\n 'Fmin': [N['F'], N['F#'], N2['C']],\r\n 'Fm': [N['F'], N['F#'], N2['C']],\r\n 'Fsus4': [N['F'], N['A#'], N2['C']],\r\n 'Fsus2': [N['F'], N['F'], N2['C']],\r\n 'Faug': [N['F'], N['A'], N2['C#']],\r\n 'Fdim': [N['F'], N['F#'], N2['B']],\r\n 'FM6': [N['F'], N['A'], N2['C'], N2['D']],\r\n 'Fmaj6': [N['F'], N['A'], N2['C'], N2['D']],\r\n 'Fmin6': [N['F'], N['F#'], N2['C'], N2['D']],\r\n 'Fmin7': [N['F'], N['F#'], N2['C'], N2['D#']],\r\n 'F7': [N['F'], N['A'], N2['C'], N2['G']],\r\n 'FM7': [N['F'], N['A'], N2['C'], N2['G']],\r\n 'Fmaj7': [N['F'], N['A'], N2['C'], N2['G']],\r\n 'F9': [N['F'], N['A'], N2['C'], N2['D#'], N2['G']],\r\n 'FM9': [N['F'], N['A'], N2['C'], N2['E'], N2['G']],\r\n 'Fmaj9': [N['F'], N['A'], N2['C'], N2['E'], N2['G']],\r\n 'Fmin9': [N['F'], N['F#'], N2['C'], N2['D#'], N2['G']],\r\n 'F9#5': [N['F'], N['A'], N2['C#'], N2['D#'], N2['G']],\r\n 'F9b5': [N['F'], N['A'], N['B'], N2['D#'], N2['G']],\r\n 'F9aug': [N['F'], N['A'], N2['C#'], N2['D#'], N2['G']],\r\n 'F11': [N['F'], N['A'], N2['C'], N2['D#'], N2['G'], N2['A#']],\r\n 'FM11': [N['F'], N['A'], N2['C'], N2['D#'], N2['G'], N2['A#']],\r\n 'Fmaj11': [N['F'], N['A'], N2['C'], N2['E'], N2['G'], N2['A#']],\r\n 'F11aug': [N['F'], N['A'], N2['C#'], N2['D#'], N2['G'], N2['A#']],\r\n 'F13': [N['F'], N['A'], N2['C'], N2['D#'], N2['G'], N2['A#'], N2['D']],\r\n 'FM13': [N['F'], N['A'], N2['C'], N2['D#'], N2['G'], N2['A#'], N2['D']],\r\n 'Fmaj13': [N['F'], N['A'], N2['C'], N2['F'], N2['G'], N2['A#'], N2['D']],\r\n 'Fdim7': [N['F'], N['F#'], N['B'], N2['D']],\r\n 'Fdom7': [N['F'], N['F#'], N2['C'], N2['D#']],\r\n 'F7b5': [N['F'], N['A'], N['B'], N2['D#']],\r\n 'F7#5': [N['F'], N['A'], N2['C#'], N2['D#']],\r\n 'F7b9': [N['F'], N['A'], N2['C'], N2['D#'], N2['F#']],\r\n 'F7#9': [N['F'], N['A'], N2['C'], N2['D#'], N2['G#']],\r\n 'Fmin7b': [N['F'], N['F#'], N2['C'], N2['D#']],\r\n 'F6sus4': [N['F'], N['A#'], N2['C'], N2['D']],\r\n 'F7sus4': [N['F'], N['A#'], N2['C'], N2['D#']],\r\n 'F9sus4': [N['F'], N['A#'], N2['C'], N2['D#'], N2['G']],\r\n\r\n 'F#': [N['F#'], N['A#'], N2['C#']],\r\n 'F#M': [N['F#'], N['A#'], N2['C#']],\r\n 'F#maj': [N['F#'], N['A#'], N2['C#']],\r\n 'F#min': [N['F#'], N['A'], N2['C#']],\r\n 'F#m': [N['F#'], N['A'], N2['C#']],\r\n 'F#sus4': [N['F#'], N['B'], N2['C#']],\r\n 'F#sus2': [N['F#'], N['F#'], N2['C#']],\r\n 'F#aug': [N['F#'], N['A#'], N2['D']],\r\n 'F#dim': [N['F#'], N['A'], N2['C']],\r\n 'F#M6': [N['F#'], N['A#'], N2['C#'], N2['D#']],\r\n 'F#maj6': [N['F#'], N['A#'], N2['C#'], N2['D#']],\r\n 'F#min6': [N['F#'], N['A'], N2['C#'], N2['D#']],\r\n 'F#min7': [N['F#'], N['A'], N2['C#'], N2['E']],\r\n 'F#7': [N['F#'], N['A#'], N2['C#'], N2['E']],\r\n 'F#M7': [N['F#'], N['A#'], N2['C#'], N2['G']],\r\n 'F#maj7': [N['F#'], N['A#'], N2['C#'], N2['G']],\r\n 'F#9': [N['F#'], N['A#'], N2['C#'], N2['E'], N2['G#']],\r\n 'F#M9': [N['F#'], N['A#'], N2['C#'], N2['F'], N2['G#']],\r\n 'F#maj9': [N['F#'], N['A#'], N2['C#'], N2['F'], N2['G#']],\r\n 'F#min9': [N['F#'], N['A'], N2['C#'], N2['E'], N2['G#']],\r\n 'F#9#5': [N['F#'], N['A#'], N2['D'], N2['E'], N2['G#']],\r\n 'F#9b5': [N['F#'], N['A#'], N2['C#'], N2['E'], N2['G#']],\r\n 'F#9aug': [N['F#'], N['A#'], N2['D'], N2['E'], N2['G#']],\r\n 'F#11': [N['F#'], N['A#'], N2['C#'], N2['E'], N2['G#'], N2['B']],\r\n 'F#M11': [N['F#'], N['A#'], N2['C#'], N2['F'], N2['G#'], N2['B']],\r\n 'F#maj11': [N['F#'], N['A#'], N2['C#'], N2['F'], N2['G#'], N2['B']],\r\n 'F#11aug': [N['F#'], N['A#'], N2['D'], N2['E'], N2['G#'], N2['B']],\r\n 'F#13': [N['F#'], N['A#'], N2['C#'], N2['E'], N2['G#'], N2['B'], N3['D#']],\r\n 'F#M13': [N['F#'], N['A#'], N2['C#'], N2['F'], N2['G#'], N2['B'], N3['D#']],\r\n 'F#maj13': [N['F#'], N['A#'], N2['C#'], N2['F'], N2['G#'], N2['B'], N3['D#']],\r\n 'F#dim7': [N['F#'], N['A'], N2['C'], N2['D#']],\r\n 'F#dom7': [N['F#'], N['A'], N2['C#'], N2['E']],\r\n 'F#7b5': [N['F#'], N['A#'], N2['C'], N2['E']],\r\n 'F#7#5': [N['F#'], N['A#'], N2['D'], N2['E']],\r\n 'F#7b9': [N['F#'], N['A#'], N2['C#'], N2['E'], N2['G']],\r\n 'F#7#9': [N['F#'], N['A#'], N2['C#'], N2['E'], N2['A']],\r\n 'F#min7b': [N['F#'], N['A'], N2['C#'], N2['E']],\r\n 'F#6sus4': [N['F#'], N['B'], N2['C#'], N2['D#']],\r\n 'F#7sus4': [N['F#'], N['B'], N2['C#'], N2['E']],\r\n 'F#9sus4': [N['F#'], N['B'], N2['C#'], N2['E'], N2['G#']],\r\n\r\n 'G': [N['G'], N['B'], N2['D']],\r\n 'Gmaj': [N['G'], N['B'], N2['D']],\r\n 'GM': [N['G'], N['B'], N2['D']],\r\n 'Gmin': [N['G'], N['A#'], N2['D']],\r\n 'Gm': [N['G'], N['A#'], N2['D']],\r\n 'Gsus4': [N['G'], N2['C'], N2['D']],\r\n 'Gsus2': [N['G'], N['A'], N2['D']],\r\n 'Gaug': [N['G'], N['B'], N2['D#']],\r\n 'Gdim': [N['G'], N['A#'], N2['C#']],\r\n 'GM6': [N['G'], N['B'], N2['D'], N2['E']],\r\n 'Gmaj6': [N['G'], N['B'], N2['D'], N2['E']],\r\n 'Gmin6': [N['G'], N['A#'], N2['D'], N2['E']],\r\n 'Gmin7': [N['G'], N['A#'], N2['D'], N2['F']],\r\n 'G7': [N['G'], N['B'], N2['D'], N2['A']],\r\n 'GM7': [N['G'], N['B'], N2['D'], N2['A']],\r\n 'Gmaj7': [N['G'], N['B'], N2['D'], N2['A']],\r\n 'G9': [N['G'], N['B'], N2['D'], N2['F'], N2['A']],\r\n 'GM9': [N['G'], N['B'], N2['D'], N2['F#'], N2['A']],\r\n 'Gmaj9': [N['G'], N['B'], N2['D'], N2['F#'], N2['A']],\r\n 'Gmin9': [N['G'], N['A#'], N2['D'], N2['F'], N2['A']],\r\n 'G9#5': [N['G'], N['B'], N2['D#'], N2['F'], N2['A']],\r\n 'G9b5': [N['G'], N['B'], N2['C#'], N2['F'], N2['A']],\r\n 'G9aug': [N['G'], N['B'], N2['D#'], N2['F'], N2['A']],\r\n 'G11': [N['G'], N['B'], N2['D'], N2['F'], N2['A'], N3['C']],\r\n 'GM11': [N['G'], N['B'], N2['D'], N2['F'], N2['A'], N3['C']],\r\n 'Gmaj11': [N['G'], N['B'], N2['D'], N2['F#'], N2['A'], N3['C']],\r\n 'G11aug': [N['G'], N['B'], N2['D#'], N2['F'], N2['A'], N3['C']],\r\n 'G13': [N['G'], N['B'], N2['D'], N2['F'], N2['A'], N3['C'], N3['E']],\r\n 'GM13': [N['G'], N['B'], N2['D'], N2['F'], N2['A'], N3['C'], N3['E']],\r\n 'Gmaj13': [N['G'], N['B'], N2['D'], N2['F#'], N2['A'], N3['C'], N3['E']],\r\n 'Gdim7': [N['G'], N['A#'], N2['C#'], N2['E']],\r\n 'Gdom7': [N['G'], N['A#'], N2['D'], N2['F']],\r\n 'G7b5': [N['G'], N['B'], N2['C#'], N2['F']],\r\n 'G7#5': [N['G'], N['B'], N2['D#'], N2['F']],\r\n 'G7b9': [N['G'], N['B'], N2['D'], N2['F'], N2['A#']],\r\n 'G7#9': [N['G'], N['B'], N2['D'], N2['F'], N2['A#']],\r\n 'Gmin7b': [N['G'], N['A#'], N2['D'], N2['F']],\r\n 'G6sus4': [N['G'], N2['C'], N2['D'], N2['E']],\r\n 'G7sus4': [N['G'], N2['C'], N2['D'], N2['F']],\r\n 'G9sus4': [N['G'], N2['C'], N2['D'], N2['F'], N2['G']],\r\n\r\n 'G#': [N['G#'], N2['C'], N2['D#']],\r\n 'G#M': [N['G#'], N2['C'], N2['D#']],\r\n 'G#maj': [N['G#'], N2['C'], N2['D#']],\r\n 'G#min': [N['G#'], N['B'], N2['D#']],\r\n 'G#m': [N['G#'], N['B'], N2['D#']],\r\n 'G#sus4': [N['G#'], N2['C#'], N2['D#']],\r\n 'G#sus2': [N['G#'], N['A#'], N2['D#']],\r\n 'G#aug': [N['G#'], N2['C'], N2['E']],\r\n 'G#dim': [N['G#'], N['B'], N2['D']],\r\n 'G#M6': [N['G#'], N2['C'], N2['D#'], N2['F']],\r\n 'G#maj6': [N['G#'], N2['C'], N2['D#'], N2['F']],\r\n 'G#min6': [N['G#'], N['B'], N2['D#'], N2['F']],\r\n 'G#min7': [N['G#'], N['B'], N2['D#'], N2['F#']],\r\n 'G#7': [N['G#'], N2['C'], N2['D#'], N2['F#']],\r\n 'G#M7': [N['G#'], N2['C'], N2['D#'], N2['G']],\r\n 'G#maj7': [N['G#'], N2['C'], N2['D#'], N2['G']],\r\n 'G#9': [N['G#'], N2['C'], N2['D#'], N2['F#'], N2['A#']],\r\n 'G#M9': [N['G#'], N2['C'], N2['D#'], N2['G'], N2['A#']],\r\n 'G#maj9': [N['G#'], N2['C'], N2['D#'], N2['G'], N2['A#']],\r\n 'G#min9': [N['G#'], N['B'], N2['D#'], N2['F#'], N2['A#']],\r\n 'G#9#5': [N['G#'], N2['C'], N2['E'], N2['F#'], N2['A#']],\r\n 'G#9b5': [N['G#'], N2['C'], N2['D#'], N2['F#'], N2['A#']],\r\n 'G#9aug': [N['G#'], N2['C'], N2['E'], N2['F#'], N2['A#']],\r\n 'G#11': [N['G#'], N2['C'], N2['D#'], N2['F#'], N2['A#'], N3['C#']],\r\n 'G#M11': [N['G#'], N2['C'], N2['D#'], N2['G'], N2['A#'], N3['C#']],\r\n 'G#maj11': [N['G#'], N2['C'], N2['D#'], N2['G'], N2['A#'], N3['C#']],\r\n 'G#11aug': [N['G#'], N2['C'], N2['E'], N2['F#'], N2['A#'], N3['C#']],\r\n 'G#13': [N['G#'], N2['C'], N2['D#'], N2['F#'], N2['A#'], N3['C#'], N3['F']],\r\n 'G#M13': [N['G#'], N2['C'], N2['D#'], N2['G'], N2['A#'], N3['C#'], N3['F']],\r\n 'G#maj13': [N['G#'], N2['C'], N2['D#'], N2['G'], N2['A#'], N3['C#'], N3['F']],\r\n 'G#dim7': [N['G#'], N['B'], N2['D'], N2['F']],\r\n 'G#dom7': [N['G#'], N['B'], N2['D#'], N2['F#']],\r\n 'G#7b5': [N['G#'], N2['C'], N2['D'], N2['F#']],\r\n 'G#7#5': [N['G#'], N2['C'], N2['E'], N2['F#']],\r\n 'G#7b9': [N['G#'], N2['C'], N2['D#'], N2['F#'], N2['A']],\r\n 'G#7#9': [N['G#'], N2['C'], N2['D#'], N2['F#'], N2['B']],\r\n 'G#min7b': [N['G#'], N2['B'], N2['D#'], N2['F#']],\r\n 'G#6sus4': [N['G#'], N2['C#'], N2['D#'], N2['F']],\r\n 'G#7sus4': [N['G#'], N2['C#'], N2['D#'], N2['F#']],\r\n 'G#9sus4': [N['G#'], N2['C#'], N2['D#'], N2['F#'], N2['A#']],\r\n\r\n 'Ab': [N['Ab'], N2['C'], N2['D#']],\r\n 'AbM': [N['Ab'], N2['C'], N2['D#']],\r\n 'Abmaj': [N['Ab'], N2['C'], N2['D#']],\r\n 'Abmin': [N['Ab'], N['B'], N2['D#']],\r\n 'Abm': [N['Ab'], N['B'], N2['D#']],\r\n 'Absus4': [N['Ab'], N2['C#'], N2['D#']],\r\n 'Absus2': [N['Ab'], N['A#'], N2['D#']],\r\n 'Abaug': [N['Ab'], N2['C'], N2['E']],\r\n 'Abdim': [N['Ab'], N['B'], N2['D']],\r\n 'AbM6': [N['Ab'], N2['C'], N2['D#'], N2['F']],\r\n 'Abmaj6': [N['Ab'], N2['C'], N2['D#'], N2['F']],\r\n 'Abmin6': [N['Ab'], N['B'], N2['D#'], N2['F']],\r\n 'Abmin7': [N['Ab'], N['B'], N2['D#'], N2['F#']],\r\n 'Ab7': [N['Ab'], N2['C'], N2['D#'], N2['F#']],\r\n 'AbM7': [N['Ab'], N2['C'], N2['D#'], N2['G']],\r\n 'Abmaj7': [N['Ab'], N2['C'], N2['D#'], N2['G']],\r\n 'Ab9': [N['Ab'], N2['C'], N2['D#'], N2['F#'], N2['A#']],\r\n 'AbM9': [N['Ab'], N2['C'], N2['D#'], N2['G'], N2['A#']],\r\n 'Abmaj9': [N['Ab'], N2['C'], N2['D#'], N2['G'], N2['A#']],\r\n 'Abmin9': [N['Ab'], N['B'], N2['D#'], N2['F#'], N2['A#']],\r\n 'Ab9#5': [N['Ab'], N2['C'], N2['E'], N2['F#'], N2['A#']],\r\n 'Ab9b5': [N['Ab'], N2['C'], N2['D#'], N2['F#'], N2['A#']],\r\n 'Ab9aug': [N['Ab'], N2['C'], N2['E'], N2['F#'], N2['A#']],\r\n 'Ab11': [N['Ab'], N2['C'], N2['D#'], N2['F#'], N2['A#'], N3['C#']],\r\n 'AbM11': [N['Ab'], N2['C'], N2['D#'], N2['G'], N2['A#'], N3['C#']],\r\n 'Abmaj11': [N['Ab'], N2['C'], N2['D#'], N2['G'], N2['A#'], N3['C#']],\r\n 'Ab11aug': [N['Ab'], N2['C'], N2['E'], N2['F#'], N2['A#'], N3['C#']],\r\n 'Ab13': [N['Ab'], N2['C'], N2['D#'], N2['F#'], N2['A#'], N3['C#'], N3['F']],\r\n 'AbM13': [N['Ab'], N2['C'], N2['D#'], N2['G'], N2['A#'], N3['C#'], N3['F']],\r\n 'Abmaj13': [N['Ab'], N2['C'], N2['D#'], N2['G'], N2['A#'], N3['C#'], N3['F']],\r\n 'Abdim7': [N['Ab'], N['B'], N2['D'], N2['F']],\r\n 'Abdom7': [N['Ab'], N['B'], N2['D#'], N2['F#']],\r\n 'Ab7b5': [N['Ab'], N2['C'], N2['D'], N2['F#']],\r\n 'Ab7#5': [N['Ab'], N2['C'], N2['E'], N2['F#']],\r\n 'Ab7b9': [N['Ab'], N2['C'], N2['D#'], N2['F#'], N2['A']],\r\n 'Ab7#9': [N['Ab'], N2['C'], N2['D#'], N2['F#'], N2['B']],\r\n 'Abmin7b': [N['Ab'], N2['B'], N2['D#'], N2['F#']],\r\n 'Ab6sus4': [N['Ab'], N2['C#'], N2['D#'], N2['F']],\r\n 'Ab7sus4': [N['Ab'], N2['C#'], N2['D#'], N2['F#']],\r\n 'Ab9sus4': [N['Ab'], N2['C#'], N2['D#'], N2['F#'], N2['A#']],\r\n\r\n 'A': [N['A'], N2['C#'], N2['E']],\r\n 'AM': [N['A'], N2['C#'], N2['E']],\r\n 'Amaj': [N['A'], N2['C#'], N2['E']],\r\n 'Amin': [N['A'], N2['C'], N2['E']],\r\n 'Am': [N['A'], N2['C'], N2['E']],\r\n 'Asus4': [N['A'], N2['D'], N2['E']],\r\n 'Asus2': [N['A'], N['B'], N2['E']],\r\n 'Aaug': [N['A'], N2['C#'], N2['F']],\r\n 'Adim': [N['A'], N2['C'], N2['D#']],\r\n 'AM6': [N['A'], N2['C#'], N2['E'], N2['F#']],\r\n 'Amaj6': [N['A'], N2['C#'], N2['E'], N2['F#']],\r\n 'Amin6': [N['A'], N2['C'], N2['E'], N2['F#']],\r\n 'Amin7': [N['A'], N2['C'], N2['E'], N2['G']],\r\n 'A7': [N['A'], N2['C#'], N2['E'], N2['A']],\r\n 'AM7': [N['A'], N2['C#'], N2['E'], N2['Ab']],\r\n 'Amaj7': [N['A'], N2['C#'], N2['E'], N2['Ab']],\r\n 'A9': [N['A'], N2['C#'], N2['E'], N2['G'], N2['B']],\r\n 'AM9': [N['A'], N2['C#'], N2['E'], N2['G#'], N2['B']],\r\n 'Amaj9': [N['A'], N2['C#'], N2['E'], N2['G#'], N2['B']],\r\n 'Amin9': [N['A'], N2['C'], N2['E'], N2['G'], N2['B']],\r\n 'A9#5': [N['A'], N2['C#'], N2['F'], N2['G'], N2['B']],\r\n 'A9b5': [N['A'], N2['C#'], N2['D#'], N2['G'], N2['B']],\r\n 'A9aug': [N['A'], N2['C#'], N2['F'], N2['G'], N2['B']],\r\n 'A11': [N['A'], N2['C#'], N2['E'], N2['G'], N2['B'], N3['D']],\r\n 'AM11': [N['A'], N2['C#'], N2['E'], N2['G'], N2['B'], N3['D']],\r\n 'Amaj11': [N['A'], N2['C#'], N2['E'], N2['G#'], N2['B'], N3['D']],\r\n 'A11aug': [N['A'], N2['C#'], N2['F'], N2['G'], N2['B'], N3['D']],\r\n 'A13': [N['A'], N2['C#'], N2['E'], N2['G'], N2['B'], N3['D'], N3['F#']],\r\n 'AM13': [N['A'], N2['C#'], N2['E'], N2['G'], N2['B'], N3['D'], N3['F#']],\r\n 'Amaj13': [N['A'], N2['C#'], N2['E'], N2['G#'], N2['B'], N3['D'], N3['F#']],\r\n 'Adim7': [N['A'], N2['C'], N2['D#'], N2['F#']],\r\n 'Adom7': [N['A'], N2['C'], N2['E'], N2['G']],\r\n 'A7b5': [N['A'], N2['C#'], N2['D#'], N2['G']],\r\n 'A7#5': [N['A'], N2['C#'], N2['F'], N2['G']],\r\n 'A7b9': [N['A'], N2['C#'], N2['E'], N2['G'], N3['C']],\r\n 'A7#9': [N['A'], N2['C#'], N2['E'], N2['G'], N3['C']],\r\n 'Amin7b': [N['A'], N2['C'], N2['E'], N2['G']],\r\n 'A6sus4': [N['A'], N2['D'], N2['E'], N2['F#']],\r\n 'A7sus4': [N['A'], N2['D'], N2['E'], N2['G']],\r\n 'A9sus4': [N['A'], N2['D'], N2['E'], N2['G'], N2['B']],\r\n\r\n 'A#': [N['A#'], N2['D'], N2['F']],\r\n 'A#M': [N['A#'], N2['D'], N2['F']],\r\n 'A#maj': [N['A#'], N2['D'], N2['F']],\r\n 'A#min': [N['A#'], N2['C#'], N2['F']],\r\n 'A#m': [N['A#'], N2['C#'], N2['F']],\r\n 'A#sus4': [N['A#'], N2['D#'], N2['F']],\r\n 'A#sus2': [N['A#'], N2['C'], N2['F']],\r\n 'A#aug': [N['A#'], N2['D'], N2['F#']],\r\n 'A#dim': [N['A#'], N2['C#'], N2['E']],\r\n 'A#M6': [N['A#'], N2['D'], N2['F'], N2['G']],\r\n 'A#maj6': [N['A#'], N2['D'], N2['F'], N2['G']],\r\n 'A#min6': [N['A#'], N2['C#'], N2['F'], N2['G']],\r\n 'A#min7': [N['A#'], N2['C#'], N2['F'], N2['G#']],\r\n 'A#7': [N['A#'], N2['D'], N2['F'], N2['G#']],\r\n 'A#M7': [N['A#'], N2['D'], N2['F'], N2['A']],\r\n 'A#maj7': [N['A#'], N2['D'], N2['F'], N2['A']],\r\n 'A#9': [N['A#'], N2['D'], N2['F'], N2['G#'], N3['C']],\r\n 'A#M9': [N['A#'], N2['D'], N2['F'], N2['A'], N3['C']],\r\n 'A#maj9': [N['A#'], N2['D'], N2['F'], N2['A'], N3['C']],\r\n 'A#min9': [N['A#'], N2['C#'], N2['F'], N2['G#'], N3['C']],\r\n 'A#9#5': [N['A#'], N2['D'], N2['F#'], N2['G#'], N3['C']],\r\n 'A#9b5': [N['A#'], N2['D'], N2['F'], N2['G#'], N3['C']],\r\n 'A#9aug': [N['A#'], N2['D'], N2['F#'], N2['G#'], N3['C']],\r\n 'A#11': [N['A#'], N2['D'], N2['F'], N2['G#'], N3['C'], N3['D#']],\r\n 'A#M11': [N['A#'], N2['D'], N2['F'], N2['A'], N3['C'], N3['D#']],\r\n 'A#maj11': [N['A#'], N2['D'], N2['F'], N2['A'], N3['C'], N3['D#']],\r\n 'A#11aug': [N['A#'], N2['D'], N2['F#'], N2['G#'], N3['C'], N3['D#']],\r\n 'A#13': [N['A#'], N2['D'], N2['F'], N2['G#'], N3['C'], N3['D#'], N3['F']],\r\n 'A#M13': [N['A#'], N2['D'], N2['F'], N2['A'], N3['C'], N3['D#'], N3['F']],\r\n 'A#maj13': [N['A#'], N2['D'], N2['F'], N2['A'], N3['C'], N3['D#'], N3['F']],\r\n 'A#dim7': [N['A#'], N2['C#'], N2['E'], N2['G']],\r\n 'A#dom7': [N['A#'], N2['C#'], N2['F'], N2['G#']],\r\n 'A#7b5': [N['A#'], N2['D'], N2['E'], N2['G#']],\r\n 'A#7#5': [N['A#'], N2['D'], N2['F#'], N2['G#']],\r\n 'A#7b9': [N['A#'], N2['D'], N2['F'], N2['G#'], N3['C#']],\r\n 'A#7#9': [N['A#'], N2['D'], N2['F'], N2['G#'], N3['C#']],\r\n 'A#min7b': [N['A#'], N2['C'], N2['F'], N2['G#']],\r\n 'A#6sus4': [N['A#'], N2['D#'], N2['F'], N2['G']],\r\n 'A#7sus4': [N['A#'], N2['D#'], N2['F'], N2['G#']],\r\n 'A#9sus4': [N['A#'], N2['D#'], N2['F'], N2['G#'], N3['C']],\r\n\r\n 'Bb': [N['Bb'], N2['D'], N2['F']],\r\n 'BbM': [N['Bb'], N2['D'], N2['F']],\r\n 'Bbmaj': [N['Bb'], N2['D'], N2['F']],\r\n 'Bbmin': [N['Bb'], N2['C#'], N2['F']],\r\n 'Bbm': [N['Bb'], N2['C#'], N2['F']],\r\n 'Bbsus4': [N['Bb'], N2['D#'], N2['F']],\r\n 'Bbsus2': [N['Bb'], N2['C'], N2['F']],\r\n 'Bbaug': [N['Bb'], N2['D'], N2['F#']],\r\n 'Bbdim': [N['Bb'], N2['C#'], N2['E']],\r\n 'BbM6': [N['Bb'], N2['D'], N2['F'], N2['G']],\r\n 'Bbmaj6': [N['Bb'], N2['D'], N2['F'], N2['G']],\r\n 'Bbmin6': [N['Bb'], N2['C#'], N2['F'], N2['G']],\r\n 'Bbmin7': [N['Bb'], N2['C#'], N2['F'], N2['G#']],\r\n 'Bb7': [N['Bb'], N2['D'], N2['F'], N2['G#']],\r\n 'BbM7': [N['Bb'], N2['D'], N2['F'], N2['A']],\r\n 'Bbmaj7': [N['Bb'], N2['D'], N2['F'], N2['A']],\r\n 'Bb9': [N['Bb'], N2['D'], N2['F'], N2['G#'], N3['C']],\r\n 'BbM9': [N['Bb'], N2['D'], N2['F'], N2['A'], N3['C']],\r\n 'Bbmaj9': [N['Bb'], N2['D'], N2['F'], N2['A'], N3['C']],\r\n 'Bbmin9': [N['Bb'], N2['C#'], N2['F'], N2['G#'], N3['C']],\r\n 'Bb9#5': [N['Bb'], N2['D'], N2['F#'], N2['G#'], N3['C']],\r\n 'Bb9b5': [N['Bb'], N2['D'], N2['F'], N2['G#'], N3['C']],\r\n 'Bb9aug': [N['Bb'], N2['D'], N2['F#'], N2['G#'], N3['C']],\r\n 'Bb11': [N['Bb'], N2['D'], N2['F'], N2['G#'], N3['C'], N3['D#']],\r\n 'BbM11': [N['Bb'], N2['D'], N2['F'], N2['A'], N3['C'], N3['D#']],\r\n 'Bbmaj11': [N['Bb'], N2['D'], N2['F'], N2['A'], N3['C'], N3['D#']],\r\n 'Bb11aug': [N['Bb'], N2['D'], N2['F#'], N2['G#'], N3['C'], N3['D#']],\r\n 'Bb13': [N['Bb'], N2['D'], N2['F'], N2['G#'], N3['C'], N3['D#'], N3['F']],\r\n 'BbM13': [N['Bb'], N2['D'], N2['F'], N2['A'], N3['C'], N3['D#'], N3['F']],\r\n 'Bbmaj13': [N['Bb'], N2['D'], N2['F'], N2['A'], N3['C'], N3['D#'], N3['F']],\r\n 'Bbdim7': [N['Bb'], N2['C#'], N2['E'], N2['G']],\r\n 'Bbdom7': [N['Bb'], N2['C#'], N2['F'], N2['G#']],\r\n 'Bb7b5': [N['Bb'], N2['D'], N2['E'], N2['G#']],\r\n 'Bb7#5': [N['Bb'], N2['D'], N2['F#'], N2['G#']],\r\n 'Bb7b9': [N['Bb'], N2['D'], N2['F'], N2['G#'], N3['C#']],\r\n 'Bb7#9': [N['Bb'], N2['D'], N2['F'], N2['G#'], N3['C#']],\r\n 'Bbmin7b': [N['Bb'], N2['C'], N2['F'], N2['G#']],\r\n 'Bb6sus4': [N['Bb'], N2['D#'], N2['F'], N2['G']],\r\n 'Bb7sus4': [N['Bb'], N2['D#'], N2['F'], N2['G#']],\r\n 'Bb9sus4': [N['Bb'], N2['D#'], N2['F'], N2['G#'], N3['C']],\r\n\r\n 'B': [N['B'], N2['D#'], N2['F#']],\r\n 'BM': [N['B'], N2['D#'], N2['F#']],\r\n 'Bmaj': [N['B'], N2['D#'], N2['F#']],\r\n 'Bmin': [N['B'], N2['D'], N2['F#']],\r\n 'Bm': [N['B'], N2['D'], N2['F#']],\r\n 'Bsus4': [N['B'], N2['E'], N2['F#']],\r\n 'Bsus2': [N['B'], N2['C#'], N2['F#']],\r\n 'Baug': [N['B'], N2['D#'], N2['G']],\r\n 'Bdim': [N['B'], N2['D'], N2['F']],\r\n 'BM6': [N['B'], N2['D#'], N2['F#'], N2['Ab']],\r\n 'Bmaj6': [N['B'], N2['D#'], N2['F#'], N2['Ab']],\r\n 'Bmin6': [N['B'], N2['D'], N2['F#'], N2['Ab']],\r\n 'Bmin7': [N['B'], N2['D'], N2['F#'], N2['Bb']],\r\n 'B7': [N['B'], N2['D#'], N2['F#'], N2['B']],\r\n 'BM7': [N['B'], N2['D#'], N2['F#'], N2['B']],\r\n 'Bmaj7': [N['B'], N2['D#'], N2['F#'], N2['B']],\r\n 'B9': [N['B'], N2['D#'], N2['F#'], N2['A'], N3['C#']],\r\n 'BM9': [N['B'], N2['D#'], N2['F#'], N2['B'], N3['C#']],\r\n 'Bmaj9': [N['B'], N2['D#'], N2['F#'], N2['B'], N3['C#']],\r\n 'Bmin9': [N['B'], N2['D'], N2['F#'], N2['A'], N3['C#']],\r\n 'B9#5': [N['B'], N2['D#'], N2['G'], N2['A'], N3['C#']],\r\n 'B9b5': [N['B'], N2['D#'], N2['F'], N2['A'], N3['C#']],\r\n 'B9aug': [N['B'], N2['D#'], N2['G'], N2['A'], N3['C#']],\r\n 'B11': [N['B'], N2['D#'], N2['F#'], N2['A'], N3['C#'], N3['E']],\r\n 'BM11': [N['B'], N2['D#'], N2['F#'], N2['A'], N3['C#'], N3['E']],\r\n 'Bmaj11': [N['B'], N2['D#'], N2['F#'], N2['Bb'], N3['C#'], N3['E']],\r\n 'B11aug': [N['B'], N2['D#'], N2['G'], N2['A'], N3['C#'], N3['E']],\r\n 'B13': [N['B'], N2['D#'], N2['F#'], N2['A'], N3['C#'], N3['E'], N3['Ab']],\r\n 'BM13': [N['B'], N2['D#'], N2['F#'], N2['A'], N3['C#'], N3['E'], N3['Ab']],\r\n 'Bmaj13': [N['B'], N2['D#'], N2['F#'], N2['B'], N3['C#'], N3['E'], N3['Ab']],\r\n 'Bdim7': [N['B'], N2['D'], N2['F'], N2['Ab']],\r\n 'Bdom7': [N['B'], N2['D'], N2['F#'], N2['A']],\r\n 'B7b5': [N['B'], N2['D#'], N['F'], N2['A']],\r\n 'B7#5': [N['B'], N2['D#'], N2['G'], N2['A']],\r\n 'B7b9': [N['B'], N2['D#'], N2['F#'], N2['A'], N3['C']],\r\n 'B7#9': [N['B'], N2['D#'], N2['F#'], N2['A'], N3['D']],\r\n 'Bmin7b': [N['B'], N2['D'], N2['F#'], N2['A']],\r\n 'B6sus4': [N['B'], N2['E'], N2['F#'], N2['Ab']],\r\n 'B7sus4': [N['B'], N2['E'], N2['F#'], N2['A']],\r\n 'B9sus4': [N['B'], N2['E'], N2['F#'], N2['A'], N3['C#']],\r\n\r\n }\r\n\r\n}\r\n","import React, { useEffect, Component } from \"react\";\r\nimport * as matchingNotes from './Constant.js'\r\n\r\nconst scaleWidth = 500;\r\nconst scaleHeight = 500;\r\n\r\nconst drawWhiteKeys = (props) => {\r\n\r\n}\r\n\r\nconst drawingPiano = (canvas, scaleX, scaleY, selectedNote) => {\r\n\r\n //var canvas = document.getElementById(\"pianoBoard\");\r\n var ctx = canvas.getContext('2d');\r\n ctx.scale(scaleX, scaleY);\r\n ctx.clearRect(0, 0, canvas.clientWidth, canvas.clientHeight);\r\n\r\n const canvasW = window.innerWidth;\r\n const canvasH = window.innerHeight;\r\n const pianoW = 600;\r\n const pianoH = 150;\r\n const pianoX = (canvasW / 2) - (pianoW / 2);\r\n const pianoY = (canvasH / 2) - (pianoH / 2);\r\n\r\n //canvas\r\n canvas.width = canvasW;\r\n canvas.height = canvasH;\r\n\r\n const keyboardContainerTopPadding = 55;\r\n const keyboardContainerBottomPadding = 5;\r\n const keyboardContainerSidePadding = 20;\r\n const keyboardContainerX = pianoX + keyboardContainerSidePadding;\r\n const keyboardContainerY = pianoY + keyboardContainerTopPadding;\r\n const keyboardContainerWidth = pianoW - (keyboardContainerSidePadding * 2);\r\n const keyboardContainerHeight = pianoH - (keyboardContainerTopPadding + keyboardContainerBottomPadding);\r\n const totalOctaves = 3;\r\n const notesPerOctave = 12;\r\n const whiteNoteIndexes = [1, 3, 5, 6, 8, 10, 12];\r\n const blackNoteIndexes = [2, 4, 7, 9, 11];\r\n const whiteNotesPerOctaveCount = 7;\r\n const blackNotesPerOctaveCount = 5;\r\n const whiteNoteCount = totalOctaves * whiteNotesPerOctaveCount;\r\n const blackNoteCount = totalOctaves * blackNotesPerOctaveCount;\r\n const whiteNoteWidth = keyboardContainerWidth / whiteNoteCount;\r\n const blackNoteWidth = whiteNoteWidth * 0.6;\r\n const whiteNoteHeight = keyboardContainerHeight;\r\n const blackNoteHeight = whiteNoteHeight * 0.65;\r\n const whiteNoteGap = 1;\r\n const pianoHighlightShadowSize = 2;\r\n const pianoWhiteNoteColor = \"white\";\r\n const pianoBlackNoteColor = \"black\"\r\n\r\n const primaryBackgroundColor = \"#f1d4d4\";\r\n const pianoKeyboardColor = \"#7a7a7a\";\r\n const pianoShadowColor = \"#3f3f3f\";\r\n const pianoHighlightColor = \"#484c7f\";\r\n const pianoKeybedBackgroundColor = \"#9a9a9a\";\r\n const pianoNoteSelectedColor = \"#1ba7d1\";\r\n const pianoNoteSelectedShadowColor = \"#3f3f3f\";\r\n\r\n ctx.fillStyle = \"#efb4b4\";\r\n ctx.fillRect(0, 0, canvasW, canvasH);\r\n\r\n\r\n //Draw canvas background\r\n ctx.fillStyle = primaryBackgroundColor;\r\n ctx.fillRect(0, 0, canvasW, canvasH / 2);\r\n\r\n\r\n //Draw keyboard background\r\n ctx.fillStyle = pianoKeyboardColor;\r\n ctx.highlightStyle = pianoHighlightColor;\r\n ctx.shadowStyle = pianoShadowColor;\r\n ctx.highlightSize = pianoHighlightShadowSize;\r\n ctx.shadowSize = pianoHighlightShadowSize;\r\n ctx.fillRect(pianoX, pianoY, pianoW, pianoH);\r\n\r\n //Draw background behind the keys\r\n ctx.fillStyle = pianoKeybedBackgroundColor;\r\n ctx.fillRect(keyboardContainerX, keyboardContainerY, keyboardContainerWidth, keyboardContainerHeight);\r\n\r\n //Draw shadow below the keys\r\n ctx.beginPath();\r\n ctx.moveTo(keyboardContainerX + 1, pianoY + pianoH - keyboardContainerBottomPadding);\r\n ctx.lineTo(keyboardContainerX + keyboardContainerBottomPadding + 1, pianoY + pianoH);\r\n ctx.lineTo(pianoX + pianoW, pianoY + pianoH);\r\n ctx.lineTo(pianoX + pianoW - keyboardContainerSidePadding, pianoY + pianoH - keyboardContainerBottomPadding);\r\n ctx.closePath();\r\n ctx.fillStyle = pianoShadowColor;\r\n ctx.fill();\r\n\r\n // Draw white keys\r\n\r\n // console.log(props.testState);\r\n\r\n\r\n let i = 0;\r\n let currentOctave = 0;\r\n for (i = 0; i < whiteNoteCount; i++) {\r\n currentOctave = Math.floor(i / whiteNotesPerOctaveCount);\r\n const x = i * whiteNoteWidth + keyboardContainerX + 1;\r\n const y = keyboardContainerY;\r\n const w = whiteNoteWidth - whiteNoteGap;\r\n const h = whiteNoteHeight;\r\n const noteIndex = whiteNoteIndexes[i % whiteNoteIndexes.length];\r\n const indexToCheck = noteIndex + (currentOctave * notesPerOctave);\r\n let textColor = '#888';\r\n\r\n const data = matchingNotes.noteData.testData;\r\n\r\n //Draw highlighted key\r\n if (data[selectedNote.text]) {\r\n\r\n //console.log(data[selectedNote.text]);\r\n ctx.fillStyle = pianoWhiteNoteColor;\r\n ctx.fillRect(x, y, w, h);\r\n\r\n for (let j = 0; j < data[selectedNote.text].length; j++) {\r\n if (indexToCheck === data[selectedNote.text][j]) {\r\n ctx.fillStyle = pianoNoteSelectedColor;\r\n ctx.fillRect(x, y, w, h);\r\n\r\n\r\n }\r\n }\r\n\r\n if (indexToCheck === data[selectedNote.text][0]) {\r\n ctx.fillStyle = \"white\";\r\n ctx.beginPath();\r\n ctx.arc(x + w / 2, y + h - 15, 6, 0, Math.PI * 5, false);\r\n ctx.closePath();\r\n ctx.fill();\r\n }\r\n\r\n //Draw top shadow\r\n ctx.fillStyle = pianoNoteSelectedShadowColor;\r\n ctx.fillRect(x, y, w, 2);\r\n\r\n } else {\r\n //Draw white key\r\n ctx.fillStyle = pianoWhiteNoteColor;\r\n ctx.fillRect(x, y, w, h);\r\n\r\n //Draw top shadow\r\n ctx.fillStyle = pianoNoteSelectedShadowColor;\r\n ctx.fillRect(x, y, w, 2);\r\n }\r\n\r\n }\r\n\r\n //Draw black keys\r\n\r\n const blackNoteOffsets = [1, 1, 2, 2, 2];\r\n currentOctave = 0;\r\n const octaveWidth = keyboardContainerWidth / totalOctaves;\r\n for (i = 0; i < blackNoteCount; i++) {\r\n currentOctave = Math.floor(i / blackNotesPerOctaveCount);\r\n const offsetIndex = i % blackNoteOffsets.length;\r\n const offset = blackNoteOffsets[offsetIndex];\r\n const x = (currentOctave * octaveWidth) + ((offsetIndex + offset) * whiteNoteWidth) - (blackNoteWidth / 2) + keyboardContainerX;\r\n const y = keyboardContainerY;\r\n const w = blackNoteWidth;\r\n const h = blackNoteHeight;\r\n const noteIndex = blackNoteIndexes[i % blackNoteIndexes.length];\r\n const indexToCheck = noteIndex + (currentOctave * notesPerOctave);\r\n\r\n const data = matchingNotes.noteData.testData;\r\n\r\n //Draw highlighted key\r\n if (data[selectedNote.text]) {\r\n\r\n //console.log(data[selectedNote.text]);\r\n ctx.fillStyle = pianoBlackNoteColor;\r\n ctx.fillRect(x, y, w, h);\r\n\r\n for (let j = 0; j < data[selectedNote.text].length; j++) {\r\n if (indexToCheck === data[selectedNote.text][j]) {\r\n ctx.fillStyle = pianoNoteSelectedColor;\r\n ctx.fillRect(x, y, w, h);\r\n }\r\n\r\n if (indexToCheck === data[selectedNote.text][0]) {\r\n ctx.fillStyle = \"white\";\r\n ctx.beginPath();\r\n ctx.arc(x + w / 2, y + h - 15, 6, 0, Math.PI * 5, false);\r\n ctx.closePath();\r\n ctx.fill();\r\n }\r\n\r\n //Draw top shadow\r\n ctx.fillStyle = pianoNoteSelectedShadowColor;\r\n ctx.fillRect(x, y, w, 2);\r\n }\r\n\r\n } else {\r\n //Draw white key\r\n ctx.fillStyle = \"black\";\r\n ctx.fillRect(x, y, w, h);\r\n\r\n ctx.fillStyle = \"#555\";\r\n ctx.fillRect(x, y + h - 7, w, 7);\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nconst CanvasDraw = (props) => {\r\n const selectedNote = props.testState;\r\n const [scale, setScale] = React.useState({ x: 1, y: 1 });\r\n const canvas = React.useRef(null);\r\n\r\n const calculateScaleX = () => (!canvas.current ? 0 : canvas.current.clientWidth / scaleWidth);\r\n const calculateScaleY = () => (!canvas.current ? 0 : canvas.current.clientHeight / scaleHeight);\r\n\r\n const resized = () => {\r\n canvas.current.width = canvas.current.clientWidth;\r\n canvas.current.height = canvas.current.clientHeight;\r\n setScale({ x: calculateScaleX(), y: calculateScaleY() });\r\n };\r\n\r\n //useEffect(() => resized(), []);\r\n\r\n useEffect(() => {\r\n const currentCanvas = canvas.current;\r\n currentCanvas.addEventListener(\"resize\", resized);\r\n return () => currentCanvas.removeEventListener(\"resize\", resized);\r\n });\r\n\r\n useEffect(() => {\r\n drawingPiano(canvas.current, scale.x, scale.y, selectedNote);\r\n }, [scale, selectedNote]);\r\n\r\n return ;\r\n}\r\n\r\nexport default CanvasDraw;","import React, { Component } from 'react'\r\nimport CanvasDraw from './CanvasDraw';\r\nimport './Display.css';\r\n\r\nclass Display extends Component {\r\n\r\n constructor() {\r\n super();\r\n this.state = { text: \"\" };\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n };\r\n\r\n handleInputChange(event) {\r\n const value = event.target.value;\r\n this.setState({ text: value });\r\n }\r\n\r\n render() {\r\n\r\n const testState = this.state;\r\n\r\n return (\r\n