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

SynthesizerV用歌詞ツメプラグイン

投稿:2022-03-27

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 = note_num, index, -1 do
			local swap_note = note_group:getNote(i)
			local swap_lyric = swap_note:getLyrics()
			swap_note:setLyrics(lyric)
			lyric = swap_lyric
		end

		-- 最後の歌詞を分割して最後のノートに戻す
		local swap_note = note_group:getNote(note_num - 1)
		lyric = swap_note:getLyrics()
		local s = string.find(lyric, "_")
		if nil ~= s then
			local keep = string.sub(lyric, 1, s - 1)
			swap_note:setLyrics(keep)
			swap_note = note_group:getNote(note_num)
			lyric = string.sub(lyric, s + 1, 100)
			swap_note:setLyrics(lyric)
		end

		SV:showMessageBox(plugin_name, "削除しました")
	end

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