You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A an animation keyframe recording module for VCV Rack
Usage Guide
There are 13 inputs useful for recording single values such as CV or loudness of an audio channel
There are 5 waveform inputs for recording the shape of audio waveforms. Each audio input should be accompanied by its corresponding v/oct pitch CV so that the data does not produce a visual waveform that flickers in your animation program
First, start the recording by triggering the "Start" input
Next, either discard the current recording by triggering the "Abort" input or save it to disk by triggering the "Save" input
Upon triggering the "Save" input, 6 files will be saved to the same directory as currently loaded patch. One for the all of the 16 single-value inputs and one for each of the waveform inputs.
Structure of Output Files
keyframes.csv
Each column represents each one of the single value inputs from 1 -> 13, each row is a keyframe. The earliest keyframe is in the first row.
waveform_x_keyframes.csv
Each row is a keyframe for this waveform's shape. It is a window into the signal being recorded. Earliest to latest.
If the v/oct input is connected, the wave keyframe captures only one wavelength of the wave and begins sampling the wave at the same point in the cycle for each frame.
TODO: If it is not connected. the samples in the keyframe will be spread out across the entire wave for the duration of this keyframe (1/24, 1/30, etc.)
framerate.txt
stores a single integer representing the framerate
Import to Blender
The script and project file in the blender_files directory can be used to import the animation csv files into a blender project
The 13 single-value tracks will be mapped to the Z position of 13 empty objects. This Z value can be copied as a driver to any other drivable value you'd like. It will also be mapped to 13 value nodes in a group node that can be copied to any geometry nodes tree (TODO: and shader node tree?). The outputs of this group node can be used to drive a procedural geeometry.
Waveform files will be represented as a mesh with only verts and edges with a geometry nodes modifier that allows you to easily switch between seeing one keyframe at a time as a window into the signal (good for if you have the v/oct input connected) and seeing the entire signal traveling along the (x?) axis at a rate where the origin of the geometry is at the current keyframe's data. (TODO: wording)
TODO
handle low frequency waveforms better
experiment with different ways of capturing the waveform other than most recent window
devise, implement, and run a test to ensure the keyframer's sense of the current visual keyframe is not out of sync (esp over long runs)
About
Records voltage values in VCV Rack over time according to a specified frame rate. These keyframes can then be imported to an animation program such as Blender.