private void commander(partWork pw, char cmd) { switch (cmd) { case ' ': case '\t': pw.incPos(); break; case '!': // CompileSkip pw.dataEnd = true; pw.waitCounter = -1; break; case 'T': // tempo cmdTempo(pw); break; case '@': // instrument cmdInstrument(pw); break; case 'v': // volume cmdVolume(pw); break; case 'V': // totalVolume(Adpcm-A / Rhythm) cmdTotalVolume(pw); break; case 'o': // octave cmdOctave(pw); break; case '>': // octave Up cmdOctaveUp(pw); break; case '<': // octave Down cmdOctaveDown(pw); break; case ')': // volume Up cmdVolumeUp(pw); break; case '(': // volume Down cmdVolumeDown(pw); break; case 'l': // length cmdLength(pw); break; case '#': // length(clock) cmdClockLength(pw); break; case 'p': // pan cmdPan(pw); break; case 'D': // Detune cmdDetune(pw); break; case 'm': // pcm mode cmdMode(pw); break; case 'q': // gatetime cmdGatetime(pw); break; case 'Q': // gatetime cmdGatetime2(pw); break; case 'E': // envelope cmdEnvelope(pw); break; case 'L': // loop point cmdLoop(pw); break; case '[': // repeat cmdRepeatStart(pw); break; case ']': // repeat cmdRepeatEnd(pw); break; case '/': // repeat cmdRepeatExit(pw); break; case 'M': // lfo cmdLfo(pw); break; case 'S': // lfo switch cmdLfoSwitch(pw); break; case 'y': // y cmdY(pw); break; case 'w': // noise cmdNoise(pw); break; case 'P': // noise or tone mixer cmdMixer(pw); break; case 'K': // key shift cmdKeyShift(pw); break; case 'c': case 'd': case 'e': case 'f': case 'g': case 'a': case 'b': case 'r': cmdNote(pw, cmd); break; default: msgBox.setErrMsg(string.Format("未知のコマンド{0}を検出しました。", cmd), pw.getLineNumber()); pw.incPos(); break; } }