
NoBanks Nearby // Ryan Hammer
ABOUT
An AI music video for my own track. A rain-soaked night drive. Wet asphalt glowing under a cab light, hands tight on the wheel, towers streaming past straight overhead. Every shot was generated in Runway and the edit was cut on a beat-sync editing engine I wrote in Python, with every cut verified frame by frame. Directed, edited, and music by NoBanks Nearby.
PROCESS
Wipers is 9:16, 1080x1920, 24fps. Every shot was generated in Runway and assembled by a beat-locked cutter I wrote in Python. The track went through librosa first to get a beat grid: 110.3 BPM, a 0.544 second beat interval. The storyboard is split into six sections and each one declares how many beats it holds a shot for. The assembler builds an EDL that cuts exactly on beat timestamps rather than near them. Nothing is eyeballed to the music. Two rules are enforced in code instead of in the edit. First, no shot ever repeats: every slot in the EDL consumes a unique clip exactly once, and the build hard errors if there are fewer clips than cuts. When a section's pool runs dry it draws from the unused global set rather than looping something you have already seen. Second, shots whose motion is a steady mechanical cycle, a wiper arm for example, get retimed so one full cycle equals a whole number of beats. The motion itself lands on tempo instead of drifting against it. Rendered through h264_videotoolbox. The audio is stream copied from my original master and never re-encoded, because it is my song and a second encode costs quality for nothing. On 24fps: a lot of AI work gets rendered at 30 and described as filmic, which is a contradiction. Frame rate is not a setting, it is part of the language. I shot broadcast and brand work from 2008 and I bring that eye to generated footage: composition, lens logic, contrast, and a cut that respects the track.


