Little Drummer Boy

Sunday, May 2nd 2021, 7:36:45 pm

I know not how many times I revisited this project,
how many times I rewrote this code over the years.
I know deep down in my bones that my code is revolutionary,
it is not inspired by Sam Aaron though he is living that dream.
It is far more primal and guttural,
and it comes from an old world war two bunker filled... with arcade games.
I always overshot my experiments,
I used too many samples, I brought in too many risers.
I wasn't paying attention because I wanted to fail at everything,
as that is the most magnificent way of learning.
I let one of my earlier programs run overnight,
it made 600 songs, and I worked out to them just fine.
They weren't bad,
but they needed to be more unique, they were reusing too many song parts.
I knew how to splice a song,
but I didn't know how to build it ground up.
Some part of me assumed,
that I would never know.
I knew that change was necessary,
and I pushed my tidy music generator away.
And so begun my terrible mission of learning lmms,
I figured out how to use the program pretty quickly, but I didn't know how music was built.
helped me understand the components of a song, and notes, and octaves, and kick drums and hats.
The moment I knew I could make decent music in lmms,
I stopped using it, it was over, done, hasta la vista.
Because I knew I had to go back to my program,
to the thing that started it all.
I can teach lmms,
but I should not use it to just make songs.
I matured, musically speaking,
but I am not a musician, I am at zero, though not in the minus anymore.
I understand what C4 means,
I knew that before, but because of 2n, or 4n, notation that would frequently go along with the notes I felt I didn't know enough.
Now, I am not intimidates, 4n means quarter note,
it does not mean four notes as one would guess.
It is duration notation, it means a thing will go off four times within the space of a single note,
or it will last quarter of a note, it is notation for units of time.
And I also know, there isn't much more than that,
some exotic notation for chords perhaps, but I also know that chord theory can be pushed aside.
Today is the first day,
that I have this program on my screen.
And I only told it to beat the drum,
I now understand that the OOP class named Membrane Synth.
Is referring to the membrane that is stretched over a drum,
I would normally assume that it is some kind of a synthesizer patch solution patter magic, but it is just a cute name for a drum synthesizer.
I kept my previous experiments to myself,
but this one is published on the internet as open source and I named it westland
It it used Tidal notation for construction of music,
basically, if you are playing in the world of a quarter note, or 4n...
You have four spots reserved for yourself,
if you just use one spot, it will be multiplied four times.
But you are also allowed to use two notes in a singe spot,
and they will hit at the speed of an eights note, or 8n.
The JavaScript array which is defined with square brackets,
simply has another array embedded in it where the singe note used to be;
So it goes from ["F4", "F4", "F4", "F4" ] which plays at the actual beats per minute of a song,
to ["F4", "F4", ["F4","F4"], "F4", ] and that plays the square bracket with the square bracket notes twice as fast.
This may sound weird, but you have to calm down from thinking computers,
into the world where people would try to make music by banging sticks on a tree.
If you just hit the tree in succession,
it will sound boring, if you whack it faster couple of time, it will sound like rock and roll.
Unlike Mr. Aaron,
I need this music to be automatically generated by a computer.
I will be focusing on creating symmetrical erosion of the beat pattern to create room for the dancers to do their tricks.
I will be applying filters and transformers,
to that beautifully simple Tidal notation of ["F4", "F4", ["F4","F4"], "F4"].
And this time, I am going to stick with the synthesizer,
the program as a whole is just 18.3 kB, that is very tiny.
I hope a day will come where I will be able to generate fantastic dance and workout albums,
which will contain music made by a machine, and thus never heard before.
It will still sound like popular Electronic Dance Music,
but each song will come as a surprise every time.
Randomly configured classes of instruments,
coming together to create songs respectful of dancers.
A lot of today's music is very distracting,
it is really difficult to find the right setup.
And it is not even possible to share workout music,
what a terrible mess.
If you fell like programming, or learning how to program music, Dear Reader,
fork westland on github, which you can find on npm... and make it your own.
May the magnificent Tidal notation,
keep you wide awake at night.

#428: Little Drummer Boy

Sunday, May 2nd 2021, 7:36:45 pm