ルモーリン
ホーム 更新 Perl Sample サービス 雑談 鉄ゲタ Linux リンク 連絡先

SynthesizerV用歌詞送りプラグイン

投稿:2022-03-27

SynthesizerVで歌詞を流し込むと、音符と歌詞で並びが違う場合があります。 それを見つけたら、音符を全部選択して歌詞入力を開き、当該場所を探して修正します。 音符が多い場合は、歌詞が前に来ていますから、音符に空白を設定して歌詞を後に送ります。 曲の前半であれば歌詞入力のテキストから見つけやすいのですが、後半になると送りたい文字がどれなのか探すのも一苦労です。
送る動作の反対で、ツメる動作のSynthesizerV用歌詞ツメプラグインもあります。

例えば赤枠で囲った音符の「お」を後に送りたいときに「お」のノートを選択してプラグインを実行すると、 選択したノートは空白になり追い出された「お」が後へ送られる。

-- 選択したノートに空白の歌詞を挿入

local plugin_name = "空白を挿入(Lua)"

-- プラグイン情報
function getClientInfo()
	return {
		name = plugin_name,
		category = "歌詞",
		author = "lemorin_jp",
		versionNumber = 1,
		minEditorVersion = 0
	}
end

-- メニュー選択でここに来る
function main()
	-- 選択中のトラックのメイングループ
	local tiss = SV:getMainEditor():getSelection()
	local note = tiss:getSelectedNotes()
	if 1 ~= #note then
		SV:showMessageBox(plugin_name, "ノートを1個選択してください")
	else
		local index = note[1]:getIndexInParent()
		local note_group = note[1]:getParent()
		local note_num = note_group:getNumNotes()
		local lyric = ""
		for i = index, note_num do
			local note = note_group:getNote(i)
			local swap_lyric = note:getLyrics()
			note:setLyrics(lyric)
			lyric = swap_lyric
		end
		-- はみ出た歌詞を最後のノートに押し込む
		local note = note_group:getNote(note_num)
		local swap_lyric = note:getLyrics()
		note:setLyrics(swap_lyric .. "_" .. lyric)
		SV:showMessageBox(plugin_name, "挿入しました")
	end

	-- プラグイン終了
	SV:finish()
end