Early notes and 2012 ideas

From a collection of 2011-2013 notes on the program and language (the program then named "sgensys"), where the thinking continued after the coding stopped in early 2012. {New 2020 thoughts italicized in brackets.}

The names of persons from whom I got a little feedback in 2012 are three who worked at LiU's IDA (computer science) department. At the time, I had been studying a bit of undergraduate theory, looking around the library, searched in general, and had a difficult time translating between the theory of programming languages and the track I had already begun to explore. In hindsight, it may have been more interesting to discuss the early project I already had in more detail with them.

When I revived the project years later, during an extended time as a jobless dropout going through an inner rollercoaster, I had forgotten many details of the 2012 knowledge, but could much more clearly see how my old experimenting related to bigger programming language concepts, no longer blinded by specifics of form. Later, I think a personal refresher on formal languages, automata theory, and compiler construction may come in handy.

Note that the word "operator" here refers to a FM synthesizer operator, i.e. a parametrized oscillator.

Contents

Main ideas list

New language and syntax:

The remainder

Later pages described, firstly, ideas building on my old design about how to solve various problems seen, for extending or reworking the program as it then was. Such ideas had to do with timing, data structures for oscillators and their relations, and traversal. A useful part may be the thoughts on how to stereo-split only parts of an audio processing chain according to need, when something which some other things depend on is in stereo instead of in mono. Secondly, there were further lists departing from the old design with very abstract musings about a "new language", and work potentially leading to it were interspersed with some more practical ideas about reworking the old program.

Comparing the 2020 program to the more practical 2012 redesign ideas, the language and work done by the parser simply hasn't grown to fit the sketched-out ideas of a more full-featured symbol table, and a bit more. But an antiquated idea of scanner input buffering from the old version of the so-called Dragon Book, copied into my notes, made its way in a mutated form into the file module used in my code. The practical notes also include the simple idea of pre-traversing oscillator connection graphs "in the compiler" (after parsing), and scheduling audio input and output blocks/buffers into a flat ordered list for audio generation to use afterwards.