0000: 76 61 72 20 76 6f 77 73 20 3d 20 72 65 71 75 69 var vows = requi
0010: 72 65 28 27 76 6f 77 73 27 29 2c 0a 20 20 20 20 re('vows'),.
0020: 61 73 73 65 72 74 20 3d 20 72 65 71 75 69 72 65 assert = require
0030: 28 27 61 73 73 65 72 74 27 29 2c 0a 20 20 20 20 ('assert'),.
0040: 74 65 6f 72 69 61 20 3d 20 72 65 71 75 69 72 65 teoria = require
0050: 28 27 2e 2e 2f 27 29 3b 0a 0a 76 6f 77 73 2e 64 ('../');..vows.d
0060: 65 73 63 72 69 62 65 28 27 53 63 61 6c 65 73 27 escribe('Scales'
0070: 29 2e 61 64 64 42 61 74 63 68 28 7b 0a 20 20 27 ).addBatch({. '
0080: 41 62 32 27 3a 20 7b 0a 20 20 20 20 74 6f 70 69 Ab2': {. topi
0090: 63 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a c: function() {.
00a0: 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 65 6f return teo
00b0: 72 69 61 2e 6e 6f 74 65 28 27 41 62 32 27 29 3b ria.note('Ab2');
00c0: 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 20 27 42 6c . },.. 'Bl
00d0: 75 65 73 27 3a 20 66 75 6e 63 74 69 6f 6e 28 6e ues': function(n
00e0: 6f 74 65 29 20 7b 0a 20 20 20 20 20 20 61 73 73 ote) {. ass
00f0: 65 72 74 2e 64 65 65 70 45 71 75 61 6c 28 74 65 ert.deepEqual(te
0100: 6f 72 69 61 2e 6e 6f 74 65 28 27 67 23 27 29 2e oria.note('g#').
0110: 73 63 61 6c 65 28 27 62 6c 75 65 73 27 29 2e 73 scale('blues').s
0120: 69 6d 70 6c 65 28 29 2c 0a 20 20 20 20 20 20 20 imple(),.
0130: 20 20 20 5b 27 67 23 27 2c 20 27 62 27 2c 20 27 ['g#', 'b', '
0140: 63 23 27 2c 20 27 64 27 2c 20 27 64 23 27 2c 20 c#', 'd', 'd#',
0150: 27 66 23 27 5d 29 3b 0a 20 20 20 20 7d 2c 0a 0a 'f#']);. },..
0160: 20 20 20 20 27 49 6f 6e 69 61 6e 2f 4d 61 6a 6f 'Ionian/Majo
0170: 72 27 3a 20 66 75 6e 63 74 69 6f 6e 28 6e 6f 74 r': function(not
0180: 65 29 20 7b 0a 20 20 20 20 20 20 61 73 73 65 72 e) {. asser
0190: 74 2e 64 65 65 70 45 71 75 61 6c 28 6e 6f 74 65 t.deepEqual(note
01a0: 2e 73 63 61 6c 65 28 27 69 6f 6e 69 61 6e 27 29 .scale('ionian')
01b0: 2e 73 69 6d 70 6c 65 28 29 2c 0a 20 20 20 20 20 .simple(),.
01c0: 20 20 20 20 20 5b 27 61 62 27 2c 20 27 62 62 27 ['ab', 'bb'
01d0: 2c 20 27 63 27 2c 20 27 64 62 27 2c 20 27 65 62 , 'c', 'db', 'eb
01e0: 27 2c 20 27 66 27 2c 20 27 67 27 5d 29 3b 0a 20 ', 'f', 'g']);.
01f0: 20 20 20 7d 2c 0a 0a 20 20 20 20 27 44 6f 72 69 },.. 'Dori
0200: 61 6e 27 3a 20 66 75 6e 63 74 69 6f 6e 28 6e 6f an': function(no
0210: 74 65 29 20 7b 0a 20 20 20 20 20 20 61 73 73 65 te) {. asse
0220: 72 74 2e 64 65 65 70 45 71 75 61 6c 28 6e 6f 74 rt.deepEqual(not
0230: 65 2e 73 63 61 6c 65 28 27 64 6f 72 69 61 6e 27 e.scale('dorian'
0240: 29 2e 73 69 6d 70 6c 65 28 29 2c 0a 20 20 20 20 ).simple(),.
0250: 20 20 20 20 20 20 5b 27 61 62 27 2c 20 27 62 62 ['ab', 'bb
0260: 27 2c 20 27 63 62 27 2c 20 27 64 62 27 2c 20 27 ', 'cb', 'db', '
0270: 65 62 27 2c 20 27 66 27 2c 20 27 67 62 27 5d 29 eb', 'f', 'gb'])
0280: 3b 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 20 27 50 ;. },.. 'P
0290: 68 72 79 67 69 61 6e 27 3a 20 66 75 6e 63 74 69 hrygian': functi
02a0: 6f 6e 28 6e 6f 74 65 29 20 7b 0a 20 20 20 20 20 on(note) {.
02b0: 20 61 73 73 65 72 74 2e 64 65 65 70 45 71 75 61 assert.deepEqua
02c0: 6c 28 6e 6f 74 65 2e 73 63 61 6c 65 28 27 70 68 l(note.scale('ph
02d0: 72 79 67 69 61 6e 27 29 2e 73 69 6d 70 6c 65 28 rygian').simple(
02e0: 29 2c 0a 20 20 20 20 20 20 20 20 20 20 5b 22 61 ),. ["a
02f0: 62 22 2c 20 22 62 62 62 22 2c 20 22 63 62 22 2c b", "bbb", "cb",
0300: 20 22 64 62 22 2c 20 22 65 62 22 2c 20 22 66 62 "db", "eb", "fb
0310: 22 2c 20 22 67 62 22 5d 29 3b 0a 20 20 20 20 7d ", "gb"]);. }
0320: 2c 0a 0a 20 20 20 20 27 4c 79 64 69 61 6e 27 3a ,.. 'Lydian':
0330: 20 66 75 6e 63 74 69 6f 6e 28 6e 6f 74 65 29 20 function(note)
0340: 7b 0a 20 20 20 20 20 20 61 73 73 65 72 74 2e 64 {. assert.d
0350: 65 65 70 45 71 75 61 6c 28 6e 6f 74 65 2e 73 63 eepEqual(note.sc
0360: 61 6c 65 28 27 6c 79 64 69 61 6e 27 29 2e 73 69 ale('lydian').si
0370: 6d 70 6c 65 28 29 2c 0a 20 20 20 20 20 20 20 20 mple(),.
0380: 20 20 5b 22 61 62 22 2c 20 22 62 62 22 2c 20 22 ["ab", "bb", "
0390: 63 22 2c 20 22 64 22 2c 20 22 65 62 22 2c 20 22 c", "d", "eb", "
03a0: 66 22 2c 20 22 67 22 5d 29 3b 0a 20 20 20 20 7d f", "g"]);. }
03b0: 2c 0a 0a 20 20 20 20 27 4d 69 78 6f 6c 79 64 69 ,.. 'Mixolydi
03c0: 61 6e 27 3a 20 66 75 6e 63 74 69 6f 6e 28 6e 6f an': function(no
03d0: 74 65 29 20 7b 0a 20 20 20 20 20 20 61 73 73 65 te) {. asse
03e0: 72 74 2e 64 65 65 70 45 71 75 61 6c 28 6e 6f 74 rt.deepEqual(not
03f0: 65 2e 73 63 61 6c 65 28 27 6d 69 78 6f 6c 79 64 e.scale('mixolyd
0400: 69 61 6e 27 29 2e 73 69 6d 70 6c 65 28 29 2c 0a ian').simple(),.
0410: 20 20 20 20 20 20 20 20 20 20 5b 22 61 62 22 2c ["ab",
0420: 20 22 62 62 22 2c 20 22 63 22 2c 20 22 64 62 22 "bb", "c", "db"
0430: 2c 20 22 65 62 22 2c 20 22 66 22 2c 20 22 67 62 , "eb", "f", "gb
0440: 22 5d 29 3b 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 "]);. },..
0450: 20 27 41 65 6f 6c 69 61 6e 2f 4d 69 6e 6f 72 27 'Aeolian/Minor'
0460: 3a 20 66 75 6e 63 74 69 6f 6e 28 6e 6f 74 65 29 : function(note)
0470: 20 7b 0a 20 20 20 20 20 20 61 73 73 65 72 74 2e {. assert.
0480: 64 65 65 70 45 71 75 61 6c 28 6e 6f 74 65 2e 73 deepEqual(note.s
0490: 63 61 6c 65 28 27 61 65 6f 6c 69 61 6e 27 29 2e cale('aeolian').
04a0: 73 69 6d 70 6c 65 28 29 2c 0a 20 20 20 20 20 20 simple(),.
04b0: 20 20 20 20 5b 22 61 62 22 2c 20 22 62 62 22 2c ["ab", "bb",
04c0: 20 22 63 62 22 2c 20 22 64 62 22 2c 20 22 65 62 "cb", "db", "eb
04d0: 22 2c 20 22 66 62 22 2c 20 22 67 62 22 5d 29 3b ", "fb", "gb"]);
04e0: 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 20 27 4c 6f . },.. 'Lo
04f0: 63 72 69 61 6e 27 3a 20 66 75 6e 63 74 69 6f 6e crian': function
0500: 28 6e 6f 74 65 29 20 7b 0a 20 20 20 20 20 20 61 (note) {. a
0510: 73 73 65 72 74 2e 64 65 65 70 45 71 75 61 6c 28 ssert.deepEqual(
0520: 6e 6f 74 65 2e 73 63 61 6c 65 28 27 6c 6f 63 72 note.scale('locr
0530: 69 61 6e 27 29 2e 73 69 6d 70 6c 65 28 29 2c 0a ian').simple(),.
0540: 20 20 20 20 20 20 20 20 20 20 5b 22 61 62 22 2c ["ab",
0550: 20 22 62 62 62 22 2c 20 22 63 62 22 2c 20 22 64 "bbb", "cb", "d
0560: 62 22 2c 20 22 65 62 62 22 2c 20 22 66 62 22 2c b", "ebb", "fb",
0570: 20 22 67 62 22 5d 29 3b 0a 20 20 20 20 7d 2c 0a "gb"]);. },.
0580: 0a 20 20 20 20 27 4d 61 6a 6f 72 20 50 65 6e 74 . 'Major Pent
0590: 61 74 6f 6e 69 63 27 3a 20 66 75 6e 63 74 69 6f atonic': functio
05a0: 6e 28 6e 6f 74 65 29 20 7b 0a 20 20 20 20 20 20 n(note) {.
05b0: 61 73 73 65 72 74 2e 64 65 65 70 45 71 75 61 6c assert.deepEqual
05c0: 28 6e 6f 74 65 2e 73 63 61 6c 65 28 27 6d 61 6a (note.scale('maj
05d0: 6f 72 70 65 6e 74 61 74 6f 6e 69 63 27 29 2e 73 orpentatonic').s
05e0: 69 6d 70 6c 65 28 29 2c 0a 20 20 20 20 20 20 20 imple(),.
05f0: 20 20 20 5b 22 61 62 22 2c 20 22 62 62 22 2c 20 ["ab", "bb",
0600: 22 63 22 2c 20 22 65 62 22 2c 20 22 66 22 5d 29 "c", "eb", "f"])
0610: 3b 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 20 27 4d ;. },.. 'M
0620: 69 6e 6f 72 20 50 65 6e 74 61 74 6f 6e 69 63 27 inor Pentatonic'
0630: 3a 20 66 75 6e 63 74 69 6f 6e 28 6e 6f 74 65 29 : function(note)
0640: 20 7b 0a 20 20 20 20 20 20 61 73 73 65 72 74 2e {. assert.
0650: 64 65 65 70 45 71 75 61 6c 28 6e 6f 74 65 2e 73 deepEqual(note.s
0660: 63 61 6c 65 28 27 6d 69 6e 6f 72 70 65 6e 74 61 cale('minorpenta
0670: 74 6f 6e 69 63 27 29 2e 73 69 6d 70 6c 65 28 29 tonic').simple()
0680: 2c 0a 20 20 20 20 20 20 20 20 20 20 5b 22 61 62 ,. ["ab
0690: 22 2c 20 22 63 62 22 2c 20 22 64 62 22 2c 20 22 ", "cb", "db", "
06a0: 65 62 22 2c 20 22 67 62 22 5d 29 3b 0a 20 20 20 eb", "gb"]);.
06b0: 20 7d 2c 0a 0a 20 20 20 20 27 43 68 72 6f 6d 61 },.. 'Chroma
06c0: 74 69 63 27 3a 20 66 75 6e 63 74 69 6f 6e 28 6e tic': function(n
06d0: 6f 74 65 29 20 7b 0a 20 20 20 20 20 20 61 73 73 ote) {. ass
06e0: 65 72 74 2e 64 65 65 70 45 71 75 61 6c 28 6e 6f ert.deepEqual(no
06f0: 74 65 2e 73 63 61 6c 65 28 27 63 68 72 6f 6d 61 te.scale('chroma
0700: 74 69 63 27 29 2e 73 69 6d 70 6c 65 28 29 2c 0a tic').simple(),.
0710: 20 20 20 20 20 20 20 20 20 20 5b 22 61 62 22 2c ["ab",
0720: 20 22 62 62 62 22 2c 20 22 62 62 22 2c 20 22 63 "bbb", "bb", "c
0730: 62 22 2c 20 22 63 22 2c 20 22 64 62 22 2c 0a 20 b", "c", "db",.
0740: 20 20 20 20 20 20 20 20 20 20 22 64 22 2c 20 22 "d", "
0750: 65 62 22 2c 20 22 66 62 22 2c 20 22 66 22 2c 20 eb", "fb", "f",
0760: 22 67 62 22 2c 20 22 67 22 5d 29 3b 0a 20 20 20 "gb", "g"]);.
0770: 20 7d 2c 0a 0a 20 20 20 20 27 57 68 6f 6c 65 20 },.. 'Whole
0780: 54 6f 6e 65 27 3a 20 66 75 6e 63 74 69 6f 6e 28 Tone': function(
0790: 6e 6f 74 65 29 20 7b 0a 20 20 20 20 20 20 61 73 note) {. as
07a0: 73 65 72 74 2e 64 65 65 70 45 71 75 61 6c 28 74 sert.deepEqual(t
07b0: 65 6f 72 69 61 2e 6e 6f 74 65 28 27 63 27 29 2e eoria.note('c').
07c0: 73 63 61 6c 65 28 27 77 68 6f 6c 65 74 6f 6e 65 scale('wholetone
07d0: 27 29 2e 73 69 6d 70 6c 65 28 29 2c 0a 20 20 20 ').simple(),.
07e0: 20 20 20 20 20 5b 22 63 22 2c 20 22 64 22 2c 20 ["c", "d",
07f0: 22 65 22 2c 20 22 66 23 22 2c 20 22 67 23 22 2c "e", "f#", "g#",
0800: 20 22 61 23 22 5d 29 3b 0a 20 20 20 20 7d 0a 20 "a#"]);. }.
0810: 20 7d 2c 0a 0a 20 20 27 49 73 20 74 68 65 20 23 },.. 'Is the #
0820: 67 65 74 28 29 20 6d 65 74 68 6f 64 20 6f 63 74 get() method oct
0830: 61 76 65 2d 72 65 6c 61 74 69 76 65 20 28 70 65 ave-relative (pe
0840: 6e 74 61 74 6f 6e 69 63 29 3f 27 3a 20 7b 0a 20 ntatonic)?': {.
0850: 20 20 20 74 6f 70 69 63 3a 20 66 75 6e 63 74 69 topic: functi
0860: 6f 6e 28 29 7b 0a 20 20 20 20 20 20 72 65 74 75 on(){. retu
0870: 72 6e 20 74 65 6f 72 69 61 2e 6e 6f 74 65 28 27 rn teoria.note('
0880: 42 62 33 27 29 2e 73 63 61 6c 65 28 27 6d 61 6a Bb3').scale('maj
0890: 6f 72 70 65 6e 74 61 74 6f 6e 69 63 27 29 3b 0a orpentatonic');.
08a0: 20 20 20 20 7d 2c 0a 20 20 20 20 0a 20 20 20 20 },. .
08b0: 27 47 65 74 73 20 6e 6f 74 65 73 20 77 2f 69 6e 'Gets notes w/in
08c0: 20 6f 63 74 61 76 65 27 3a 20 66 75 6e 63 74 69 octave': functi
08d0: 6f 6e 28 74 6f 70 69 63 29 7b 0a 20 20 20 20 20 on(topic){.
08e0: 20 61 73 73 65 72 74 2e 64 65 65 70 45 71 75 61 assert.deepEqua
08f0: 6c 28 74 6f 70 69 63 2e 67 65 74 28 33 29 2c 20 l(topic.get(3),
0900: 74 65 6f 72 69 61 2e 6e 6f 74 65 28 27 44 34 27 teoria.note('D4'
0910: 29 29 3b 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 20 ));. },..
0920: 27 47 65 74 73 20 6e 6f 74 65 73 20 61 62 6f 76 'Gets notes abov
0930: 65 20 6f 63 74 61 76 65 27 3a 20 66 75 6e 63 74 e octave': funct
0940: 69 6f 6e 28 74 6f 70 69 63 29 7b 0a 20 20 20 20 ion(topic){.
0950: 20 20 61 73 73 65 72 74 2e 64 65 65 70 45 71 75 assert.deepEqu
0960: 61 6c 28 74 6f 70 69 63 2e 67 65 74 28 31 32 29 al(topic.get(12)
0970: 2c 20 74 65 6f 72 69 61 2e 6e 6f 74 65 28 27 43 , teoria.note('C
0980: 36 27 29 29 3b 0a 20 20 20 20 7d 2c 0a 0a 20 20 6'));. },..
0990: 20 20 27 47 65 74 73 20 6e 6f 74 65 73 20 62 65 'Gets notes be
09a0: 6c 6f 77 20 6f 63 74 61 76 65 27 3a 20 66 75 6e low octave': fun
09b0: 63 74 69 6f 6e 28 74 6f 70 69 63 29 7b 0a 20 20 ction(topic){.
09c0: 20 20 20 20 61 73 73 65 72 74 2e 64 65 65 70 45 assert.deepE
09d0: 71 75 61 6c 28 74 6f 70 69 63 2e 67 65 74 28 2d qual(topic.get(-
09e0: 31 32 29 2c 20 74 65 6f 72 69 61 2e 6e 6f 74 65 12), teoria.note
09f0: 28 27 44 31 27 29 29 3b 0a 20 20 20 20 7d 2c 0a ('D1'));. },.
0a00: 20 20 7d 2c 0a 0a 20 20 27 49 73 20 74 68 65 20 },.. 'Is the
0a10: 23 67 65 74 28 29 20 6d 65 74 68 6f 64 20 6f 63 #get() method oc
0a20: 74 61 76 65 2d 72 65 6c 61 74 69 76 65 20 28 64 tave-relative (d
0a30: 69 61 74 6f 6e 69 63 29 27 3a 20 7b 0a 20 20 20 iatonic)': {.
0a40: 20 74 6f 70 69 63 3a 20 66 75 6e 63 74 69 6f 6e topic: function
0a50: 28 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 () {. retur
0a60: 6e 20 74 65 6f 72 69 61 2e 6e 6f 74 65 28 27 41 n teoria.note('A
0a70: 34 27 29 2e 73 63 61 6c 65 28 27 6d 61 6a 6f 72 4').scale('major
0a80: 27 29 3b 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 20 ');. },..
0a90: 27 30 20 69 73 20 6f 6e 65 20 6e 6f 74 65 20 64 '0 is one note d
0aa0: 6f 77 6e 27 3a 20 66 75 6e 63 74 69 6f 6e 28 74 own': function(t
0ab0: 6f 70 69 63 29 20 7b 0a 20 20 20 20 20 20 61 73 opic) {. as
0ac0: 73 65 72 74 2e 64 65 65 70 45 71 75 61 6c 28 74 sert.deepEqual(t
0ad0: 6f 70 69 63 2e 67 65 74 28 30 29 2c 20 74 65 6f opic.get(0), teo
0ae0: 72 69 61 2e 6e 6f 74 65 28 27 47 23 34 27 29 29 ria.note('G#4'))
0af0: 3b 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 20 27 37 ;. },.. '7
0b00: 20 69 73 20 6f 6e 65 20 73 65 76 65 6e 74 68 20 is one seventh
0b10: 75 70 27 3a 20 66 75 6e 63 74 69 6f 6e 28 74 6f up': function(to
0b20: 70 69 63 29 20 7b 0a 20 20 20 20 20 20 61 73 73 pic) {. ass
0b30: 65 72 74 2e 64 65 65 70 45 71 75 61 6c 28 74 6f ert.deepEqual(to
0b40: 70 69 63 2e 67 65 74 28 37 29 2c 20 74 65 6f 72 pic.get(7), teor
0b50: 69 61 2e 6e 6f 74 65 28 27 47 23 35 27 29 29 3b ia.note('G#5'));
0b60: 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 20 27 38 20 . },.. '8
0b70: 69 73 20 6f 6e 65 20 6f 63 74 61 76 65 20 75 70 is one octave up
0b80: 27 3a 20 66 75 6e 63 74 69 6f 6e 28 74 6f 70 69 ': function(topi
0b90: 63 29 20 7b 0a 20 20 20 20 20 20 61 73 73 65 72 c) {. asser
0ba0: 74 2e 64 65 65 70 45 71 75 61 6c 28 74 6f 70 69 t.deepEqual(topi
0bb0: 63 2e 67 65 74 28 38 29 2c 20 74 65 6f 72 69 61 c.get(8), teoria
0bc0: 2e 6e 6f 74 65 28 27 41 35 27 29 29 3b 0a 20 20 .note('A5'));.
0bd0: 20 20 7d 2c 0a 0a 20 20 20 20 27 39 20 69 73 20 },.. '9 is
0be0: 6f 6e 65 20 6e 69 6e 74 68 20 75 70 27 3a 20 66 one ninth up': f
0bf0: 75 6e 63 74 69 6f 6e 28 74 6f 70 69 63 29 20 7b unction(topic) {
0c00: 0a 20 20 20 20 20 20 61 73 73 65 72 74 2e 64 65 . assert.de
0c10: 65 70 45 71 75 61 6c 28 74 6f 70 69 63 2e 67 65 epEqual(topic.ge
0c20: 74 28 39 29 2c 20 74 65 6f 72 69 61 2e 6e 6f 74 t(9), teoria.not
0c30: 65 28 27 42 35 27 29 29 3b 0a 20 20 20 20 7d 2c e('B5'));. },
0c40: 0a 0a 20 20 20 20 27 2d 35 20 69 73 20 6f 6e 65 .. '-5 is one
0c50: 20 73 65 76 65 6e 74 68 20 64 6f 77 6e 27 3a 20 seventh down':
0c60: 66 75 6e 63 74 69 6f 6e 28 74 6f 70 69 63 29 20 function(topic)
0c70: 7b 0a 20 20 20 20 20 20 61 73 73 65 72 74 2e 64 {. assert.d
0c80: 65 65 70 45 71 75 61 6c 28 74 6f 70 69 63 2e 67 eepEqual(topic.g
0c90: 65 74 28 2d 35 29 2c 20 74 65 6f 72 69 61 2e 6e et(-5), teoria.n
0ca0: 6f 74 65 28 27 42 33 27 29 29 3b 0a 20 20 20 20 ote('B3'));.
0cb0: 7d 2c 0a 0a 20 20 20 20 27 2d 36 20 69 73 20 6f },.. '-6 is o
0cc0: 6e 65 20 6f 63 74 61 76 65 20 64 6f 77 6e 27 3a ne octave down':
0cd0: 20 66 75 6e 63 74 69 6f 6e 28 74 6f 70 69 63 29 function(topic)
0ce0: 20 7b 0a 20 20 20 20 20 20 61 73 73 65 72 74 2e {. assert.
0cf0: 64 65 65 70 45 71 75 61 6c 28 74 6f 70 69 63 2e deepEqual(topic.
0d00: 67 65 74 28 2d 36 29 2c 20 74 65 6f 72 69 61 2e get(-6), teoria.
0d10: 6e 6f 74 65 28 27 41 33 27 29 29 3b 0a 20 20 20 note('A3'));.
0d20: 20 7d 2c 0a 0a 20 20 20 20 27 2d 31 33 20 69 73 },.. '-13 is
0d30: 20 74 77 6f 20 6f 63 74 61 76 65 73 20 64 6f 77 two octaves dow
0d40: 6e 27 3a 20 66 75 6e 63 74 69 6f 6e 28 74 6f 70 n': function(top
0d50: 69 63 29 20 7b 0a 20 20 20 20 20 20 61 73 73 65 ic) {. asse
0d60: 72 74 2e 64 65 65 70 45 71 75 61 6c 28 74 6f 70 rt.deepEqual(top
0d70: 69 63 2e 67 65 74 28 2d 31 33 29 2c 20 74 65 6f ic.get(-13), teo
0d80: 72 69 61 2e 6e 6f 74 65 28 27 41 32 27 29 29 3b ria.note('A2'));
0d90: 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 29 2e 65 78 . }. }.}).ex
0da0: 70 6f 72 74 28 6d 6f 64 75 6c 65 29 3b 0a port(module);.