Fonts and sounds

The free font faces and the synth voices that vawe carries, and how a page picks one.

This page lists the output of two verbs: bin/vawe fonts and bin/vawe sound with no argument. For the rules of text and sound, read Text and fonts and Audio.

Fonts

bin/vawe fonts prints the free faces (OFL) that vawe carries. Each line is the family, the weight and the file in assets/fonts/.

FamilyWeightFile
Anybodyvariable 100–900Anybody.woff2
Archivovariable 100–900Archivo.woff2
Big Shouldersvariable 100–900BigShoulders.woff2
Bricolage Grotesquevariable 100–900BricolageGrotesque.woff2
Caveatvariable 100–900Caveat.woff2
Frauncesvariable 100–900Fraunces.woff2
Geistvariable 100–900Geist.woff2
Geist Monovariable 100–900GeistMono.woff2
Hanken Groteskvariable 100–900HankenGrotesk.woff2
IBM Plex Mono400IBMPlexMono-400.woff2
IBM Plex Mono500IBMPlexMono-500.woff2
Instrument Serif400 italicInstrumentSerif-Italic.woff2
Instrument Serif400InstrumentSerif-Regular.woff2
Intervariable 100–900InterVariable.woff2
JetBrains Monovariable 100–900JetBrainsMono.woff2
Manropevariable 100–900Manrope.woff2
Plus Jakarta Sansvariable 100–900PlusJakartaSans.woff2
Space Grotesk500space-500.woff2
Space Grotesk700space-700.woff2
Unboundedvariable 100–900Unbounded.woff2

If a listed file is missing from assets/fonts, run node generators/media/fonts.mjs.

How a page picks a font

A page picks a font with @font-face. The file lives in the folder of the film, so the film carries its own files.

Copy the file

cp assets/fonts/Geist.woff2 films/my-film/assets/Geist.woff2

bin/vawe new does this for the starter face.

Declare the face

@font-face { font-family: "Geist"; src: url("assets/Geist.woff2") format("woff2"); font-weight: 100 900; }
body { font-family: "Geist", sans-serif; }

The src path is relative to page.html.

Two errors tell you the face is wrong. A face that does not load stops the render: font <family> failed to load: fix its src or remove the @font-face. Text in a family that no @font-face declares raises the font-fallback finding of page-check, because the browser paints a substitute. See Checks.

System fonts

bin/vawe fonts --system lists the faces installed on this machine, each with its local() name:

@font-face { font-family: "Mine"; src: local("American Typewriter"); }

The film renders only where the face is installed. Never copy or commit the font file: it is licensed to the machine.

Sounds

bin/vawe sound with no argument lists the synth voices. A page picks a voiceA voice is one of the built-in synth sounds, such as pluck or whoosh, chosen with data-synth="<voice>". with data-synth on an <audio> tag, and the second with data-at:

<audio data-synth="whoosh" data-at="2.4"></audio>
<audio data-synth="tap" data-on="world:s4" data-at="0.1"></audio>

Without data-gain, the cue plays at the default gain of its voice. data-gain is absolute and replaces that default. The voices air and swoosh-long also read data-length, the seconds of the move they sit under.

VoiceDefault gainTail
pluck-6 dB0.78 s
chime-6 dB2.20 s
sparkle-6 dB1.24 s
droplet-6 dB1.39 s
bloom-6 dB3.56 s
success-6 dB1.70 s
ready-6 dB1.10 s
whoosh-4 dB1.56 s
riser-4 dB1.75 s
drop-2 dB4.20 s
impact-2 dB0.83 s
swell-4 dB0.89 s
tap-3 dB0.49 s
tick-5 dB0.24 s
air-5 dB0.83 s
swoosh-long-5 dB2.09 s
shimmer-7 dB2.24 s
glass-7 dB2.20 s
sub-thump-5 dB1.08 s

A name that is not in the list stops the render and prints the valid voices. The names bed, pad, drone, hum, chord, swell-soft and braam are banned: a synth bed is not allowed. Use a real music file with <audio loop src="...">, or no bed (harness/media/page-audio.mjs).

Other sound commands

CommandWhat it does
bin/vawe sound <track>The beat grid and hits of a music file
bin/vawe sound <page>The bed, the synth cues and the cuts of a page
bin/vawe sound <track> --cuts <page>For each cut of the page: the nearest hit and beat line, the offset in ms and frames, and the second to move the cut to
bin/vawe sound <page> --at 0.8,2.75The cues that sound at those seconds, with the level of each in dB
bin/vawe sound <page> --waveformA PNG of the mixed waveform. Prints LUFS and true peak
bin/vawe sound <file> --sfx --film <page>Trim, pitch, fade and level an effect file into assets/sfx/ of the film and print the <audio> line
bin/vawe sound --labRender every synth voice to out/sound-lab/*.wav and open the lab to listen

The verb is sound. A call to bin/vawe sounds exits with unknown verb.

On this page