The Pain Threshold (2020)
For three groups of Csound Instruments
Introduction
A computer music piece, with sonic elements generated in Csound. Inspired by the definition of ‘the Pain Threshold’ in auditory science, this piece endeavors to model computer-generated human voice how the transformation of such experience do present perceived psychoacoustic Extremity. The pain threshold is a measurable upper limit of auditory endurance, but the subjective experience of auditory pleasure of all kinds is limitless.
Three groups of sound were generated from Csound programs.
The first group is a ring modulated noise with panning, lasting through the on-going structure of the piece.
The second group of sound is built based on Iain McCurdy ‘s FoF Vowel Voice synthesis instrument, with parameters adjusted, to generate a short hum of “Ay-Yo”, and a squawk of “Uoiii-Yo!”, modeling a group of woman and man in pain.
The third group of sound is combined by three granular-synthesis instruments, created bouncing, beady and glitching flow – the ebb and flow within the structure. The piece’s length is 10:09 min and is divided into four part:
Part 1: 0: 00 – 3: 05 The Pain Starts
Part 2: 3: 06 – 5: 41 The Pain Goes On
Part 3: 5: 41 – 7: 00 The Pain Everywhere
Part 4: 7: 01 – 10:09 Enjoying the Pain
<!-- wp:code -->
<pre class="wp-block-code"><code>#part of the code
#For Space issue: multiple lines were deleted here.
SONIC MATERIAL GENERATION:
INSTRUMENT 1: Ring Modulation with Panning, sonic instance triggered
by a MIDI keyboard
<CsoundSynthesizer> <CsOptions> -+rtaudio=coreaudio </CsOptions> <CsInstruments>
sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1
instr 1
aIn inch
kInLev downsamp aIn
1 ;APC25 MIDI Keyboard = input 1 printk .2, abs(kInLev)
kModFreq poscil kModFreq =
700, 1/2 kModFreq+200
aMod aRM
poscil =
1, kModFreq aIn * aMod
aPan
aPanL
aPanR = cos((aPan + 0.5) * $M_PI_2)
outs aRM*aPanL, aRM*aPanR
= aMod + 0.5 ;Panning Control = sin((aPan + 0.5) * $M_PI_2)
fout "akb.wav", 18, aRM*aPanL, aRM*aPanR endin
</CsInstruments> <CsScore>
i 1 0 3600
</CsScore> </CsoundSynthesizer>
INSTRUMENT 2: Used an FoF Vowel Voice Synthesis Instrument by Iain McCurdy
<CsoundSynthesizer>
<CsOptions> -odac </CsOptions>
<CsInstruments>
sr = 44100 ksmps = 16 nchnls = 2 0dbfs = 1
;BASS
giBF1 ftgen 0, 0, -5, -2, 600, 400, 250, 400, 350 giBF2 ftgen 0, 0, -5, -2, 1040, 1620, 1750, 750, 600 giBF3 ftgen 0, 0, -5, -2, 2250, 2400, 2600,
........
; formant
kForm1 kForm2 kForm3 kForm4 kForm5
p10
information: cutoff frequenies, intensity, bandwidths,
kDB1 tablei
kDB2 tablei
kDB3 tablei
e*15)+10 kV ow*5,giBF1+(iV oice*15)+11 kV ow*5,giBF1+(iV oice*15)+12 kV ow*5,giBF1+(iV oice*15)+13 kV ow*5,giBF1+(iV oice*15)+14
aForm1,aForm2,aForm3,aForm4,aForm5
outs aMix*kEnv*0.3, aMix*kEnv*0.3 ; send audio to outputs
aMix sum
kEnv linseg 0,3,1,p3-6,1,3,0 ; an amplitude envelope
endin </CsInstruments>
PART 3: Three Granular-Synthesis Instruments
<CsoundSynthesizer> <CsOptions>
-odac -d </CsOptions> <CsInstruments>
sr = 44100 ksmps = 16 nchnls = 2 0dbfs = 1
gisine ftgen 0,0,4096,10,1
;granulation waveforms
giSaw ftgen 1,0,4096,7,0,4096,1
giSq ftgen 2,0,4096,7,0,2046,0,0,1,2046,1 giTri ftgen 3,0,4096,7,0,2046,1,2046,0
giPls ftgen 4,0,4096,7,1,200,1,0,0,4096-200,0 giBuzz ftgen 5,0,4096,11,20,1,1
;window function for each grain giWFN ftgen 2,0,16384,20,3,1
instr 1
kRate expon p4,p3,p5 kTrig metro kRate kDur expon p6,p3,p7 kForm expon p8,p3,p9
schedkwhen kTrig,0,0,2, 0, kDur, kForm
printks "Rate:%5.2F Dur:%5.2F Formant:%5.2F%n", 0.5, kRate, kDur, kForm endin
instr 2
iForm = p4
aEnv linseg 0,0.005,0.2,p3-0.01,0.2,0.005,0 aSig poscil aEnv, iForm, gisine
out aSig
endin
instr 3
;random spline generates formant values in oct format kOct rspline 4,8,0.1,0.5
kCPS = cpsoct(kOct)
kPhs = 0
kFmd = 0
kPmd = 0
kGDur rspline 0.01,0.2,0.05,0.2
kDens rspline 10,200,0.05,0.5
iMaxOvr = 1000
kFn randomh 1,5.99,0.1
printks "CPS:%5.2F%TDur:%5.2F%TDensity:%5.2F%TWaveform:%1.0F&n",1,\ kCPS,kGDur,kDens,kFn
aSig grain3 kCPS, kPhs, kFmd, kPmd, kGDur, kDens, iMaxOvr, kFn, giWFN,\ 0,0
out aSig*0.06
endin
</CsInstruments> <CsScore>
i 1 0 20 1 100 0.023 0.024 200 200 i 1 5 30 1 100 0.024 0.025 100 150
i 1 10 10 i 1 15 10 i 1 18 10 i 1 31 10 i 1 42 20 i 1 63 30 i 3 0 200
1 100 0.025 0.026 300 350 1 100 0.026 0.027 300 350 1 100 0.026 0.027 400 450 10 10 0.66 0.01 500 400 50 50 0.03 0.01 100 500 70 70 0.55 0.01 100 600
</CsScore> </CsoundSynthesizer>
The finalization of compositional structure is realized in Ableton Live.</code></pre>
<!-- /wp:code -->
