Przejdź do treści
lab / Teledysk AI / lekcja 1 za darmo
Moduł 1 · lekcja 01 z 34 · ok. 18 min

Jak czytam utwór pod klip

Rozkładam numer na zwrotki, refreny i akcenty, zaznaczam momenty na zmianę scenerii i cięcia.

Posłuchaj lekcjilektor AI · --:--
0:00

Zanim wygeneruję pierwszą klatkę, rozbieram utwór na części. To najtańszy etap klipu i najczęściej pomijany. Pierwsza wersja jednego z moich klipów dostała ocenę „to pokaz slajdów, nuda”: długie ujęcia obojętne na muzykę. Druga wersja miała 73 ujęcia rozpisane na takty i dopiero ona ruszyła.

W tej lekcji pokazuję, jak robię mapę utworu: dokładną długość, tempo, granice sekcji zmierzone na sygnale, akcenty i momenty na zmianę świata. Z tej mapy w kolejnych lekcjach powstanie storyboard i shot lista.

Krok 1. Trzy odsłuchy, zanim cokolwiek zapiszę

Słucham numeru trzy razy w słuchawkach, za każdym razem z innym zadaniem.

  1. Odsłuch na emocję, bez kartki. Po skończeniu zapisuję jedno zdanie: o czym jest ten numer i jak ma się czuć widz na końcu. To zdanie wraca potem przy każdej decyzji.
  2. Odsłuch z tekstem. Mam przed sobą tekst i zaznaczam słowa, które da się pokazać: przedmioty, miejsca, gesty. „Wyjąłem stary keyboard” da się pokazać. „Czułem strach” nie da się pokazać wprost, trzeba to przełożyć na sytuację.
  3. Odsłuch z licznikiem. Odtwarzam w programie, który pokazuje czas z dokładnością do dziesiątych sekundy (DaVinci Resolve, Audacity, cokolwiek). Zapisuję, kiedy wchodzi perkusja, kiedy zaczyna się refren, gdzie jest pauza, drop, solo instrumentu, ostatnie uderzenie.

Po trzecim odsłuchu mam szkic, ale ucho przesuwa granice o sekundę albo dwie, więc mierzę.

Krok 2. Mierzę, nie zgaduję

Potrzebuję czterech liczb: dokładnej długości pliku, tempa (BPM), długości taktu i granic sekcji. Długość biorę z pliku, który poleci w klipie, nie z wersji demo. Przy jednym z moich klipów utwór miał dokładnie 142,000 s, przy innym 160,000 s. Te liczby wpisuję na górze mapy i pilnuję, żeby każda wersja montażu kończyła się co do klatki.

Granice sekcji wyznaczam na energii sygnału. Uruchamiam prosty skrypt w Pythonie z biblioteką librosa. Liczy głośność w oknach po 0,25 s, wygładza ją i szuka miejsc, gdzie energia najmocniej skacze w górę albo w dół. To są kandydaci na granice, na przykład wejście perkusji albo wyciszenie przed zwrotką.

# mapa.py - tempo, takt i kandydaci na granice sekcji
import sys
import numpy as np
import librosa

plik = sys.argv[1]
y, sr = librosa.load(plik, sr=22050, mono=True)
dlugosc = len(y) / sr

tempo, bity = librosa.beat.beat_track(y=y, sr=sr, units="time")
tempo = float(np.atleast_1d(tempo)[0])

okno = 0.25                                   # sekundy
hop = int(sr * okno)
rms = librosa.feature.rms(y=y, frame_length=hop * 2, hop_length=hop)[0]
db = librosa.amplitude_to_db(rms, ref=np.max)
gladkie = np.convolve(db, np.ones(8) / 8, mode="same")   # wygladzenie ok. 2 s
skok = np.diff(gladkie)

