private void DealNums() { int i = int.Parse(str); str = ""; if (arrange) { chordArr.Add(i); } if (i == 0) { return; //休止符暂不支持 } int pitch = PitchTool.Pitch8_to_12(i - 1); note.scale = scale; note.pitch = (Pitch)(pitchShift + pitch); pitchShift = 0; if (multiNote) { noteMulti.Append(); // 往多音音符里 添加新的单音 } else//!multiNote { chord_Append(); } }
void Start() { loader = FindObjectOfType <ScoreLoader>(); gen = FindObjectOfType <ScoreGen>(); grids[0].onClick = (i) => PlayPitch(PitchTool.Pitch8_to_12(i)); grids[1].onClick = (i) => PlayPitch(PitchTool.Pitch5_to_12(i)); this.AddInput(Input, -1, false); }
private void ReadParaChar(char c) { switch (c) { case 'B': // 如果谱是已经降了的,升回来到原调 if (pitchParaShifted) { pitchParaShift++; } ppShifts.Add(new PPShift(notesTotal.Count, -1)); break; case 'S': // 相反 if (pitchParaShifted) { pitchParaShift--; } ppShifts.Add(new PPShift(notesTotal.Count, 1)); break; case '@': chordMode = true; break; case '_': // 时值减半 Half Value if (lyricMode) { lyric.Append(' '); } else { value *= 2; } break; case ' ': // Beat if (lyricMode) { if (lyric.multiChars) { lyric.NewWord(); } else { break; } } else { if (notes.Count == 0) { break; } beat.notes = notes; notes = new List <NoteVal>(); beats.Add(beat); beat = new Beat(); } break; case ',': // Bar if (notes.Count == 0) { break; } ReadParaChar(' '); bar.beats = beats; beats = new List <Beat>(); bars.Add(bar); bar = new Bar(); break; case '.': break; case '-': break; case '(': // Flat scale--; break; case ')': // scale++; break; case '[': // Sharp scale++; break; case ']': // scale--; break; case '{': // Link var line = new LinkLine(notesTotal.Count, 0); linesStack.Push(line); lines.Add(line); break; case '}': // linesStack.Pop().end = notesTotal.Count - 1; break; case 'b': pitch = -1; break; case '#': pitch = 1; break; case '0': break; //休止符暂不支持 case '1': case '2': case '3': case '4': case '5': case '6': case '7': int i = PitchTool.Pitch8_to_12(int.Parse(c.ToString()) - 1); var n = new NoteVal(scale, (Pitch)(pitch + i), value); n += pitchParaShift; notes.Add(n); notesTotal.Add(n); pitch = 0; value = valueDivideNum; break; case '\r': case '\n': // end lyric lyricMode = false; lyric.multiChars = false; break; case '\\': // start lyric lyricMode = true; break; case '*': if (lyricMode) { lyric.multiChars = true; lyric.NewWord(); } else { goto default; } break; default: if (lyricMode) { lyric.Append(c); } else { throw new Exception("undef Para Character " + c + "."); } break; } }