Succinct Symphony No. 1 [rendered by Csound]
Channel: Striped Gazelle Music
Date: 2024-04-04

I had originally dubbed this Tiny Symphony No. 1 but in retrospect I think it would be more accurately named Succinct Symphony No. 1.
Hence may I offer in advance the term Succinctism?
Online I find definitions of the word succinct as "characterized by clear, precise expression in few words; concise and terse" and "marked by compact precise expression without wasted words".
This is exactly the idea!

The "performance" here is the first result of my new nerdy hobby, Csound.
https://csound.com/
I programmed it on Linux as follows:

THE Makefile WAS:

tiny_reverb.mp4: tiny_reverb.mp3
 ffmpeg -i tiny_reverb.mp3 -filter_complex showspectrum=size=hd720:scale=lin:saturation=-0.2:fscale=log:start=60:stop=18000:fps=20 -acodec copy tiny_reverb.mp4
tiny_reverb.wav: tiny.wav
 sox tiny.wav tiny_reverb.wav reverb
tiny.wav: tiny.orc tiny.sco
 csound -o tiny.wav tiny.orc tiny.sco
tiny_reverb.mp3: tiny_reverb.wav
 lame -q0 tiny_reverb.wav

THE BEGINNING OF tiny.sco LOOKED LIKE THIS:

f01 0 4096 10   1.0 0.9 0.5 0.3 0.1
f02 0 4096 10   1.0 0.9 0.5 0.3 0.3
f03 0 4096 10   1.0 0.9 0.5 0.3 0.4

f11 0 4096 10   1.0 0.0 0.5 0.0 0.3
f12 0 4096 10   1.0 0.0 0.4 0.0 0.2
f13 0 4096 10   1.0 0.0 0.3 0.0 0.1

f21 0 4096 10   1.0 1.0 1.0 1.0
f22 0 4096 10   1.0 1.0 1.0 1.0
f23 0 4096 10   1.0 1.0 1.0 1.0

f31 0 4096 10   1.0 0.0 0.2 0.5
f32 0 4096 10   1.0 0.0 0.2 0.5
f33 0 4096 10   1.0 0.0 0.2 0.5

t 0 100  4 100  6 80  8 100  140 100  142 60  144 100  160 100  161 80  162 100  205 100  207 85  210 100  218 100  220 50  222 100  226 100  228 80  230 100  247 100  248 50  249 100  254 100  256 50  259 110

;p1 p2  p3  p4      p5   p6   p7
b 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
i01 +   1   0       0    0    1
i 1 +   1   8.00    0    0    1
i 1 +   2   8.07    8.04 7.07 1
i02 +   1   0       0    0    1
i 2 +   1   8.00    0    0    1
i 2 +   2   8.07    8.04 7.07 1
i03 +   1   0       0    0    1
i 3 +   1   7.00    0    0    1
i 3 +   2   7.07    7.04 6.07 1
b 4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
i01 +   1   7.09    0    0    1
i 1 +   1   8.00    0    0    1
i 1 +   2   8.05    8.02 0    1
i02 +   1   7.09    0    0    1
i 2 +   1   8.00    0    0    1
i 2 +   2   8.05    8.02 0    1
i03 +   1   6.09    0    0    1
i 3 +   1   7.00    0    0    1
i 3 +   2   7.05    7.02 0    1

AND tiny.orc WAS:

sr     = 44100
kr     = 4410
ksmps  = 10
nchnls = 2
gitc   = -100
giv    = 5000

opcode instrtab, 0, ii
    itab, ipan xin
    inxa = cpspch(p4) * cent(gitc)
    ioct = (p3 / 8)
    if (p5 == 0) then
        if (p6 == 0) then ;SINGLE NOTE
            kfrq = inxa
            kenv linseg 0, (ioct * 1.5), giv, (ioct * 5.5), giv, (ioct * 1.0), 0
        else ;DUPLET
            inxc = cpspch(p6) * cent(gitc)
            kfrq linseg inxa, (ioct * 3.0), inxa, (ioct * 2.0), inxc, (ioct * 3.0), inxc
            kenv linseg 0, (ioct * 2.0), giv, (ioct * 5.0), giv, (ioct * 1.0), 0
        endif
    else
        inxb = cpspch(p5) * cent(gitc)
        if (p6 == 0) then ;TWO NOTES WITH THE LATTER DOTTED
            kfrq linseg inxa, (ioct * 1.2), inxa, (ioct * 0.7), inxb, (ioct * 6.1), inxb
            kenv linseg 0, (ioct * 2.0), giv, (ioct * 5.0), giv, (ioct * 1.0), 0
        else ;TRIPLET
            idoz = (p3 / 12)
            inxc = cpspch(p6) * cent(gitc)
            kfrq linseg inxa, (idoz * 3.5), inxa, (idoz * 1.5), inxb, (idoz * 2.5), inxb, (idoz * 1.5), inxc, (idoz * 3.0), inxc
            if (p4 == 0) then
                kenv linseg 0, (idoz * (2.0 + 2.5)), 0, (idoz * (9.5 - 2.5)), giv, (idoz * 0.5), 0
            else
                kenv linseg 0, (idoz * 2.0), giv, (idoz * 9.5), giv, (idoz * 0.5), 0
            endif
        endif
    endif
    ar oscil kenv, kfrq, itab
    a1, a2 pan2 ar, ipan
    outs a1, a2
endop

instr 1
    instrtab ((p7 * 10) + 1), 0.5
endin

instr 2
    instrtab ((p7 * 10) + 2), 1
endin

instr 3
    instrtab ((p7 * 10) + 3), 0
endin