granice = []
for i in np.argsort(np.abs(skok))[::-1]:
    t = (i + 1) * okno
    if t < 2 or t > dlugosc - 2:              # pomijam brzegi pliku
        continue
    if all(abs(t - g) > 6 for g in granice):  # min. 6 s miedzy granicami
        granice.append(t)
    if len(granice) >= 12:
        break

print(f"dlugosc: {dlugosc:.3f} s | tempo: {tempo:.1f} BPM | takt 4/4: {240 / tempo:.3f} s")
for t in sorted(granice):
    i = int(t / okno)
    przed = gladkie[max(i - 4, 0)]
    po = gladkie[min(i + 4, len(gladkie) - 1)]
    kierunek = "W GORE" if po > przed else "w dol"
    print(f"{t:7.2f} s   {przed:6.1f} dB -> {po:6.1f} dB   {kierunek}")

np.savetxt("bity.txt", bity, fmt="%.3f")
print(f"zapisano {len(bity)} uderzen do bity.txt")

Uruchamiam go poleceniem python mapa.py utwor.mp3. Wcześniej instaluję zależności: pip install librosa numpy. Wynik porównuję ze szkicem z trzeciego odsłuchu. Tam, gdzie skrypt i ucho się zgadzają, mam pewną granicę. Tam, gdzie się różnią, słucham fragmentu jeszcze raz i decyduję sam. Skrypt nie zna tekstu, więc nie wie, że punchline wypada sekundę po skoku energii.

Pułapka: wykrywanie tempa potrafi pomylić się dwukrotnie, na przykład podać 76 BPM zamiast 152 BPM. Zawsze sprawdzam wynik, wystukując rytm ręką. Jeśli wynik jest dwa razy za wolny albo za szybki, mnożę lub dzielę przez dwa. Plik bity.txt z czasami uderzeń wczytam potem do montażu jako markery.

Krok 3. Długość taktu to waluta klipu

W utworach w metrum 4/4 takt trwa cztery uderzenia. Długość taktu w sekundach to 240 podzielone przez BPM. Na tej jednostce opieram długości ujęć, bo cięcie na początek taktu odbiera się jako „w punkt”, a cięcie w połowie uderzenia jako błąd, nawet jeśli widz nie umie powiedzieć dlaczego.

Tempo1 takt2 takty4 takty
90 BPM2,67 s5,33 s10,67 s
120 BPM2,00 s4,00 s8,00 s
140 BPM1,71 s3,43 s6,86 s
152 BPM1,58 s3,16 s6,32 s

Modele wideo generują ujęcia o minimalnej długości (Seedance zaczyna od 4 s). Krótkie cięcia, na przykład seria po jednym takcie w refrenie, robię więc w montażu, przycinając dłuższe generacje. Planuję to od razu: ujęcie, które na ekranie trwa 1,6 s, i tak kosztuje mnie generację 4-sekundową.

Krok 4. Mapa utworu w jednej tabeli

Wszystko składam w tabelę. Jedna linijka to jeden fragment utworu z decyzją, co się wtedy dzieje w obrazie. Tak wyglądał początek mapy w moim klipie do własnego numeru (skrót):

SekundyCo leci w utworzeEnergiaFunkcja w klipieObraz
0,0-17,5sam głos i klawisze, bez perkusjiniskawprowadzenie bohateraświt, pokój, bohater wyciąga instrument; długie ujęcia
17,5wejście perkusjiskokzmiana światacięcie w czerń i od razu nowy świat, czarno-biały
17,5-44,0refren, pełny groovewysokaenergia, obsadakrótkie cięcia na takt, kilka postaci
41,9-44,0opad przed zwrotkąspadekprzejścieświatła gasną jedno po drugim
44,0zwrotkaśredniahistoriaciepły pokój, ujęcia pod konkretne wersy

Przy zwrotkach rozpisuję wersy z dokładnością do sekundy i obok każdego wpisuję, czy da się go pokazać. Wersy, których nie da się pokazać wprost, dostają sytuację zastępczą. „A mój zapał cichł po trochu” zamieniłem na bardzo szeroki kadr: mały człowiek w pustym białym studiu.

