cadencii_jp @ wiki

スクリプトのサンプル


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

編集自動化スクリプトのサンプル

スクリプトの呼び出し仕様などが確定していないので,下記のサンプルは疑似コードです.

  • 試してみたい方は、それぞれのスクリプトのソースコードと思しき部分をテキストファイルにコピペして UTF-8 で保存し、Cadencii.exeの置いてあるフォルダ直下の「script」というフォルダに放り込んでください。

トラックの内容をUTAUの「resampler*.exe」と「wavtool.exe」を使ってレンダリングするスクリプト

  • エンベロープをはじめとした各種パラメータは設定・反映されません

メタテキストの内容をファイルに保存する

public static class SaveMetaText {
    public static bool Edit( Boare.Lib.Vsq.VsqFile vsq ) {
        vsq.Track[1].printMetaText( @"c:\meta_text.txt" );
        return true;
    }
}

歌詞情報を取得し、ファイルに保存する

public static class PrintLyric {
    public static bool Edit( Boare.Lib.Vsq.VsqFile Vsq ) {
        System.IO.StreamWriter sw = null;
        try {
            sw = new System.IO.StreamWriter( @"c:\lyrics.txt" );
            for ( Boare.Lib.Vsq.Iterator itr = Vsq.Track[1].getNoteEventIterator(); itr.hasNext(); ) {
                Boare.Lib.Vsq.VsqEvent item = (Boare.Lib.Vsq.VsqEvent)itr.next();
                int clStart = item.Clock;
                int clEnd = clStart + item.ID.Length;
                double secStart = Vsq.getSecFromClock( clStart );
                double secEnd = Vsq.getSecFromClock( clEnd );
                sw.WriteLine( secStart + "\t" + secEnd + "\t" + item.ID.LyricHandle.L0.Phrase + "\t" + item.ID.LyricHandle.L0.PhoneticSymbol );
            }
        } catch {
            return false;
        } finally {
            if ( sw != null ) {
                sw.Close();
            }
        }
        return true;
    }
}

全ての音符を半音上げる

public static class UpHalfStep {
    public static bool Edit( Boare.Lib.Vsq.VsqFile Vsq ) {
        for ( int i = 1; i < Vsq.Track.Count; i++ ) {
            for ( Boare.Lib.Vsq.Iterator itr = Vsq.Track[i].getNoteEventIterator(); itr.hasNext(); ) {
                Boare.Lib.Vsq.VsqEvent item = (Boare.Lib.Vsq.VsqEvent)itr.next();
                if ( item.ID.Note < 127 ) {
                    item.ID.Note++;
                }
            }
        }
        return true;
    }
}

全ての音符の長さを32分音符分だけ短くする

public static class Trim32 {
    public static bool Edit( Boare.Lib.Vsq.VsqFile Vsq ) {
        for ( int i = 1; i < Vsq.Track.Count; i++ ) {
            for ( Boare.Lib.Vsq.Iterator itr = Vsq.Track[i].getNoteEventIterator(); itr.hasNext(); ) {
                Boare.Lib.Vsq.VsqEvent item = (Boare.Lib.Vsq.VsqEvent)itr.next();
                // 32分音符の長さは,クロック数に直すと60クロック
                if ( item.ID.Length > 60 ) {
                    item.ID.Length -= 60;
                }
            }
        }
        return true;
    }
}