whistleblower

This commit is contained in:
severak 2020-01-03 00:12:28 +01:00
parent d27fd3813d
commit 767cd88ac5
1 changed files with 83 additions and 0 deletions

View File

@ -0,0 +1,83 @@
; this is purely experimental thing which is tracking voice via microphone and outputing MIDI notes
;
; this need a LOOOOOOOOOOT of EXPERIMENTS to be properly implemented
<Cabbage>
form caption("Whistleblower") size(400, 300), colour(58, 110, 182), pluginid("def1")
rslider bounds(8, 12, 100, 100), channel("gain"), range(0, 4, 1, 0.5, 0.01), text("Gain"), trackercolour(0, 255, 0, 255), outlinecolour(0, 0, 0, 50), textcolour(0, 0, 0, 255)
vslider bounds(118, 12, 50, 99) range(0, 1, 0, 1, 0.001) channel("amp") active(0)
vslider bounds(176, 12, 50, 101) range(0, 1, 0, 1, 0.001) active(0) channel("rms")
hslider bounds(8, 120, 387, 50) range(0, 800, 0, 0.5, 0.01) channel("freq") active(0)
label bounds(78, 180, 142, 68) text("A") channel("note") identchannel("notewidget") value(1)
</Cabbage>
<CsoundSynthesizer>
<CsOptions>
-n -d -+rtmidi=NULL -M0 -m0d
</CsOptions>
<CsInstruments>
; Initialize the global variables.
ksmps = 16
nchnls = 2
0dbfs = 1
opcode F2M, k, kk
kFq, kRnd xin
kNotNum = 12 * (log(kFq/220)/log(2)) + 57
kNotNum = (kRnd == 1 ? round(kNotNum) : kNotNum)
xout kNotNum
endop
instr 1
ifftsize = 1024
iwtype = 1 /* cleaner with hanning window */
a1 inch 1 ;Realtime audio input
kgain chnget "gain"
aSig = a1 * kgain
kRms rms aSig
fsig pvsanal aSig, ifftsize, ifftsize/4, ifftsize, iwtype
kfr, kamp pvspitch fsig, 0.03
kfreqp portk kfr, 0.05
kampp portk kamp, 0.2
; kamp = 0 z nějakého důvodu
;printks "kfr = %d, kamp=%f, krms=%f\n", .025, kfr, kamp, kRms
chnset kamp, "amp"
chnset kRms, "rms"
chnset kfreqp, "freq"
kmetro metro 8
if kmetro==1 && kfreqp>1 then
kmidinote F2M kfreqp, 1
printks "%d, %f\n", 0, kmidinote, kampp
SIdent sprintfk "text(%d)", kmidinote % 12
chnset SIdent, "notewidget"
endif
aOut vco2 kampp, kfreqp, 12
outs aOut, aOut
endin
</CsInstruments>
<CsScore>
;causes Csound to run for about 7000 years...
f0 z
;starts instrument 1 and runs it for a week
i1 0 [60*60*24*7]
</CsScore>
</CsoundSynthesizer>