This Text file is old! In a 🏛️Museum, an unsorted archive of (user-)pages. (Saved from Geocities in Oct-2009. The archival story: oocities.org)
--------------------------------------- (To 🚫report any bad content: archivehelp @ gmail.com)
>

 /**************************************************
  * EDexplorer.csd (Hudson Lacerda - 2006)
  *
  * A simple CSound program to explore scales based on equal divisions
  * of  octave (or  pseudo-octave),  using Bill  Sethares' concept  of
  * ``induced spectra'' to relate timbre and scale.
  *
  * See: 
  *
  * Hudson Lacerda 
  * 
  * 
  **************************************************/




-g
-M        0
-d
-odevaudio
--sched
-+rtaudio=alsa




;*******************************


sr=44100
kr=2205
ksmps=20
nchnls=1

ih1=-1
ih2=-1
ih3=-1
ih5=-1

FLpanel "Equal Divisions Explorer",380,500,50,50 ;***** start of container

  itypea    =           5
  itypeb    =           1

gk1, giha FLslider "FLslider 1 - Number of Divisions ", 2, 100, 0 ,itypea, ih1, 260,15, 20,50
gk2, gihb FLtext "FLtext 1", 2, 100, 1, itypeb, 60, 15, 300, 50

gk3, gihc FLslider "FLslider 2 - Octave for timbre", 1.5, 3, 0 ,itypea, ih3, 260,15, 20,100
gk4, gihd FLtext "FLtext 2", 1.5, 3, 0.000001, itypeb, 60, 15, 300, 100

gk5, gihe FLslider "FLslider 3 - Octave for pitches", 1.5, 3, 0, itypea, ih5, 260, 15, 20, 150
gk6, gihf FLtext "FLtext 3", 1.5, 3, 0.000001, itypeb, 60, 15, 300, 150

gk7, gihg FLslider "FLslider 4 - Frequency for pitch 69", 100, 2000, 0, itypea, ih5, 260, 15, 20, 200
gk8, gihh FLtext "FLtext 4", 100, 2000, 0.1, itypeb, 60, 15, 300, 200

gk9,gihi FLslider "FLslider 5 - Amplitude factor for partials", 0.1, 1.0, 0, itypea, ih5, 260, 15, 20, 250
gk10, gihj FLtext "FLtext 5", 0.1, 1.0, 0.01, itypeb, 60, 15, 300, 250

gk11, gihk FLslider "FLslider 6 - Amplitude (Volume)", 0, 32000, 0, itypea, ih5, 260, 15, 20, 300
gk12, gihl FLtext "FLtext 6", 0, 32000, 1.0, itypeb, 60, 15, 300, 300

gk13, gihm FLslider "FLslider 7 - Number of partials", 1, 11, 0, itypea, ih5, 260, 15, 20, 350
gk14, gihn FLtext "FLtext 7", 1, 11, 1.0, itypeb, 60, 15, 300, 350

  ibtype    =           2
gkquantize, iquantize   FLbutton "Button 1 - Quantize partials", 1, 0, ibtype, 340, 25, 20, 400, -1

iASCIIe = 101                                   ; "e" (score event) as ASCII
iASCIIi = 105                                   ; "i" (score event) as ASCII
gkquit,     iquit       FLbutton "Button 2 - Quit", 1, 0, 1, 340, 25, 20, 450, iASCIIe, 99, 0, 0

            ;; init values
  FLsetVal_i          12, giha
  FLsetVal_i          12, gihb
  FLsetVal_i          2.0, gihc
  FLsetVal_i          2.0, gihd
  FLsetVal_i          2.0, gihe
  FLsetVal_i          2.0, gihf
  FLsetVal_i        440.0, gihg
  FLsetVal_i        440.0, gihh
  FLsetVal_i            0, iquantize
  FLsetVal_i          .75, gihi
  FLsetVal_i        19000, gihk
  FLsetVal_i        19000, gihl
  FLsetVal_i            6, gihm
  FLsetVal_i            6, gihn

gkquit init 0

FLpanelEnd      ;***** end of container
FLrun           ;***** runs the widget thread, it is always required!

; instr 99
; event_i       "e", 0, 0, 0.1                    ; quit csound
; endin

instr 100                                       ;;  update interfce
  FLsetVal  1       , gk1, gihb                 ; slider envia dado para text
  FLsetVal  1       , gk3, gihd                 ; slider envia dado para text
  FLsetVal  1       , gk5, gihf                 ; slider envia dado para text
  FLsetVal  1       , gk7, gihh                 ; slider envia dado para text
  FLsetVal  1       , gk9, gihj                 ; slider envia dado para text
  FLsetVal  1       , gk11, gihl                 ; slider envia dado para text
  FLsetVal  1       , gk13, gihn                 ; slider envia dado para text
