Lyric Sequence

AI와 함께 읽기
전체 문서 한 파일로 (llms-full.txt)
LyricSequence #Generator #Node
Lyric Sequence

시각이 붙은 가사를 읽어 들여, 지금의 행·다음 행·행 내의 진행도·전환 트리거로 펼치는 노드입니다. 렌더링은 하지 않으므로, Text RenderText Reveal로 흘려보내서 사용합니다.

본문은 노드의 여러 줄 입력란에 직접 적을 수 있고, 패치에 저장됩니다. Text 입력에 .lrc / .txt / .csv의 실제로 존재하는 파일 경로(줄바꿈을 포함하지 않는 한 줄)가 온 경우에는, 그 내용을 읽어 들여 본문을 교체합니다. 읽어 들일 수 없었을 때는 본문을 바꾸지 않고 경로 문자열 그대로 남습니다. 그 외의 문자열은 그대로 본문으로 취급됩니다.

받아들이는 본문의 형식

형식은 본문으로부터 자동으로 판별합니다. **시각이 붙은 행이 한 줄이라도 있으면 ‘시각 있음’**으로 취급되고, 한 줄도 없으면 시각을 갖지 않는 단순한 행 리스트가 됩니다.

시각 태그가 붙은 행(LRC)

행 앞머리의 [분:초.소수]를 시각으로 읽습니다. 분은 13자리, 초는 12자리, 소수부는 1~3자리로 생략 가능합니다(.으로도 :으로도 구분할 수 있습니다).

[00:12.00]最初の行
[00:18.50][01:24.50]サビ(同じ本文を2か所に登録)
  • 시각 태그는 행 앞머리에 여러 개 나열할 수 있고, 그 개수만큼 같은 본문이 다른 시각에 등록됩니다
  • 본문 안의 <00:12.00> 같은 단어 단위 타임스탬프는 제거됩니다
  • [ar:...] [ti:...] 같은 메타데이터 행은 무시합니다. 단 [offset:+500]은 밀리초로 읽으며, 양수 값이면 가사가 더 일찍 나옵니다(노드의 Offset s와는 별도로 가산됩니다)

시각과 본문의 2열(CSV / TSV)

시각,본문 형태입니다. 구분자는 콤마 또는 탭이고, 행 안에서 가장 먼저 나타난 하나만을 구분자로 봅니다(본문 안의 콤마는 그대로 남습니다).

12.5,秒で書いた行
1:02.5,分:秒で書いた行
0:01:30,時:分:秒でも書ける

시각은 초 그대로(12.5)도, 분:초 / 시:분:초(콜론 구분으로 최대 3개)로도 적을 수 있습니다. 본문 앞뒤의 공백은 제거되고, 양 끝을 "로 감싸고 있으면 그 인용부호도 벗겨집니다.

시각이 없는 행 리스트

시각이 붙은 행이 하나도 없는 본문은, 한 줄에 1항목인 리스트로 취급됩니다. 끝의 빈 줄만 떨어뜨리고, 중간의 빈 줄은 ‘쉼’으로 남습니다.

덧붙여 시각이 붙은 본문에 섞인 시각 없는 행은, 메타데이터로 취급되어 버려집니다. 시각이 붙은 행은 시각 순으로 정렬됩니다.

Time 구동과 트리거 구동

  • Time 구동 — 본문에 시각이 있고, 또한 Time 포트가 연결되어 있는 동안입니다. 매 프레임 Time + Offset s + 본문의 offset을 보고, 그 시각 이하에서 마지막 행을 현재 행으로 합니다. 첫 행의 시각보다 앞에서는 행 없음 상태로, Line은 비어 있고 Index는 -1입니다. 이 동안에는 Next / Back / Reset은 무시됩니다(매 프레임 시각이 이기기 때문)
  • 트리거 구동 — 그 외(시각이 없는 본문, 또는 Time 미접속). Next로 다음 행, Back으로 이전 행, Reset으로 맨 앞으로. 맨 앞은 0번입니다
  • Time의 연결은 1개까지. 연결을 빼면 그 자리에서 트리거 구동으로 돌아가고, 행 없음 상태였던 경우에는 맨 앞으로 이동합니다
  • Offset s는 동기의 어긋남을 손으로 맞추는 보정입니다(초, 양수면 가사가 더 일찍 나옵니다). 적용되는 것은 Time 구동일 때뿐입니다
  • Loop 토글(기본값 ON)은 트리거 구동의 Next / Back에만 적용됩니다. ON이면 끝에서 반대쪽 끝으로 감싸 돌고, OFF면 끝에서 멈춥니다
  • 본문을 편집해도 현재 위치는 범위 내로 클램프되어 유지됩니다

노드의 작은 상태 행에는 구동 상태(Time / Trigger / 시각은 붙어 있지만 Time 미접속인 Trigger (timed))와 현재 위치·총 개수가, Time 구동일 때는 현재 행의 시각이 나옵니다. ◀ ▶ ⏮ 버튼은 Next / Back / Reset과 같은 조작입니다.

출력 보충 설명

  • Line — 현재 행. 행 없음 상태에서는 빈 문자열
  • NextLine — 한 칸 앞의 행(없으면 빈 문자열). 다음 가사를 흐릿하게 미리 보여 주는 표시에 사용할 수 있습니다
  • Progress — 현재 행의 시작부터 다음 행의 시작까지의 0→1. Time 구동일 때만 움직이고, 마지막 행과 행 없음 상태, 트리거 구동에서는 항상 0입니다
  • Changed — 행이 바뀐 순간(행 넘김, 또는 시각이 다음 행에 도달한 순간)에 발화. 본문의 교체나 파일 읽기, 구동 방식의 전환에서는 울리지 않습니다
  • Index — 현재 행의 번호(0부터 시작. Time 구동에서 첫 행보다 앞은 -1)
  • Total — 행 수

입력 포트

Port ID타입
Textstring
Timefloat
Nexttrigger
Backtrigger
Resettrigger

출력 포트

Port ID타입
Linestring
NextLinestring
Progressfloat
Changedtrigger
Indexint
Totalint

스크립트에서 설정할 수 있는 멤버

경로타입
textInputstring
timeInputfloat
textstring
currentOffsetfloat
currentLoopbool

Synapse Apps (스크립팅)

await synapse.modules.create({ type: "LyricSequence" })

이 페이지로 연결된 페이지

같은 페이지를 참조하는 페이지