Gestku
1. Uninhibited Gesture
There is a need for regular (almost daily) practice. A
workflow and format that meets the demands of this kind
of output must reduce the friction involved in creation.
The word I have chosen to describe this is "uninhibited"
(stolen from the book title "the uninhibited brush"). The
gestlings are studies of gesture, therefore gestku are
uninhibited gesture
.
Gestku is a word that "Gesture" and "Haiku". Gestku is not related to the Haiku art form, but is inspired by the it's form and structure.
The focus of the Gestku is to establish regular practice using Gesture (via gestvm) to construct sound objects. Ideally, Gestku should also be made in a day, and hopefully in one sitting.
For Gestku, output is less important than process, code is more important than theoretical words. Anything that directs flow without worrying so much about direction itself is Gestku.
2. Gestku Format
A Gestku consists of a 11-second snippet of audio, produced
using mnolth
code (written in lua via mnolua
). There
is also a graphic produced: some kind of black and white
tesselation/mosaic that depicts the sound somehow.
The process of gestku is typically developed using live coding, via a combination of mnort and vim.
3. Gestku Boilerplate
In order to make things fast, you need to do less.
This is some boilerplate code that aims to get a few things out of the way.
Gestku = {}
Gestku.gest = require("gest/gest")
Gestku.pprint = require("util/pprint")
Gestku.tal = require("tal/tal")
Gestku.path = require("path/path")
Gestku.morpheme = require("morpheme/morpheme")
Gestku.morpho = require("morpheme/morpho")
Gestku.core = require("util/core")
Gestku.sig = require("sig/sig")
Gestku.diagraf = require("diagraf/diagraf")
Gestku.sr = require("sigrunes/sigrunes")
Gestku.mseq = require("morpheme/mseq")
Gestku.seq = require("seq/seq")
Gestku.nrt = require("nrt/nrt")
function Gestku:new(o)
o = o or {}
o.tal = o.tal or Gestku.tal
o.morpheme = o.morpheme or morpheme
o.path = o.path or Gestku.path
o.words = {}
o.gest = Gestku.gest:new{tal = o.tal}
-- this is how it was done before I made this
-- boilerplate. hence why it is not a method
setmetatable(o, self)
o.patch = function()
o.setup(o)
o.sound(o)
end
self.__index = self
return o
end
function Gestku:rtsetup()
lil([[
hsnew hs
rtnew [grab hs] rt
func out {} {
hsout [grab hs]
hsswp [grab hs]
}
func playtog {} {
hstog [grab hs]
}
]])
end
function Gestku:setup()
self.gest:create()
self.init(self)
end
function Gestku:start()
self.words = {}
self.tal.start(self.words)
end
function Gestku:articulate(seq, head)
self.morpheme.articulate(self.path,
self.tal, self.words, seq, head)
end
function Gestku:compile()
self.gest:compile(self.words)
end
function Gestku:compile_tal(program)
self.gest:compile_tal(program)
end
function Gestku:compile_words_and_tal(program)
self.gest:compile_tal(table.concat(self.words, " ") ..
"\n" ..
program)
end
function Gestku:init()
-- To be overridden
end
function Gestku:run()
self.sound(self)
lil("out")
end
function Gestku:draw(filename)
return false
end
return Gestku
4. Messages
[153f43f2] 2023-03-08-07-46: today's gestku was truly uninhibited. I'm running out of ideas for this vocabulary, and my focus is pretty thin right now.
[9fb36be9] 2023-03-07-06-35: I have officially decided to create a "bits" folder for the gestku. these will contain shared scraps of code. if they end up being useful, I'll work to make them abstractions in the main gestlings codebase.
[bdb16768] 2023-02-25-13-49: this gestku I've been working on since the 20th... is not a gestku, I've decided. Currently reflecting to see what went wrong, and figure out what it is supposed to be instead.
[42f8eba2] 2023-02-22-07-01: gestku is starting to turn into what the breathing cards became... lots of code and "tool-mind", lots of friction, not a lot of output. not good.
[6d4ecc0f] 2023-02-05-20-27: after a week of tool-mind, back to toy-mind with gestku. the focus is going to be on wavetables.
[1acc26bf] 2023-01-29-15-25: last gestku made for goblin week today. this one was a snoring goblin.
[f6b787b4] 2023-01-28-18-57: today's gestku violated my 11-second rule. But it needed to be a little bit longer (15 seconds) because it was about a goblin trying to remember a tune.
[8614a1c4] 2022-12-17-05-42: working on a new concept: gesture (morphemes). hoping this will quickly get me back to (gestku) development. multi-gestures are super important, so I felt it was okay to get derailed this time.
[8173631d] 2022-12-15-06-21: initial (gestku) page created.
[babb5849] 2022-12-11-14-40: starting the gestkus today. let's see if this can grow legs.