Analog Synth

Analog Synth is a joke language (weakscript) created for the sole purpose of enabling a multi-language interpreter to be written in another esoteric language, ΙΧΘΥΣ. A multi-language interpreter is one that can interpret the code of more than one language, and produces the expected output of either/both.
Analog Synth is a more wholesome version of the joke esolang Poop. In the style of TrivialBrainfuckSubstitutions, Analog Synth could be termed a Trivial Poop Substitution, AKA, to borrow accepted medical terminology, a Trivial Fecal Transplant.
No disrespect is intended to any Analog Synth by the unfortunate choice of parent language. The command tokens of Analog Synth are intended to stand on their own thematic strength as a perfectly valid and useful programming language.
Despite Analog Synth being a completely independent and respectable language, there is a cheeky reference to the source in its title.
==Commands==
Command	Description
patch 	Move the pointer to the right
buchla 	Move the pointer to the left
moog 	Add pointed character to the string
MOOG 	Add pointed character to the string uppercased
sine 	Show the string
ems 	Empty the string and set pointer to 0
==Background==
ΙΧΘΥΣ is a low level Turing complete language which recognises single character command tokens. Analog Synth is not Turing complete, and uses a small number of multi-character tokens. The basic (simplistic!) pointer movement and output operations of each language are however very similar.
The multi-character tokens of many simplistic esoteric joke languages, like this one, Chicken, and others are very inefficient in terms of information density. Other low-level esolangs have an opposing tendency to have very terse single (most often ASCII) character tokens. The idea for this multi-interpreter was intended to be a meditation on that tension between the uselessly verbose and awkwardly terse languages: implement an interpreter for the verbose style using one limited to terse tokens. Doubling the languages supported by the interpreter with no extra code emphasises the redundancy in simplistic-but-verbose languages.
==Examples==
===Hello World===
patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch
MOOG
buchla buchla buchla
moog
patch patch patch patch patch patch patch
moog
moog
patch patch patch
moog
sine
ems
patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch patch
MOOG
buchla buchla buchla buchla buchla buchla buchla buchla
moog
patch patch patch
moog
buchla buchla buchla buchla buchla buchla
moog
buchla buchla buchla buchla buchla buchla buchla buchla
moog
ems
buchla buchla buchla buchla buchla buchla buchla buchla
buchla buchla buchla buchla buchla buchla buchla buchla
buchla buchla buchla buchla buchla buchla
MOOG
sine
Compare Poop#Hello_World. The Analog Synth version is much better, but it wasn't written, merely converted.
==Interpreter==
In ΙΧΘΥΣ, the punchline multi-interpreter:
ΙtιΘΙuχΘ
ΙσΙ𝞻χΙΣιΘΙϲιΘ𝞻ΘΘ
ΙςΙoσ𝞻χΣχΙϲχΥΧΘΙΣΧΘΙoςΘΘΘ
ΙoςΘ
ΙsΧιιιθθιιιιιιΘ
ΙnΙϲΧχΘΧϲιιιιιιθχχχχΥΙΣΧχΘΣsΘ
ΙOχχχχχχχχχχχχχχχχχχχχχχχχχχχχχχχχoιιιιιιιιιιιιιιιιιιιιιιιιιιιιιιιιΘ
s
This defines commands which will process the characters of Analog Synth and Poop code one by one, and output the expected alphabetic characters (in the correct case) when those source files are subsequently loaded into the ΙΧΘΥΣ interpreter. A motivating factor behind this exercise was the fact that the o/O of the moog and MOOG commands have to be triggered twice to perform the single "add character" action, which seemed like an interesting mechanic. 
===Possible improvements=== 
The above interpreter does not correctly handle digits and punctuation of the Poop 1.0 specification character sequence, which annoyingly differs from the ASCII / Unicode order. Analog Synth deliberately does not specify an order at this stage. The interpreter should be updated at some point to enable correct digits and punctuation. I believe it is 'close enough' for the practical purpose of exploring information-density concept, but could be an exercise for someone else to complete.
Category:2018 Category:Joke languages Category:Languages