【Java学習10時間目】タブ譜を音譜に変換してくれるツール
Java学習10時間目
Javaの勉強をするなかで、こんなプログラムあればいいなって思うものがありました。
もしかしたらもう存在するかもしれないのだけれど、
あえていまは調べません^^;
わたしはギター、ベースを弾いています。
むかしはバンドスコアを買えば、
音譜とタブ譜が両方書いてくれていました。
でもバンドでオリジナルの曲をするとなると、
だいたい歌詞のうえにコードが書いてあるだけです。
だからベースは基本感覚で弾いています。
たまにベースパートにも音譜をつけてくれるものもありますが、
わたしは頭の中で音譜をすぐにタブに変換できません。
があればいいなと思いました。
以下思いついた内容です。
[仕様]
・まずは「タブ譜1文字を入力するとそれに対応する音符を返す」プログラムを作りたい
・4弦ベースと5弦ベースを対象とする
・各弦のフレット範囲は「開放弦から10フレットまで」とする
(それよりも高いフレットは基本的に使用しない)
・言語設定は日英とする。日本語の場合は音符を和名で返し、
英語の場合はローマ字で返す。
[課題]
・変数に入る値が「X弦Yフレット」となっているが、
どう表現すればいいか?
案1
1桁目を弦番、2桁目をフレット番とする案
ex)42 => 4弦2フレット => ファ
案2
GUIを用意し、弦番をGUI側で識別させる案
Ⅰ ,1
Ⅱ ,2,
Ⅲ ,2,4,
Ⅳ 4,2,
Ⅴ
・型をintにして、入力を1文字としているが、
実際は1文字ではなく、複数文字を入力として受付けたい
複数文字を一括で音符に変換するにはどうすればいい?
⇒案1ならば、複数の変数をまとめて扱うことができる配列が向いていそう!
for(i=0;i<tab;i++){
System.out.println();
}
[草案]
public class Main{
public static void main(String[] args){
System.out.println("ここにタブ譜を入力してください");
String tab= new java.util.Scanner(System.in).nextline();
// (複数の整数文字列)
System.out.println(tabHenkan(tab));
}
}
public tabHenkan(){
if(i=0:i<hight.tab:i++){
//↓case文を書く
//変数tabの値に応じて、出力する音符を定義する
switch(tab){
case 4弦0フレット:
System.out.println("ミ");
case 4弦1フレット:
System.out.println("ミ#");
case 4弦2フレット:
System.out.println("ファ");
case 4弦3フレット:
System.out.println("ソ");
case 4弦4フレット:
System.out.println("ソ#");
case 4弦5フレット:
System.out.println("ラ");
case 4弦6フレット:
System.out.println("ラ#");
case 4弦7フレット:
System.out.println("シ");
case 4弦8フレット:
System.out.println("シ#");
case 4弦9フレット:
System.out.println("ド");
}
以上