endin


;;; opcode to quantize partials into the scale
  opcode    Quantize,    k, kkkkk
  kfreq,kbasepitch,kbasefreq,kmodulo,kndiv xin
  kpitch    =           round(kndiv * (log(kfreq/kbasefreq)/log(kmodulo)))
  kfreq2    =           kbasefreq*(kmodulo^(kpitch/kndiv))
  xout      kfreq2
  endop   
;;;


instr 1

ixtra=.25
            xtratim     ixtra
  krel      release

kf init 0
kaa init 0
ks init 0

ks = gk4 ; 2^(gk3/1200)

midinoteoncps kf, kaa
ifreq notnum   
kf = gk8 * gk6 ^ ((ifreq-69)/round(gk2))

ka1       linseg      0, .01, 1, 1, 1, 0, 1
ka        =           ka1*kaa

if krel       > .5      then                    
  ka2       linseg      1, ixtra, 0
  ka        =           ka1*kaa*ka2
endif

kvol = gk12

;;; 11 is the maximum number of partials
ka1=(ka/128)*(kvol)/ 11

ka2=ka1*(gk10  )
ka3=ka1*(gk10^2)
ka4=ka1*(gk10^3)
ka5=ka1*(gk10^4)
ka6=ka1*(gk10^5)
ka7=ka1*(gk10^6)
ka8=ka1*(gk10^7)
ka9=ka1*(gk10^8)
ka10=ka1*(gk10^9)
ka11=ka1*(gk10^10)


kf1=kf
kf2=kf*ks^logbtwo(2)
kf3=kf*ks^logbtwo(3)
kf4=kf*ks^logbtwo(4)
kf5=kf*ks^logbtwo(5)
kf6=kf*ks^logbtwo(6)
kf7=kf*ks^logbtwo(7)
kf8=kf*ks^logbtwo(8)
kf9=kf*ks^logbtwo(9)
kf10=kf*ks^logbtwo(10)
kf11=kf*ks^logbtwo(11)


gk2=round(gk2)

;;; Quantization of partials into the scale
;;; kfreq2 Quantize  kfreq,kbasepitch,kbasefreq,kmodulo,kndiv xin
if (gkquantize > .5) then
  kf2       Quantize    kf2, 0, kf, gk6, gk2
  kf3       Quantize    kf3, 0, kf, gk6, gk2
  kf4       Quantize    kf4, 0, kf, gk6, gk2
  kf5       Quantize    kf5, 0, kf, gk6, gk2
  kf6       Quantize    kf6, 0, kf, gk6, gk2
  kf7       Quantize    kf7, 0, kf, gk6, gk2
  kf8       Quantize    kf8, 0, kf, gk6, gk2
  kf9       Quantize    kf9, 0, kf, gk6, gk2
  kf10      Quantize    kf10, 0, kf, gk6, gk2
  kf11      Quantize    kf11, 0, kf, gk6, gk2
endif

a1 oscil ka1,kf1,1
a2 oscil ka2,kf2,1
a3 oscil ka3,kf3,1
a4 oscil ka4,kf4,1
a5 oscil ka5,kf5,1
a6 oscil ka6,kf6,1
a7 oscil ka7,kf7,1
a8 oscil ka8,kf8,1
a9 oscil ka9,kf9,1
a10 oscil ka10,kf10,1
a11 oscil ka11,kf11,1

knpartials = round(gk14)
aout = a1

if(knpartials>10)then
aout = aout+a11
endif
if(knpartials>9)then
aout = aout+a10
endif
if(knpartials>8)then
aout = aout+a9
endif
if(knpartials>7)then
aout = aout+a8
endif
if(knpartials>6)then
aout = aout+a7
endif
if(knpartials>5)then
aout = aout+a6
endif
if(knpartials>4)then
aout = aout+a5
endif
if(knpartials>3)then
aout = aout+a4
endif
if(knpartials>2)then
aout = aout+a3
endif
if(knpartials>1)then
aout = aout+a2
endif


;;; lowpass
; aout tone aout, 1000
aout tone aout, 2000

            out         aout

endin



;*******************************



f1 0 4096 10 1
i 100 0 [2*3600]



Text file Source (historic): geocities.com/br/hfmlacerda/misc

geocities.com/br/hfmlacerda
geocities.com/br

(to report bad content: archivehelp @ gmail)