Я давно хотел написать музыкальную программу, но я не очень разбираюсь в программировании, так что, вероятно, этого не произойдет. Сначала целью этой программы будет представление гитарных аккордов буквенными именами (например, CMaj = CEG), и может быть несколько разных типов аккордов (майоры, миноры, уменьшенные и т. Д.). Чтобы сделать это проще всего, я Я думаю, что я собираюсь начать с мажорной тональности, потому что в ней нет острых предметов или квартир. Моим первым аккордом, вероятно, был бы до мажор, который является 1-м, 3-м и 5-м по шкале ( C D E F G A B). Мой вопрос, используя строки и символы (или, как я догадываюсь, каким-то другим способом), есть ли способ представить C как String (?) C, где C = 1, D = 2, E = 3 ,. .так далее. так что, когда программа вводит мажорный аккорд, она запрашивает 1-й, 3-й и пятый соответствующей шкалы?
Таким образом, в основном пользователь выбирает аккорд C Maj, который преобразуется в 1, 3, 5, а затем сопоставляются весы, и программа вызывает эти 3 конкретных интервала этого масштаба.
Буду признателен за любую помощь, или другой способ думать об этом полностью.
Используя то немногое, что у меня было, я использовал веб-сайт Oracles , нашел их пример перечисления и соединил это:
public enum Chord {
CHORD, MAJOR, MINOR, DIMINISHED, BASS, BASS2
}
public enum Scales {
C, D, E, F, G, A
}
public class EnumTest {
Chord chord;
public EnumTest(Chord chord) {
this.chord = chord;
}
public void tellItLikeItIs() {
switch (chord) {
case MAJOR: System.out.println("C, E, G");
break;
case MINOR: System.out.println("C, Eb, G");
break;
default: System.out.println("I screwed up");
break;
}
}
public static void main(String[] args) {
EnumTest firstDay = new EnumTest(Chord.MAJOR);
firstDay.tellItLikeItIs();
EnumTest thirdDay = new EnumTest(Chord.MINOR);
thirdDay.tellItLikeItIs();
}
* *} Тысяча двадцать-один
Я до сих пор не понимаю, используя пример Оливера, как указать, когда я делаю мажорный аккорд, который я хочу, чтобы 1-е, 3-е и 5-е значение перечисления Scales. Мне нравится идея использования полутонов из C и построения каждого аккорда, но я не мог понять, как поместить # в класс Scales (недопустимый символ). Поэтому в основном мой вопрос заключается в том, как мне получить класс Chord, чтобы получить градусы шкалы из класса Scales и подключить его к классу EnumTest?
(Если есть где-то еще, я могу пойти и задать глупые вопросы, не задевая людей, я могу попытаться спросить там = p)