In No Sense? Nonsense!


Some time in (I think) 1980, Phil Collins had some chords and a drum pattern, but no vocals to go over them. So he played the first chord on a piano and sang the first thing that came into his head: "I can feel it coming in the air tonight".

It didn't mean anything at the time, but was a springboard for suggesting other lyrics, and even made it into the finished song. People are still getting married to it today, which show you how little attention usually gets paid to song lyrics - it's about a failed relationship.

Still, people are getting married to "Every Breath You Take", which is about a stalker, and to "Moments in Love" which...I don't think is about anything at all.

Phil Collins has now officially retired to be a father, Sting was last heard being atrociously sampled by P Diddy, and I've seen Anne Dudley conduct a full orchestra in the ambient classic she wrote 25 years earlier. And I still don't like writing lyrics.

Sometimes it's a matter of finding a singable melody and trying to forcefit an intelligent sentiment into it. And sometimes it's a matter of having a page of notes and trying to find a melody to fit them into. Annie Lennox uses the latter method, and the Black Eyed Peas use the former, though they don't bother with the intelligence part.

But a lot of songs I listen to are in languages I don't understand. And this one gave me an idea to avoid spending a day banging my head against sentences till they fit a rhythm. It's in German, und Ich spreche nur Deutsch genug zu Kraftwerk Worte verstehen.

So instead I've spent a day writing a program (which I'll post as a comment) to make random sort-of-german words, sorted by syllable count. My not-language is called Doitschish because it's Deutsch...ish.

Here's a selection from the first run:

Words with eins syllable: Ech, Prif, Zo, Push, Az,

Zwei: Avach, Drazeis, Eshon, Auba, Roshta

Drei: Kluzutchai, Undentach, Aukodi

Veir: Reshkotchinteul, Akaupoiplen

Fünf: Jekauveulueusctitsch, Vandunginushez

I think they look quite...smart and efficient. There's a much simpler Polynesian alternative, and (who knows?) maybe an English version in the pipeline.

So now I can avoid worrying about meaning at all, and one more form of writers block is circumvented. Just don't ask me to try rapping in it.

