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

NumberEntry

length

ノートのtick数。4分音符=480

Type

LengthEntry

lyric

ノートの歌詞

Type

LyricEntry

notenum

ノートの音高。C4=60

Type

NoteNumEntry

tempo

ノートのbpm。

Type

TempoEntry

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はノート頭からのms
p2はp1からのms
p3はp4から前向きのms
p4はノート末尾から前向きのms
p5は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
num: projects.Entry.NumberEntry
ove: projects.Entry.OveEntry
pbStart: projects.Entry.PBStartEntry
pbm: projects.Entry.PBMEntry
pbs: projects.Entry.PBSEntry
pbw: projects.Entry.PBWEntry
pby: projects.Entry.PBYEntry
pitches: projects.Entry.PitchesEntry
pre: projects.Entry.PreEntry
prev = None
region: projects.Entry.RegionEntry
region_end: projects.Entry.RegionEndEntry
stp: projects.Entry.StpEntry
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の場合、キャッシュファイルがあっても生成する。

vb: voicebank.voicebank.VoiceBank

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 : float
v1,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") --

Module contents