Krok 5. Co zaznaczam na mapie i co z tego wynika

Każdy znacznik na mapie od razu zamieniam na decyzję w obrazie.

  • Wejście perkusji albo drop - zmiana świata, koloru albo lokacji, najmocniejsze cięcie w klipie.
  • Początek refrenu - wraca stały motyw wizualny (to samo miejsce, ten sam rekwizyt). Widz ma rozpoznać refren okiem.
  • Pauza albo break - bezruch, stopklatka, detal.
  • Solo instrumentu - osobna scena, zwykle bez artysty. W jednym klipie około 20 sekund solówki dostało własny wątek z rekwizytem.
  • Słowa klucze w tekście - ujęcie pod konkretne słowo, wypadające dokładnie w tej sekundzie.
  • Ostatnie uderzenie - ostatni kadr.

Z mapy wyciągam też tempo cięć.

Energia fragmentuŚrednia długość ujęcia na ekranieTyp ujęć
niska (intro, bridge)4-8 taktówszerokie plany, statyw, powolny ruch
średnia (zwrotka)2-4 taktyplany średnie, ujęcia pod wersy
wysoka (refren, drop)1-2 taktyzbliżenia, detale, performance
Protip: Seedance 2.5 przyjmuje referencję audio i dopasowuje do niej rytm ruchu w ujęciu. Kroję utwór na wycinki pokrywające się z granicami z mapy i każdy blok generuję z jego własnym fragmentem muzyki. U jednego dostawcy filtr praw autorskich odbijał pełny miks, więc zostawiam w wycinku samą warstwę perkusyjną (separacja HPSS w librosie). Do sterowania ruchem rytm w zupełności wystarcza.

Krok 6. Z mapy do liczby ujęć i budżetu

Na koniec liczę, ile ujęć potrzebuję. Sumuję fragmenty z mapy według tabeli tempa cięć. Przykład dla utworu 3:00 przy 120 BPM: intro 16 s (2 ujęcia), dwie zwrotki po 32 s (po 8 ujęć), trzy refreny po 16 s (po 8 ujęć), bridge 16 s (2 ujęcia), outro 12 s (2 ujęcia). Razem około 46 ujęć. Do tego doliczam 20-30% zapasu na ujęcia, które nie wyjdą, czyli planuję około 60 generacji.

Ta liczba trafia do wyceny, którą omawiam w ostatnim module. Już na tym etapie widzę, czy klip mieści się w budżecie artysty. Jeśli nie, upraszczam koncepcję: więcej długich ujęć i mniej postaci.

Pułapka: kiedy brakuje ujęć wideo, kusi, żeby wypełnić dziury nieruchomymi kadrami z wolnym najazdem. Do podglądu roboczego to wystarcza, ale takiej wersji nie nazywam gotowym klipem. Kadr z najazdem w miejscu ujęcia wideo każdy odbiorca rozpozna jako zaślepkę. Jeśli brakuje ujęć, mówię to wprost i podaję termin.

Zadanie: mapa twojego utworu

Weź utwór, do którego chcesz zrobić klip demo (własny albo za zgodą autora). Zrób jego pełną mapę.

  • Zrobiłem trzy odsłuchy: na emocję, z tekstem, z licznikiem. Mam zdanie „o czym jest numer”.
  • Uruchomiłem skrypt i znam dokładną długość pliku, BPM (sprawdzone ręką) i długość taktu.
  • Mam tabelę mapy z kolumnami: sekundy, co leci, energia, funkcja, obraz.
  • Zaznaczyłem wejście perkusji, refreny, pauzy, solówki, słowa klucze i ostatnie uderzenie.
  • Dla każdego fragmentu wpisałem tempo cięć z tabeli energii.
  • Policzyłem liczbę ujęć i dodałem 20-30% zapasu.