MetalBand.exe will generate fake death/black (or whatever other metal genres) metal band name, plus a logo and post them to Twitter.

In The News

So far MetalBand.exe has been featured in NYMag.com, which was pretty neat to see!

How Does It Work?

The majority of the codebase was recently rewritten to be more flexible and easier to deal with, but the way it works remains the same. In the (near?) future I'm hoping to allow people to create their own bands and logos, though this requires a lot of thought to prevent abuse (likely ending with me curating and having final approval). At any rate, there are two stages to generating a band. First it selects a band name (along with a font and color scheme), then generates the image with all this data.

Band Name Generator

The main research I did in this realm was browsing the lists of death metal bands and black metal bands from Wikipedia. The most common formats for band names are single word band names, which are sort of hard to generate. However a common theme among other bands is just sticking two metal sounding words together (with or without a space between). Bands named "Thing of Concept" or "Thing of the Concept" are also fairly common. The format config it selects from is:

    [
        {
            "select": [ "subject", "subject" ],
            "format": [
                "{subject}",
                "{insert}",
                "{subject}"
            ],
            "insert": [
                "",
                " ",
                " of ",
                " of the "
            ]
        },
        {
            "select": [ "descriptor", "subject" ],
            "format": [
                "{descriptor}",
                "{insert}",
                "{subject}"
            ],
            "insert": [
                "",
                " "
            ]
        },
        {
            "select": [ "descriptor", "descriptor", "subject" ],
            "format": [
                "{descriptor}",
                " ",
                "{descriptor}",
                "{insert}",
                "{subject}"
            ],
            "insert": [
                "",
                " "
            ]
        },
        {
            "select": [ "descriptor", "subject", "subject" ],
            "format": [
                "{subject}",
                " of the ",
                "{descriptor}",
                "{insert}",
                "{subject}"
            ],
            "insert": [
                "",
                " "
            ]
        }
    ]

The bot will select one of these formats and from that it will compile the "format" section into a string version thay will have each token replaced by words from the corpus. The special "{insert}" item will be replaced randomly with one of the strings in the "insert" section. So, for example, if the bot picks the first item in the array it will generate one of: "{subject}{subject}", "{subject} {subject}", "{subject} of {subject}" or "{subject} of the {subject}". The "select" item contains which types of words need to be pulled from the corpus.

The corpus itself is two lists of words derived from the above lists of actual band names. It's not exhaustive, but I got a lot of inspiration from actual bands. It's entirely possible it will generate an existing band (which I believe has happened once or twice).

There's also the possibility of it generating something like "Corpse Corpse", which can happen if the same words are selected from the corpus. This was something I actually left in on purpose because it's amusing to have the bot "mess up" sometimes. The weird repetitive band names are also usually the most popular if popularity is defined solely by retweets and likes.

The Image

Once the band name has been generated it will generate an image. It picks from a few "metal" fonts that I found on the internet (all free to use for non-commercial purposes), picks from a few colors (black, white, grey and red) and makes an image. There's some special case logic in there for some fonts and formatting based on the format of the band name, but none of it is super interesting.

The results are sometimes silly, sometimes gross, and sometimes you aren't sure if it's a real band.

Source Code?

As with all my Twitter bots, the actual base code that runs everything is not released (it's pretty messy) so releasing the bot's code might not be overly useful. Some day I'm sure I'll get to this.

As always, I'm on the Twitter myself if you have any questions/complaints/suggestions/whatever else.