「スクリプトのサンプル」の編集履歴(バックアップ)一覧に戻る
スクリプトのサンプル - (2008/10/21 (火) 22:45:26) のソース
*編集自動化スクリプトのサンプル スクリプトの呼び出し仕様などが確定していないので,下記のサンプルは疑似コードです. **メタテキストの内容をファイルに保存する #highlight(csharp){{public static class SaveMetaText{ public static void Edit( VsqFile vsq ){ vsq.Tracks[1].PrintMetaText( @"c:\meta_text.txt" ); } } }} **歌詞情報を取得し、ファイルに保存する #highlight(csharp){{using ( StreamWriter sw = new StreamWriter( @"c:\lyrics.txt" ) ) { for ( int i = 0; i < Vsq.Tracks[1].LyricEvents.Count; i++ ) { VsqEvent item = Vsq.Tracks[1].LyricEvents[i]; int clStart = item.Clock; int clEnd = clStart + item.ID.Length; double secStart = Vsq.SecFromClock( clStart ); double secEnd = Vsq.SecFromClock( clEnd ); sw.WriteLine( secStart + "\t" + secEnd + "\t" + item.ID.LyricHandle.L0.Phrase + "\t" + item.ID.LyricHandle.L0.PhoneticSymbol ); } } }} **全ての音符を半音上げる #highlight(csharp){{for( int i = 1; i < Vsq.Tracks.Count; i++ ){ foreach( VsqEvent item in Vsq.Tracks[i].LyricEvents ){ if( item.ID.Note < 127 ){ item.ID.Note++; } } } }} **全ての音符の長さを32分音符分だけ短くする #highlight(csharp){{for( int i = 1; i < Vsq.Tracks.Count; i++ ){ foreach( VsqEvent item in Vsq.Tracks[i].LyricEvents ){ // 32分音符の長さは,クロック数に直すと60クロック if( item.ID.Length > 60 ){ item.ID.Length -= 60; } } } }} ----