Announcing: Coldtype

Often when we post promotional videos on our Instagram or YouTube, commenters ask a simple question: how the heck did you make this video?

It’s a good question, given that there isn’t a wide variety of software dedicated to 2D animation. There’s After Effects and, uh… well plenty of 3D packages, like Blender or C4D, but if you want to make two-dimensional graphics with interesting typography, you’re basically limited to After Effects.

It’s not a bad program, for certain kinds of text animations. It’s not a good program either, if you want to sync your typography to external data sources, like MIDI files, or if you want to get the most out of your fonts. There’s no support for variable fonts; no support for OpenType contextual alternates or stylistic sets; poor support for languages not based on the Latin writing system; the list goes on.

The point is, if you see an animation like this, you’re likely to think it was made in After Effects, and yet… After Effects cannot do these things. Which leads us back to the question: how was it done?

The answer is Coldtype — Goodhertz’ new open-source library for programming and animating display typography with Python.

What can Coldtype do?

Looking for an example of some Coldtype code? Here’s the code for the video below.

Some questions you might have:

Is Coldtype just for animation?

Nope! We also use Coldtype to set the type in our plugins, which was actually the catalyst for starting work on Coldtype in the summer of 2019. So all the text you see in our plugins (with the exception of the presets and the text in right-click menus) is generated with the help of Coldtype.

Is Coldtype a competitor to After Effects?

Not really. Coldtype is just a code library, so there is no interface; it’s all code all the way down. Of course, I personally prefer to write animations completely with code, because managing complex state in a GUI like After Effects isn’t a lot of fun (for me). So, I guess Coldtype is kind of a competitor to After Effects? It has (almost completely) pushed After Effects out of the Goodhertz video workflow — maybe it could do that for you, too.

Why is an audio company releasing a typography library?

When you think of the technical challenges of writing audio plugins, good typography might not be the first challenge that jumps to mind. But text is an integral part of audio; our plugins are full of abstraction and metaphor, meaning language — and typography — will always be a necessity when building an interface to an audio algorithm.

What’s interesting about typography in audio applications is that the abstract technical vocabulary of audio processing is always at odds with the reality of the interfaces. Words like “Frequency” and “Saturation” are common, but the sliders and dials we use to control those parameters are usually quite small, because we want to fit a powerful set of controls into any given plugin. That is, space is always at a premium. What are some solutions? Variable-width fonts, to start with, which we use all across the Goodhertz suite. But very few GUI applications support variable-width fonts, and even fewer (none?) can automate the process of fitting a piece of text snugly into rectangle using the parameters that a variable font makes available to designers. (I talked about writing code to automatically fit words based on width a little with James Edmondson of OHno Type Co on their blog (back when we were using DrawBot to set the text, immediately before we started work on Coldtype.))

All in all, for those who care about what words look like, audio plugins present an interesting opportunity to do lots of complex typography. But tools for doing complex typography are few and far between — which is why Coldtype exists!

Why is Coldtype open-source?

Coldtype is built on a foundation of open-source technology. From Python itself to FontGoggles, HarfBuzz, and fontTools, Coldtype would not exist if those open source components did not also exist first.

That’s the high-level reason why it’s open source. At a more nitty-gritty level, we should be honest: what you get when you download Coldtype is not, metaphorically speaking, a finished product, or even an IKEA shelf that will snap together if you follow the instructions. Coldtype is more like a box full of parts that can be fitted together in any combination you want. All the parts are there, you just have to figure out what to do with them. Well, maybe not all the parts are there, but that’s the beauty of open-source. We’ll keep adding more parts to the kit — and you can too.

If you do end up using the library or run into any issues with it, please let us know!

For now, if you’re interested in learning more, check out the about page and the tutorials on