2 comments:

  1. As promised...the program!
    --------------------
    RESTORE: CLS
    REM ***** Initial Vowels *****
    DATA "a", "e", "i", "o", "u", "oe"
    DATA "ai", "au", "ei", "oi", "eu"
    DATA "ja", "je", "jo", "ju"

    REM ***** Medial Vowels *****
    DATA "a", "e", "i", "o", "u", "oe"
    DATA "ai", "au", "ei", "oi", "eu"

    REM ***** Terminal Vowels *****
    DATA "a", "e", "i", "o", "u", "oe"

    REM ***** Initial Consonants *****
    DATA "p", "t", "k", "b", "d", "g"
    DATA "f", "v", "s", "z", "sh", "ch", "r", "tch"
    DATA "pr", "pl", "tr", "kr", "kl", "br", "bl", "dr", "gr", "gl"

    REM ***** Medial Consonants *****
    DATA "p", "t", "k", "b", "d", "g"
    DATA "f", "v", "s", "z", "sh", "ch"
    DATA "m", "n", "l", "r", "tch"
    DATA "mp", "nt", "nk", "mb", "nd", "ng"
    DATA "pr", "pl", "tr", "kr", "kl"
    DATA "br", "bl", "dr", "gr", "gl"
    DATA "shp", "sht", "shk"
    DATA "lb", "ld", "lg"

    REM ***** Terminal Consonants *****
    DATA "f", "v", "s", "z", "sh", "ch", "m", "n", "l", "tch"

    DIM iv$(15): FOR a = 1 TO 15: READ iv$(a): NEXT a
    DIM mv$(11): FOR a = 1 TO 11: READ mv$(a): NEXT a
    DIM tv$(6): FOR a = 1 TO 6: READ tv$(a): NEXT a
    DIM ic$(24): FOR a = 1 TO 24: READ ic$(a): NEXT a
    DIM mc$(39): FOR a = 1 TO 39: READ mc$(a): NEXT a
    DIM TC$(10): FOR a = 1 TO 10: READ TC$(a): NEXT a

    REM ***** Produce Wordlists *****
    FOR b = 1 TO 25: GOSUB syl1: PRINT word$, : NEXT b
    PRINT : PRINT
    FOR b = 1 TO 25: GOSUB syl2: PRINT word$, : NEXT b
    PRINT : PRINT
    FOR b = 1 TO 25: GOSUB syl3: PRINT word$, : NEXT b
    PRINT : PRINT
    FOR b = 1 TO 20: GOSUB syl4: PRINT word$, : NEXT b
    PRINT : PRINT
    FOR b = 1 TO 10: GOSUB syl5: PRINT word$, : NEXT b
    END
    --------------------

    ReplyDelete
  2. syl1:
    REM ***** Make Monosyllable - ic+tc, ic+tv, ic+mv+tc *****
    word$ = ""
    d = INT(RND * 3)
    SELECT CASE d
    CASE 0
    GOSUB AddIV: GOSUB AddTC
    CASE 1
    GOSUB AddIC: GOSUB AddTV
    CASE 2
    GOSUB AddIC: GOSUB AddMV: GOSUB AddTC
    END SELECT
    RETURN

    syl2:
    REM ***** Make Disyllable - iv+mc+mv+tc, iv+mc+tv, ic+mv+mc+tv, ic+mv+mc+mv+tc
    word$ = ""
    d = INT(RND * 4)
    SELECT CASE d
    CASE 0
    GOSUB AddIV: GOSUB AddMC: GOSUB AddMV: GOSUB AddTC
    CASE 1
    GOSUB AddIV: GOSUB AddMC: GOSUB AddTV
    CASE 2
    GOSUB AddIC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddTC
    CASE 3
    GOSUB AddIC: GOSUB AddMV: GOSUB AddMC: GOSUB AddTV
    END SELECT
    RETURN

    syl3:
    REM ***** Make Trisyllable *****
    word$ = ""
    d = INT(RND * 4)
    SELECT CASE d
    CASE 0
    GOSUB AddIV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddTC
    CASE 1
    GOSUB AddIV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV
    CASE 2
    GOSUB AddIC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddTC
    CASE 3
    GOSUB AddIC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV
    END SELECT
    RETURN

    syl4:
    REM ***** Make Quadrosyllable *****
    word$ = ""
    d = INT(RND * 4)
    SELECT CASE d
    CASE 0
    GOSUB AddIV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddTC
    CASE 1
    GOSUB AddIV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV
    CASE 2
    GOSUB AddIC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddTC
    CASE 3
    GOSUB AddIC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV
    END SELECT
    RETURN

    syl5:
    REM ***** Make Pentasyllable *****
    word$ = ""
    d = INT(RND * 4)
    SELECT CASE d
    CASE 0
    GOSUB AddIV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddTC
    CASE 1
    GOSUB AddIV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV
    CASE 2
    GOSUB AddIC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddTC
    CASE 3
    GOSUB AddIC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV: GOSUB AddMC: GOSUB AddMV
    END SELECT
    RETURN

    AddIV:
    l = INT(RND * 4)
    IF l <> 1 THEN c = INT(RND * 6) + 1 ELSE c = INT(RND * 9) + 7
    word$ = word$ + iv$(c)
    RETURN

    AddMV:
    l = INT(RND * 4)
    IF l <> 1 THEN c = INT(RND * 6) + 1 ELSE c = INT(RND * 5) + 7
    word$ = word$ + mv$(c)
    RETURN

    AddTV:
    c = INT(RND * 6) + 1
    word$ = word$ + tv$(c)
    RETURN

    AddIC:
    c = INT(RND * 23) + 1
    word$ = word$ + ic$(c)
    RETURN

    AddMC:
    l = INT(RND * 4)
    IF l <> 1 THEN c = INT(RND * 23) + 1 ELSE c = INT(RND * 16) + 24
    word$ = word$ + mc$(c)
    RETURN

    AddTC:
    c = INT(RND * 10) + 1
    word$ = word$ + TC$(c)
    RETURN

    ReplyDelete