/Users/johnr/Dropbox/johnrayworth.info/largeFilesOutsideJSR/__IB-Other/Other/IA-Solutions-2020/Nont/Product/Nont - IA/src/nont/ia/Transpose.java |
1
2
3
4
5
6 package nont.ia;
7
8 import java.util.ArrayList;
9
10
11
12 @author
13
14 public class Transpose {
15
16 public Transpose(){
17
18 }
19
20 public String analyzeKey(Song song){
21
22
23 String key = "";
24 int numSharps = 0;
25 int numFlats = 0;
26 ArrayList <String> chordsFound = new ArrayList <String>();
27
28 for(int i = 0; i < song.getChordChart().size(); i++){
29 if(song.getChordChart().get(i).getOutOfKey() == false){
30 if(song.getChordChart().get(i).getBaseChord().toCharArray().length == 2){
31 if(song.getChordChart().get(i).getBaseChord().substring(1).equals("♯")){
32 if(chordsFound.isEmpty()){
33 numSharps++;
34 chordsFound.add(song.getChordChart().get(i).getBaseChord().substring(0, 1));
35 }
36 else{
37 boolean chordAlreadyThere = false;
38 for(int k = 0; k < chordsFound.size(); k++){
39 if(chordsFound.get(k).equals(song.getChordChart().get(i).getBaseChord().substring(0, 1))){
40 chordAlreadyThere = true;
41 }
42 }
43 if(!chordAlreadyThere){
44 numSharps++;
45 chordsFound.add(song.getChordChart().get(i).getBaseChord().substring(0, 1));
46 }
47 }
48 }
49 else if(song.getChordChart().get(i).getBaseChord().substring(1).equals("♭")){
50 if(chordsFound.isEmpty()){
51 numFlats++;
52 chordsFound.add(song.getChordChart().get(i).getBaseChord().substring(0, 1));
53 }
54 else{
55 boolean chordAlreadyThere = false;
56 for(int k = 0; k < chordsFound.size(); k++){
57 if(chordsFound.get(k).equals(song.getChordChart().get(i).getBaseChord().substring(0, 1))){
58 chordAlreadyThere = true;
59 }
60 }
61 if(!chordAlreadyThere){
62 numFlats++;
63 chordsFound.add(song.getChordChart().get(i).getBaseChord().substring(0, 1));
64 }
65 }
66 }
67 }
68 }
69 }
70
71 if (numSharps == 0 && numFlats == 0){
72 key = "C";
73 }
74
75 else if (numSharps == 1 && numFlats == 0){
76 key = "G";
77 }
78
79 else if (numSharps == 2 && numFlats == 0){
80 key = "D";
81 }
82
83 else if (numSharps == 3 && numFlats == 0){
84 key = "A";
85 }
86
87 else if (numSharps == 4 && numFlats == 0){
88 key = "E";
89 }
90
91 else if (numSharps == 5 && numFlats == 0){
92 key = "B";
93 }
94
95 else if (numSharps == 0 && numFlats == 1){
96 key = "F";
97 }
98
99 else if (numSharps == 0 && numFlats == 2){
100 key = "B♭";
101 }
102
103 else if (numSharps == 0 && numFlats == 3){
104 key = "E♭";
105 }
106
107 else if (numSharps == 0 && numFlats == 4){
108 key = "A♭";
109 }
110
111 else if (numSharps == 0 && numFlats == 5){
112 key = "D♭";
113 }
114
115 else if (numSharps == 0 && numFlats == 6){
116 key = "G♭";
117 }
118
119 return key;
120 }
121
122 public ArrayList<String> chordProgression(Song song){
123
124 ArrayList<String> progression = song.getProgression();
125
126 if (song.getKey().equals("C")){
127 for(int i = 0; i < song.getChordChart().size(); i++){
128 if(song.getChordChart().get(i).getBaseChord().equals("C")){
129 progression.add("I");
130 }
131 else if(song.getChordChart().get(i).getBaseChord().equals("D")){
132 progression.add("ii");
133 }
134 else if(song.getChordChart().get(i).getBaseChord().equals("E")){
135 progression.add("iii");
136 }
137 else if(song.getChordChart().get(i).getBaseChord().equals("F")){
138 progression.add("IV");
139 }
140 else if(song.getChordChart().get(i).getBaseChord().equals("G")){
141 progression.add("V");
142 }
143 else if(song.getChordChart().get(i).getBaseChord().equals("A")){
144 progression.add("vi");
145 }
146 else if(song.getChordChart().get(i).getBaseChord().equals("B")){
147 progression.add("vii");
148 }
149 else if (song.getChordChart().get(i).getBaseChord().equals("-")){
150 progression.add("-");
151 }
152 else{
153 progression.add("N/A");
154 }
155 }
156 }
157
158 else if (song.getKey().equals("G")){
159 for(int i = 0; i < song.getChordChart().size(); i++){
160 if(song.getChordChart().get(i).getBaseChord().equals("G")){
161 progression.add("I");
162 }
163 else if(song.getChordChart().get(i).getBaseChord().equals("A")){
164 progression.add("ii");
165 }
166 else if(song.getChordChart().get(i).getBaseChord().equals("B")){
167 progression.add("iii");
168 }
169 else if(song.getChordChart().get(i).getBaseChord().equals("C")){
170 progression.add("IV");
171 }
172 else if(song.getChordChart().get(i).getBaseChord().equals("D")){
173 progression.add("V");
174 }
175 else if(song.getChordChart().get(i).getBaseChord().equals("E")){
176 progression.add("vi");
177 }
178 else if(song.getChordChart().get(i).getBaseChord().equals("F♯")){
179 progression.add("vii");
180 }
181 else if (song.getChordChart().get(i).getBaseChord().equals("-")){
182 progression.add("-");
183 }
184 else{
185 progression.add("N/A");
186 }
187 }
188 }
189
190 else if (song.getKey().equals("D")){
191 for(int i = 0; i < song.getChordChart().size(); i++){
192 if(song.getChordChart().get(i).getBaseChord().equals("D")){
193 progression.add("I");
194 }
195 else if(song.getChordChart().get(i).getBaseChord().equals("E")){
196 progression.add("ii");
197 }
198 else if(song.getChordChart().get(i).getBaseChord().equals("F♯")){
199 progression.add("iii");
200 }
201 else if(song.getChordChart().get(i).getBaseChord().equals("G")){
202 progression.add("IV");
203 }
204 else if(song.getChordChart().get(i).getBaseChord().equals("A")){
205 progression.add("V");
206 }
207 else if(song.getChordChart().get(i).getBaseChord().equals("B")){
208 progression.add("vi");
209 }
210 else if(song.getChordChart().get(i).getBaseChord().equals("C♯")){
211 progression.add("vii");
212 }
213 else if (song.getChordChart().get(i).getBaseChord().equals("-")){
214 progression.add("-");
215 }
216 else{
217 progression.add("N/A");
218 }
219 }
220 }
221
222 else if (song.getKey().equals("A")){
223 for(int i = 0; i < song.getChordChart().size(); i++){
224 if(song.getChordChart().get(i).getBaseChord().equals("A")){
225 progression.add("I");
226 }
227 else if(song.getChordChart().get(i).getBaseChord().equals("B")){
228 progression.add("ii");
229 }
230 else if(song.getChordChart().get(i).getBaseChord().equals("C♯")){
231 progression.add("iii");
232 }
233 else if(song.getChordChart().get(i).getBaseChord().equals("D")){
234 progression.add("IV");
235 }
236 else if(song.getChordChart().get(i).getBaseChord().equals("E")){
237 progression.add("V");
238 }
239 else if(song.getChordChart().get(i).getBaseChord().equals("F♯")){
240 progression.add("vi");
241 }
242 else if(song.getChordChart().get(i).getBaseChord().equals("G♯")){
243 progression.add("vii");
244 }
245 else if (song.getChordChart().get(i).getBaseChord().equals("-")){
246 progression.add("-");
247 }
248 else{
249 progression.add("N/A");
250 }
251 }
252 }
253
254 else if (song.getKey().equals("E")){
255 for(int i = 0; i < song.getChordChart().size(); i++){
256 if(song.getChordChart().get(i).getBaseChord().equals("E")){
257 progression.add("I");
258 }
259 else if(song.getChordChart().get(i).getBaseChord().equals("F♯")){
260 progression.add("ii");
261 }
262 else if(song.getChordChart().get(i).getBaseChord().equals("G♯")){
263 progression.add("iii");
264 }
265 else if(song.getChordChart().get(i).getBaseChord().equals("A")){
266 progression.add("IV");
267 }
268 else if(song.getChordChart().get(i).getBaseChord().equals("B")){
269 progression.add("V");
270 }
271 else if(song.getChordChart().get(i).getBaseChord().equals("C♯")){
272 progression.add("vi");
273 }
274 else if(song.getChordChart().get(i).getBaseChord().equals("D♯")){
275 progression.add("vii");
276 }
277 else if (song.getChordChart().get(i).getBaseChord().equals("-")){
278 progression.add("-");
279 }
280 else{
281 progression.add("N/A");
282 }
283 }
284 }
285
286 else if (song.getKey().equals("B")){
287 for(int i = 0; i < song.getChordChart().size(); i++){
288 if(song.getChordChart().get(i).getBaseChord().equals("B")){
289 progression.add("I");
290 }
291 else if(song.getChordChart().get(i).getBaseChord().equals("C♯")){
292 progression.add("ii");
293 }
294 else if(song.getChordChart().get(i).getBaseChord().equals("D♯")){
295 progression.add("iii");
296 }
297 else if(song.getChordChart().get(i).getBaseChord().equals("E")){
298 progression.add("IV");
299 }
300 else if(song.getChordChart().get(i).getBaseChord().equals("F♯")){
301 progression.add("V");
302 }
303 else if(song.getChordChart().get(i).getBaseChord().equals("G♯")){
304 progression.add("vi");
305 }
306 else if(song.getChordChart().get(i).getBaseChord().equals("A♯")){
307 progression.add("vii");
308 }
309 else if (song.getChordChart().get(i).getBaseChord().equals("-")){
310 progression.add("-");
311 }
312 else{
313 progression.add("N/A");
314 }
315 }
316 }
317
318 else if (song.getKey().equals("F")){
319 for(int i = 0; i < song.getChordChart().size(); i++){
320 if(song.getChordChart().get(i).getBaseChord().equals("F")){
321 progression.add("I");
322 }
323 else if(song.getChordChart().get(i).getBaseChord().equals("Gm")){
324 progression.add("ii");
325 }
326 else if(song.getChordChart().get(i).getBaseChord().equals("Am")){
327 progression.add("iii");
328 }
329 else if(song.getChordChart().get(i).getBaseChord().equals("B♭")){
330 progression.add("IV");
331 }
332 else if(song.getChordChart().get(i).getBaseChord().equals("C")){
333 progression.add("V");
334 }
335 else if(song.getChordChart().get(i).getBaseChord().equals("Dm")){
336 progression.add("vi");
337 }
338 else if(song.getChordChart().get(i).getBaseChord().equals("Edim")){
339 progression.add("vii");
340 }
341 else if (song.getChordChart().get(i).getBaseChord().equals("-")){
342 progression.add("-");
343 }
344 else{
345 progression.add("N/A");
346 }
347 }
348 }
349
350 else if (song.getKey().equals("B♭")){
351 for(int i = 0; i < song.getChordChart().size(); i++){
352 if(song.getChordChart().get(i).getBaseChord().equals("B♭")){
353 progression.add("I");
354 }
355 else if(song.getChordChart().get(i).getBaseChord().equals("C")){
356 progression.add("ii");
357 }
358 else if(song.getChordChart().get(i).getBaseChord().equals("D")){
359 progression.add("iii");
360 }
361 else if(song.getChordChart().get(i).getBaseChord().equals("E♭")){
362 progression.add("IV");
363 }
364 else if(song.getChordChart().get(i).getBaseChord().equals("F")){
365 progression.add("V");
366 }
367 else if(song.getChordChart().get(i).getBaseChord().equals("G")){
368 progression.add("vi");
369 }
370 else if(song.getChordChart().get(i).getBaseChord().equals("A")){
371 progression.add("vii");
372 }
373 else if (song.getChordChart().get(i).getBaseChord().equals("-")){
374 progression.add("-");
375 }
376 else{
377 progression.add("N/A");
378 }
379 }
380 }
381
382 else if (song.getKey().equals("E♭")){
383 for(int i = 0; i < song.getChordChart().size(); i++){
384 if(song.getChordChart().get(i).getBaseChord().equals("E♭")){
385 progression.add("I");
386 }
387 else if(song.getChordChart().get(i).getBaseChord().equals("F")){
388 progression.add("ii");
389 }
390 else if(song.getChordChart().get(i).getBaseChord().equals("G")){
391 progression.add("iii");
392 }
393 else if(song.getChordChart().get(i).getBaseChord().equals("A♭")){
394 progression.add("IV");
395 }
396 else if(song.getChordChart().get(i).getBaseChord().equals("B♭")){
397 progression.add("V");
398 }
399 else if(song.getChordChart().get(i).getBaseChord().equals("C")){
400 progression.add("vi");
401 }
402 else if(song.getChordChart().get(i).getBaseChord().equals("D")){
403 progression.add("vii");
404 }
405 else if (song.getChordChart().get(i).getBaseChord().equals("-")){
406 progression.add("-");
407 }
408 else{
409 progression.add("N/A");
410 }
411 }
412 }
413
414 else if (song.getKey().equals("A♭")){
415 for(int i = 0; i < song.getChordChart().size(); i++){
416 if(song.getChordChart().get(i).getBaseChord().equals("A♭")){
417 progression.add("I");
418 }
419 else if(song.getChordChart().get(i).getBaseChord().equals("B♭")){
420 progression.add("ii");
421 }
422 else if(song.getChordChart().get(i).getBaseChord().equals("C")){
423 progression.add("iii");
424 }
425 else if(song.getChordChart().get(i).getBaseChord().equals("D♭")){
426 progression.add("IV");
427 }
428 else if(song.getChordChart().get(i).getBaseChord().equals("E♭")){
429 progression.add("V");
430 }
431 else if(song.getChordChart().get(i).getBaseChord().equals("F")){
432 progression.add("vi");
433 }
434 else if(song.getChordChart().get(i).getBaseChord().equals("G")){
435 progression.add("vii");
436 }
437 else if (song.getChordChart().get(i).getBaseChord().equals("-")){
438 progression.add("-");
439 }
440 else{
441 progression.add("N/A");
442 }
443 }
444 }
445
446 else if (song.getKey().equals("D♭")){
447 for(int i = 0; i < song.getChordChart().size(); i++){
448 if(song.getChordChart().get(i).getBaseChord().equals("D♭")){
449 progression.add("I");
450 }
451 else if(song.getChordChart().get(i).getBaseChord().equals("E♭")){
452 progression.add("ii");
453 }
454 else if(song.getChordChart().get(i).getBaseChord().equals("F")){
455 progression.add("iii");
456 }
457 else if(song.getChordChart().get(i).getBaseChord().equals("G♭")){
458 progression.add("IV");
459 }
460 else if(song.getChordChart().get(i).getBaseChord().equals("A♭")){
461 progression.add("V");
462 }
463 else if(song.getChordChart().get(i).getBaseChord().equals("B♭")){
464 progression.add("vi");
465 }
466 else if(song.getChordChart().get(i).getBaseChord().equals("C")){
467 progression.add("vii");
468 }
469 else if (song.getChordChart().get(i).getBaseChord().equals("-")){
470 progression.add("-");
471 }
472 else{
473 progression.add("N/A");
474 }
475 }
476 }
477
478 else if (song.getKey().equals("G♭")){
479 for(int i = 0; i < song.getChordChart().size(); i++){
480 if(song.getChordChart().get(i).getBaseChord().equals("G♭")){
481 progression.add("I");
482 }
483 else if(song.getChordChart().get(i).getBaseChord().equals("A♭")){
484 progression.add("ii");
485 }
486 else if(song.getChordChart().get(i).getBaseChord().equals("B♭")){
487 progression.add("iii");
488 }
489 else if(song.getChordChart().get(i).getBaseChord().equals("C♭")){
490 progression.add("IV");
491 }
492 else if(song.getChordChart().get(i).getBaseChord().equals("D♭")){
493 progression.add("V");
494 }
495 else if(song.getChordChart().get(i).getBaseChord().equals("E♭")){
496 progression.add("vi");
497 }
498 else if(song.getChordChart().get(i).getBaseChord().equals("F")){
499 progression.add("vii");
500 }
501 else if (song.getChordChart().get(i).getBaseChord().equals("-")){
502 progression.add("-");
503 }
504 else{
505 progression.add("N/A");
506 }
507 }
508 }
509
510 return progression;
511
512 }
513
514 public ArrayList<String> transposeSong(Song song, String key){
515
516 ArrayList<String> changeKey = song.getChangeKey();
517
518 if (key.equals("C")){
519 for(int i = 0; i < song.getChordChart().size(); i++){
520 if(song.getProgression().get(i).equals("I")){
521 changeKey.add("C");
522 }
523 else if(song.getProgression().get(i).equals("ii")){
524 changeKey.add("Dm");
525 }
526 else if(song.getProgression().get(i).equals("iii")){
527 changeKey.add("Em");
528 }
529 else if(song.getProgression().get(i).equals("IV")){
530 changeKey.add("F");
531 }
532 else if(song.getProgression().get(i).equals("V")){
533 changeKey.add("G");
534 }
535 else if(song.getProgression().get(i).equals("vi")){
536 changeKey.add("Am");
537 }
538 else if(song.getProgression().get(i).equals("vii")){
539 changeKey.add("Bdim");
540 }
541 else if(song.getProgression().get(i).equals("-")){
542 changeKey.add("-");
543 }
544 else{
545 changeKey.add("N/A");
546 }
547 }
548 }
549
550 else if (key.equals("G")){
551 for(int i = 0; i < song.getChordChart().size(); i++){
552 if(song.getProgression().get(i).equals("I")){
553 changeKey.add("G");
554 }
555 else if(song.getProgression().get(i).equals("ii")){
556 changeKey.add("Am");
557 }
558 else if(song.getProgression().get(i).equals("iii")){
559 changeKey.add("Bm");
560 }
561 else if(song.getProgression().get(i).equals("IV")){
562 changeKey.add("C");
563 }
564 else if(song.getProgression().get(i).equals("V")){
565 changeKey.add("D");
566 }
567 else if(song.getProgression().get(i).equals("vi")){
568 changeKey.add("Em");
569 }
570 else if(song.getProgression().get(i).equals("vii")){
571 changeKey.add("F♯dim");
572 }
573 else if(song.getProgression().get(i).equals("-")){
574 changeKey.add("-");
575 }
576 else{
577 changeKey.add("N/A");
578 }
579 }
580 }
581
582 else if (key.equals("D")){
583 for(int i = 0; i < song.getChordChart().size(); i++){
584 if(song.getProgression().get(i).equals("I")){
585 changeKey.add("D");
586 }
587 else if(song.getProgression().get(i).equals("ii")){
588 changeKey.add("Em");
589 }
590 else if(song.getProgression().get(i).equals("iii")){
591 changeKey.add("F♯m");
592 }
593 else if(song.getProgression().get(i).equals("IV")){
594 changeKey.add("G");
595 }
596 else if(song.getProgression().get(i).equals("V")){
597 changeKey.add("A");
598 }
599 else if(song.getProgression().get(i).equals("vi")){
600 changeKey.add("Bm");
601 }
602 else if(song.getProgression().get(i).equals("vii")){
603 changeKey.add("C♯dim");
604 }
605 else if(song.getProgression().get(i).equals("-")){
606 changeKey.add("-");
607 }
608 else{
609 changeKey.add("N/A");
610 }
611 }
612 }
613
614 else if (key.equals("A")){
615 for(int i = 0; i < song.getChordChart().size(); i++){
616 if(song.getProgression().get(i).equals("I")){
617 changeKey.add("A");
618 }
619 else if(song.getProgression().get(i).equals("ii")){
620 changeKey.add("Bm");
621 }
622 else if(song.getProgression().get(i).equals("iii")){
623 changeKey.add("C♯m");
624 }
625 else if(song.getProgression().get(i).equals("IV")){
626 changeKey.add("D");
627 }
628 else if(song.getProgression().get(i).equals("V")){
629 changeKey.add("E");
630 }
631 else if(song.getProgression().get(i).equals("vi")){
632 changeKey.add("F♯m");
633 }
634 else if(song.getProgression().get(i).equals("vii")){
635 changeKey.add("G♯dim");
636 }
637 else if(song.getProgression().get(i).equals("-")){
638 changeKey.add("-");
639 }
640 else{
641 changeKey.add("N/A");
642 }
643 }
644 }
645
646 else if (key.equals("E")){
647 for(int i = 0; i < song.getChordChart().size(); i++){
648 if(song.getProgression().get(i).equals("I")){
649 changeKey.add("E");
650 }
651 else if(song.getProgression().get(i).equals("ii")){
652 changeKey.add("F♯m");
653 }
654 else if(song.getProgression().get(i).equals("iii")){
655 changeKey.add("G♯m");
656 }
657 else if(song.getProgression().get(i).equals("IV")){
658 changeKey.add("A");
659 }
660 else if(song.getProgression().get(i).equals("V")){
661 changeKey.add("B");
662 }
663 else if(song.getProgression().get(i).equals("vi")){
664 changeKey.add("C♯m");
665 }
666 else if(song.getProgression().get(i).equals("vii")){
667 changeKey.add("D♯dim");
668 }
669 else if(song.getProgression().get(i).equals("-")){
670 changeKey.add("-");
671 }
672 else{
673 changeKey.add("N/A");
674 }
675 }
676 }
677
678 else if (key.equals("B")){
679 for(int i = 0; i < song.getChordChart().size(); i++){
680 if(song.getProgression().get(i).equals("I")){
681 changeKey.add("B");
682 }
683 else if(song.getProgression().get(i).equals("ii")){
684 changeKey.add("C♯m");
685 }
686 else if(song.getProgression().get(i).equals("iii")){
687 changeKey.add("D♯m");
688 }
689 else if(song.getProgression().get(i).equals("IV")){
690 changeKey.add("E");
691 }
692 else if(song.getProgression().get(i).equals("V")){
693 changeKey.add("F♯");
694 }
695 else if(song.getProgression().get(i).equals("vi")){
696 changeKey.add("G♯m");
697 }
698 else if(song.getProgression().get(i).equals("vii")){
699 changeKey.add("A♯dim");
700 }
701 else if(song.getProgression().get(i).equals("-")){
702 changeKey.add("-");
703 }
704 else{
705 changeKey.add("N/A");
706 }
707 }
708 }
709
710 else if (key.equals("F")){
711 for(int i = 0; i < song.getChordChart().size(); i++){
712 if(song.getProgression().get(i).equals("I")){
713 changeKey.add("F");
714 }
715 else if(song.getProgression().get(i).equals("ii")){
716 changeKey.add("Gm");
717 }
718 else if(song.getProgression().get(i).equals("iii")){
719 changeKey.add("Am");
720 }
721 else if(song.getProgression().get(i).equals("IV")){
722 changeKey.add("B♭");
723 }
724 else if(song.getProgression().get(i).equals("V")){
725 changeKey.add("C");
726 }
727 else if(song.getProgression().get(i).equals("vi")){
728 changeKey.add("Dm");
729 }
730 else if(song.getProgression().get(i).equals("vii")){
731 changeKey.add("Edim");
732 }
733 else if(song.getProgression().get(i).equals("-")){
734 changeKey.add("-");
735 }
736 else{
737 changeKey.add("N/A");
738 }
739 }
740 }
741
742 else if (key.equals("B♭")){
743 for(int i = 0; i < song.getChordChart().size(); i++){
744 if(song.getProgression().get(i).equals("I")){
745 changeKey.add("B♭");
746 }
747 else if(song.getProgression().get(i).equals("ii")){
748 changeKey.add("Cm");
749 }
750 else if(song.getProgression().get(i).equals("iii")){
751 changeKey.add("Dm");
752 }
753 else if(song.getProgression().get(i).equals("IV")){
754 changeKey.add("E♭");
755 }
756 else if(song.getProgression().get(i).equals("V")){
757 changeKey.add("F");
758 }
759 else if(song.getProgression().get(i).equals("vi")){
760 changeKey.add("Gm");
761 }
762 else if(song.getProgression().get(i).equals("vii")){
763 changeKey.add("Adim");
764 }
765 else if(song.getProgression().get(i).equals("-")){
766 changeKey.add("-");
767 }
768 else{
769 changeKey.add("N/A");
770 }
771 }
772 }
773
774 else if (key.equals("E♭")){
775 for(int i = 0; i < song.getChordChart().size(); i++){
776 if(song.getProgression().get(i).equals("I")){
777 changeKey.add("E♭");
778 }
779 else if(song.getProgression().get(i).equals("ii")){
780 changeKey.add("Fm");
781 }
782 else if(song.getProgression().get(i).equals("iii")){
783 changeKey.add("Gm");
784 }
785 else if(song.getProgression().get(i).equals("IV")){
786 changeKey.add("A♭");
787 }
788 else if(song.getProgression().get(i).equals("V")){
789 changeKey.add("B♭");
790 }
791 else if(song.getProgression().get(i).equals("vi")){
792 changeKey.add("Cm");
793 }
794 else if(song.getProgression().get(i).equals("vii")){
795 changeKey.add("Ddim");
796 }
797 else if(song.getProgression().get(i).equals("-")){
798 changeKey.add("-");
799 }
800 else{
801 changeKey.add("N/A");
802 }
803 }
804 }
805
806 else if (key.equals("A♭")){
807 for(int i = 0; i < song.getChordChart().size(); i++){
808 if(song.getProgression().get(i).equals("I")){
809 changeKey.add("A♭");
810 }
811 else if(song.getProgression().get(i).equals("ii")){
812 changeKey.add("B♭m");
813 }
814 else if(song.getProgression().get(i).equals("iii")){
815 changeKey.add("Cm");
816 }
817 else if(song.getProgression().get(i).equals("IV")){
818 changeKey.add("D♭");
819 }
820 else if(song.getProgression().get(i).equals("V")){
821 changeKey.add("E♭");
822 }
823 else if(song.getProgression().get(i).equals("vi")){
824 changeKey.add("Fm");
825 }
826 else if(song.getProgression().get(i).equals("vii")){
827 changeKey.add("Gdim");
828 }
829 else if(song.getProgression().get(i).equals("-")){
830 changeKey.add("-");
831 }
832 else{
833 changeKey.add("N/A");
834 }
835 }
836 }
837
838 else if (key.equals("D♭")){
839 for(int i = 0; i < song.getChordChart().size(); i++){
840 if(song.getProgression().get(i).equals("I")){
841 changeKey.add("D♭");
842 }
843 else if(song.getProgression().get(i).equals("ii")){
844 changeKey.add("E♭m");
845 }
846 else if(song.getProgression().get(i).equals("iii")){
847 changeKey.add("Fm");
848 }
849 else if(song.getProgression().get(i).equals("IV")){
850 changeKey.add("G♭");
851 }
852 else if(song.getProgression().get(i).equals("V")){
853 changeKey.add("A♭");
854 }
855 else if(song.getProgression().get(i).equals("vi")){
856 changeKey.add("B♭m");
857 }
858 else if(song.getProgression().get(i).equals("vii")){
859 changeKey.add("Cdim");
860 }
861 else if(song.getProgression().get(i).equals("-")){
862 changeKey.add("-");
863 }
864 else{
865 changeKey.add("N/A");
866 }
867 }
868 }
869
870 else if (key.equals("G♭")){
871 for(int i = 0; i < song.getChordChart().size(); i++){
872 if(song.getProgression().get(i).equals("I")){
873 changeKey.add("G♭");
874 }
875 else if(song.getProgression().get(i).equals("ii")){
876 changeKey.add("A♭m");
877 }
878 else if(song.getProgression().get(i).equals("iii")){
879 changeKey.add("B♭m");
880 }
881 else if(song.getProgression().get(i).equals("IV")){
882 changeKey.add("C♭");
883 }
884 else if(song.getProgression().get(i).equals("V")){
885 changeKey.add("D♭");
886 }
887 else if(song.getProgression().get(i).equals("vi")){
888 changeKey.add("E♭m");
889 }
890 else if(song.getProgression().get(i).equals("vii")){
891 changeKey.add("Fdim");
892 }
893 else if(song.getProgression().get(i).equals("-")){
894 changeKey.add("-");
895 }
896 else{
897 changeKey.add("N/A");
898 }
899 }
900 }
901
902 return changeKey;
903 }
904
905 }
906