projects package
Submodules
projects.Entry module
- class projects.Entry.AtAliasEntry
ベースクラス:
projects.EntryBase.StringEntry
- class projects.Entry.AtFileNameEntry
ベースクラス:
projects.EntryBase.StringEntry
- class projects.Entry.AtOveEntry
ベースクラス:
projects.EntryBase.FloatEntry
- class projects.Entry.AtPreEntry
ベースクラス:
projects.EntryBase.FloatEntry
- class projects.Entry.AtStpEntry
ベースクラス:
projects.EntryBase.FloatEntry
- class projects.Entry.DirectEntry
ベースクラス:
projects.EntryBase.BoolEntry
- class projects.Entry.EnvelopeEntry
ベースクラス:
projects.EntryBase.EntryBase
- init(value: list)
- property p: list
- separater: str = ','
- set_p(pos: int, value: float)
- set_v(pos: int, value: int)
- property v: list
- property value: str
- class projects.Entry.FlagsEntry
ベースクラス:
projects.EntryBase.StringEntry
- property hasValue: bool
- class projects.Entry.IntensityEntry
ベースクラス:
projects.EntryBase.IntEntry
- class projects.Entry.LabelEntry
ベースクラス:
projects.EntryBase.StringEntry
- class projects.Entry.LengthEntry
ベースクラス:
projects.EntryBase.IntEntry
- class projects.Entry.LyricEntry
ベースクラス:
projects.EntryBase.StringEntry
- class projects.Entry.ModulationEntry
ベースクラス:
projects.EntryBase.IntEntry
- class projects.Entry.NoteNumEntry
ベースクラス:
projects.EntryBase.IntEntry
- get_tone_name() str
- set_from_str(value: str)
- class projects.Entry.NumberEntry
ベースクラス:
projects.EntryBase.StringEntry
- class projects.Entry.OveEntry
ベースクラス:
projects.EntryBase.FloatEntry
- property hasValue: bool
- class projects.Entry.PBMEntry
ベースクラス:
projects.EntryBase.ListEntry
- class projects.Entry.PBSEntry
ベースクラス:
projects.EntryBase.EntryBase
- property height: float
- init(value: str)
- property time: float
- property value: str
- class projects.Entry.PBStartEntry
ベースクラス:
projects.EntryBase.FloatEntry
- class projects.Entry.PBWEntry
ベースクラス:
projects.EntryBase.ListEntry
- class projects.Entry.PBYEntry
ベースクラス:
projects.EntryBase.ListEntry
- class projects.Entry.PitchesEntry
ベースクラス:
projects.EntryBase.ListEntry
- class projects.Entry.PreEntry
ベースクラス:
projects.EntryBase.FloatEntry
- property hasValue: bool
- class projects.Entry.RegionEndEntry
ベースクラス:
projects.EntryBase.StringEntry
- class projects.Entry.RegionEntry
ベースクラス:
projects.EntryBase.StringEntry
- class projects.Entry.StpEntry
ベースクラス:
projects.EntryBase.FloatEntry
- class projects.Entry.TempoEntry
ベースクラス:
projects.EntryBase.FloatEntry
- property hasValue: bool
- point: int = 2
- class projects.Entry.VelocityEntry
ベースクラス:
projects.EntryBase.IntEntry
- property rate: float
- class projects.Entry.VibratoEntry
ベースクラス:
projects.EntryBase.EntryBase
- property amp: float
- property cycle: float
- property depth: float
- property fadeInTime: float
- property fadeOutTime: float
- property height: float
- init(value: str)
- property length: float
- property phase: float
- separater: str = ','
- property value: str
projects.EntryBase module
EntryBase 各ノートパラメータ設定用のベースクラスを定義します。
- class projects.EntryBase.BoolEntry
ベースクラス:
projects.EntryBase.EntryBase
bool型のvalueをもつエントリー用のベースクラスです。 継承して使います。
- init(value: bool)
- property value: bool
- class projects.EntryBase.EntryBase
ベースクラス:
object
エントリー用のベースクラスです。 継承して使います。
- property hasValue: bool
- property isUpdate: bool
- class projects.EntryBase.FloatEntry
ベースクラス:
projects.EntryBase.EntryBase
float型のvalueをもつエントリー用のベースクラスです。 継承して使います。
- init(value: float)
- point: int = 3
- property value: float
- class projects.EntryBase.IntEntry
ベースクラス:
projects.EntryBase.EntryBase
int型のvalueをもつエントリー用のベースクラスです。 継承して使います。
- init(value: int)
- property value: int
- class projects.EntryBase.ListEntry
ベースクラス:
projects.EntryBase.EntryBase
list型のvalueをもつエントリー用のベースクラスです。 継承して使います。 各パラメータのフォーマットが適切かは、self._checl_valueを継承して定義します。
- append(value)
- init(value: list)
- init_from_str(value: str)
- insert(pos: int, value)
- pop(pos: int)
- separater: str = ','
- set(pos: int, value)
- property value: list
- class projects.EntryBase.StringEntry
ベースクラス:
projects.EntryBase.EntryBase
Str型のvalueをもつエントリー用のベースクラスです。 継承して使います。
- init(value: str)
- property value: str
projects.Note module
- class projects.Note.Note
ベースクラス:
object
ustやプラグインでのNoteを扱います。
- num
ノート番号。#0000や#INSERT,#DELETEなどの形で与えられます。
- Type
- length
ノートのtick数。4分音符=480
- Type
- lyric
ノートの歌詞
- Type
- notenum
ノートの音高。C4=60
- Type
- tempo
ノートのbpm。
- Type
- pre: PreEntry
ノートの先行発声
- atPre: AtPreEntry
- UTAUのパラメータ自動調整適用後の先行発声値前の音が休符以外の場合
>>> AtPre = pre / (pre -ove) * prev.msLength/2
前の音が休符の場合>>> AtPre = pre / (pre -ove) * prev.msLength
- ove: OveEntry
ノートのオーバーラップ値。
- atOve: AtOveEntry
- UTAUのパラメータ自動調整適用後のオーバーラップ値前の音が休符以外の場合
>>> AtOve = ove / (pre -ove) * prev.msLength/2
前の音が休符の場合>>> AtOve = ove / (pre -ove) * prev.msLength
- stp: StpEntry
ノートのstp値
- atStp: AtStpEntry
- UTAUのパラメータ自動調整適用後のオーバーラップ値
>>> atStp = Pre - atPre + stp
- atFileName: AtFileNameEntry
このノートが参照しているファイルの音源ルートからの相対パス
- atAlias: AtAliasEntry
このノートが参照している原音設定のエントリ
- velocity: VelocityEntry
- このノートの子音速度。音源を再生するとき、固定範囲、先行発声、オーバーラップに以下の係数がかかる。
>>> rate = 2 ** ((100-velocity)/100)
- intensity: IntensityEntry
- このノートの音量。resamplerのターゲット音量が、100で-6dB、200で0dB、0で-infとなる。
- modulation: ModulationEntry
- このノートのモジュレーション0の時は音高通りの音程で、100の時は原音の音高のぶれを再現する。
- pitches: PitchesEntry
mode1で扱うピッチ数列。
- pbStart: PBStartEntry
ノートの頭から見てmode1のピッチのが何msから始まるか
- pbs: PBSEntry
- mode2のピッチの開始点。以下のいずれかの書式で与えられる。
>>> time;height >>> time,height >>> time
timeの単位はms、heightの単位はcent - pby: PBYEntry
mode2のピッチ制御点の音高列。制御点の数-2個(最初と最後を除く)与えられる。単位はcent
- pbw: PBWEntry
mode2のピッチの制御点どおしの間隔を表す時間列。制御点の数-1個与えられる。単位はms
- pbm: PBMEntry
- mode2のピッチの制御点どおしをどのように補完するかを表す値列。制御点の数-1個与えられる。""の場合、cos(-pi) → cos(0)の補完"s"の場合、線形保管"r"の場合、sin(0) → sin(pi/2)の補完"j"の場合、cos(0) → cos(pi/2)の補完
- envelope: EnvelopeEntry
- このノートの音量の変化。以下のいずれかの書式で与えられる。pはfloat(ms)、vはint
>>> p1,p2,p3,v1,v2,v3,v4 >>> p1,p2,p3,v1,v2,v3,v4,%,p4 >>> p1,p2,p3,v1,v2,v3,v4,%,p4,p5,v5
p1はノート頭からのmsp2はp1からのmsp3はp4から前向きのmsp4はノート末尾から前向きのmsp5はp2からのms - vibrato: VibratoEntry
- このノートのビブラート。lengthはノート長に対するビブラートがかかる範囲の割合cycleはビブラートにおけるsin派1周にかかる時間(ms)depthはビブラートのsin派の高さ(cent)fadeInTimeはビブラートの波の大きさが最大になるまでの時間をビブラート全体の長さに対する割合で指定fadeOutTimeはビブラートの波の大きさが0になるまでの時間をビブラート全体の長さに対する割合で指定phaseは位相がsin派一周の何%ずれているかheightは、0のとき波の中心が、-100のとき波の頂点が0に、100のとき波の底が0となるような割合
- label: LabelEntry
このノートにつけられたラベル
- direct: DirectEntry
Trueのとき、resamplerを経由せず直接wavtoolに値が送られる。
- region: RegionEntry
「選択範囲に名前を付ける」でつけた名前の開始位置
- region_end: RegionEndEntry
「選択範囲に名前を付ける」でつけた名前の終了位置
- flags: FlagsEntry
このノートに適用されるのフラグ
- prev: Note, default None
1つ前のノートへのポインタ
- next: note, default None
1つ後ろのノートへのポインタ
- apply_oto(oto: voicebank.oto.Oto, prefix: voicebank.prefixmap.PrefixMap)
- 原音設定値を読み込んで、pre,oveを更新します。もし、パラメータが初期化されていない場合、atPre,atOve,atStp,atAlias,atFileNameも更新します。
- パラメータ
oto (Oto) -- 原音設定ファイル
prefix (prefixMap) -- エイリアスの推定に使用します。
- 例外
ValueError -- lyricもしくはnotenumが初期化されていない場合
- atAlias: projects.Entry.AtAliasEntry
- atFileName: projects.Entry.AtFileNameEntry
- atOve: projects.Entry.AtOveEntry
- atPre: projects.Entry.AtPreEntry
- atStp: projects.Entry.AtStpEntry
- autofit_atparam()
pre,ove,stp,velocity,prev.length,prev.tempoを勘案して、atpre,atove,atstpを更新します。
- 例外
ValueError -- prev.lengthがNone出ないにもかかわらず、lyric,length,tempoの値が与えられていないとき。
- direct: projects.Entry.DirectEntry
- envelope: projects.Entry.EnvelopeEntry
- flags: projects.Entry.FlagsEntry
- intensity: projects.Entry.IntensityEntry
- label: projects.Entry.LabelEntry
- length: projects.Entry.LengthEntry
- lyric: projects.Entry.LyricEntry
- modulation: projects.Entry.ModulationEntry
- property msLength: float
tempoとlengthからmsを計算して返します。
- 戻り値
msLength
- 戻り値の型
int
- 例外
ValueError -- tempoもしくはlengthが初期化されていないとき。
- next = None
- notenum: projects.Entry.NoteNumEntry
- pbStart: projects.Entry.PBStartEntry
- pitches: projects.Entry.PitchesEntry
- prev = None
- region: projects.Entry.RegionEntry
- region_end: projects.Entry.RegionEndEntry
- tempo: projects.Entry.TempoEntry
- velocity: projects.Entry.VelocityEntry
- vibrato: projects.Entry.VibratoEntry
projects.Render module
- class projects.Render.Render(ust: projects.Ust.Ust, *, voice_dir: str = '', cache_dir: str = '', output_file: str = '', logger: Optional[logging.Logger] = None)
ベースクラス:
object
ustからwavを生成する処理を扱います。
- append()
PyWavToolを使用してキャッシュファイルから出力ファイルを合成する。
- clean()
self._cache_dirとself._output_fileが存在すれば削除する。
- notes: list
- resamp(*, force: bool = False)
PyRwu.Resampを使用してキャッシュファイルを生成する。
- パラメータ
force (bool, default False) -- Trueの場合、キャッシュファイルがあっても生成する。
projects.RenderNote module
- class projects.RenderNote.RenderNote(note: projects.Note.Note, vb: voicebank.voicebank.VoiceBank, cachedir: str, output: str, mode2: bool = True)
ベースクラス:
object
UTAUのNoteをresamplerやwavtoolに渡せるパラメータにしたもの。
- input_path
入力する原音のフルパス。
- Type
str
- cache_path
resampが出力する中間ファイルのパス
- Type
str
- output_path
wavtoolが出力する最終ファイルのパス
- Type
str
- target_tone
- 音高名(A4=440Hz)。半角上げは#もしくは♯半角下げはbもしくは♭で与えられます。
- Type
str
- velocity
子音速度
- Type
int
- flags
フラグ(省略可)
- Type
str, default ""
- offset
入力ファイルの読み込み開始位置(ms)
- Type
float, default 0
- target_ms
- 出力ファイルの長さ(ms)UTAUでは通常50ms単位に丸めた値が渡される。
- Type
float, default 0
- fixed_ms
offsetからみて通常伸縮しない長さ(ms)
- Type
float, default 0
- end_ms
- 入力ファイルの読み込み終了位置(ms)(省略可 default:0)正の数の場合、ファイル末尾からの時間負の数の場合、offsetからの時間
- Type
float, default 0
- intensity
音量。0~200(省略可)
- Type
int, default 100
- modulation
モジュレーション。0~200(省略可)
- Type
int, default 0
- tempo
- ピッチのテンポ数字の頭に!がついた文字列
- Type
str, default "!120"
- pitchbend
- ピッチベンド。(省略可)-2048~2047までの12bitの2進数をbase64で2文字の文字列に変換し、同じ数字が続く場合ランレングス圧縮したもの
- Type
str, default ""
- stp
入力wavの先頭のオフセットをmsで指定する。
- Type
float
- output_ms
wavtoolが出力する長さ
- Type
float
- envelopelist
- エンベロープのパターンは以下のいずれかです。
>>> p1 p2 >>> p1 p2 p3 v1 v2 v3 v4 >>> p1 p2 p3 v1 v2 v3 v4 ove >>> p1 p2 p3 v1 v2 v3 v4 ove p4 >>> p1 p2 p3 v1 v2 v3 v4 ove p4 p5 v5
p1,p2,p3,p4,p5,ove : floatv1,v2,v3,v4,v5 : int
- property cache_path: str
- property direct: bool
- static encodeBase64(values: numpy.ndarray) list
-2048 ~ 2047の数字を受け取り、文字列を返します。
- パラメータ
values (np.ndarray) -- -2048 ~ 2047のint列
- 戻り値
result -- base64にエンコードした2桁の文字列のリスト
- 戻り値の型
list
- static encodeBase64Core(value: int) str
0~63の数値を受け取り、1文字のstrを返す。
- パラメータ
value (int) --
- 戻り値
result
- 戻り値の型
str
- static encodeRunLength(values: list) str
- base64エンコードした文字列のリストを受け取り、ランレングス圧縮します。2文字一組とし、#num#はひとつ前の組の繰り返し回数を表します。
>>> [AA, AB, AC] → AAABAC >>> [AA, AA, AA, AA] → AA#3#
- パラメータ
values (list) --
- 戻り値
result
- 戻り値の型
str
- property end_ms: float
- property envelope: str
- property fixed_ms: float
- property flags: str
- property input_path: str
- property intensity: int
- property modulation: int
- property offset: float
- property output_ms: float
- property output_path: str
- property pitchbend: str
- property require_resamp: bool
- property stp: float
- property target_ms: int
- property target_tone: str
- property tempo: str
- property velocity: int
projects.Ust module
- class projects.Ust.Ust(filepath: str, *, logger: Optional[logging.Logger] = None)
ベースクラス:
object
UTAU sequence textファイルを扱います。
- filepath
ustのファイルパス
- Type
str
- version
ustのバージョン。
- Type
float, default 1.2
- project_name
プロジェクト名
- Type
str
- voice_dir
- 音源フォルダへのパス。%voice%はsettings.settings.VOICE_ROOTのこと。
- Type
str
- cache_dir
- wavキャッシュの保存先
- Type
str
- output_file
書き出すwavファイルのパス
- Type
string
- tempo
プロジェクトのbpm
- Type
float
- wavtool
wavtoolのパス
- Type
str
- resamp
resamplerのパス
- Type
str
- flags
デフォルトのフラグ
- Type
str
- mode2
ピッチのmode2が有効かどうか
- Type
bool, default False
- utf8
ustがutf8で保存されているかどうか
- Type
bool, default False
- notes
Noteの配列
- Type
List of Note
- cache_dir: str = ''
- filepath: str
- flags: str = ''
- load(filepath: str = '')
self.filepathもしくはfilepathのファイルを読み込みます。
- パラメータ
filepath (str, default "") -- 読み込むファイルのパス。値が与えられた場合、self.filepathを更新します。
- 例外
FileNotFoundError -- self.filepathのファイルが見つからなかった場合
- mode2: bool = False
- notes: list = []
- output_file: str = ''
- project_name: str = ''
- resamp: str = ''
- save(filepath: str = '', encoding: str = 'cp932')
- self.filepathもしくはfilepathにファイルを保存します。windows版UTAUとの互換性を優先してcp932を優先します。
- パラメータ
filepath (str, default "") --
encoding (str, default "cp932") --
- tempo: float = 120.0
- utf8: bool = False
- property version: float
- voice_dir: str = ''
- wavtool: str = ''
projects.UtauPlugin module
- class projects.UtauPlugin.UtauPlugin(filepath: str, *, logger: Optional[logging.Logger] = None)
ベースクラス:
projects.Ust.Ust
UTAUのプラグイン用一時ファイルを扱います。ほぼ、Ustと共通の仕様ですが、主に書き出しに関する仕様が異なります。- filepath: str
- save(filepath: str = '', encoding: str = 'cp932')
- self.filepathもしくはfilepathにファイルを保存します。windows版UTAUとの互換性を優先してcp932を優先します。
- パラメータ
filepath (str, default "") --
encoding (str, default "cp932") --