| Hi everybody
I'm very new to csound and this form of creating sound. I usually use drumm
machines, rebirth, cakewalk, soundforge etc for this stuff. As soon as I
heard of csound I knew I had to try it, and so far I'm very impressed.
However, I have run into an interesting problem with my first attempt at
creating a piece of music. If someone could please explain to me what is
going on it would be greatly appreciated.
Details :
using DirectCSound 2.601
I have three simple oscillators in chorus, with a global stereo reverb
combining stuff from two of the toots ). Two of the notes that I am using
seem to produce very different results depending on where I put their start
times (keeping the same relative start times).
I discovered this because in their initial positions everything sounded
fine. Then I repeated the set of notes at a later time, and a pop was
produced where two samples don't fit smoothly together.
Reducing the duration of the second note down to 1.5 or less eliminated the
pop, but this is only necessary if the notes are in that position in the
score (timewise). The original duration of 3.25 produces no pops in other
positions.
I then tried keeping the original duration and moving the start times of the
notes (again keeping the same relative start times) and found that I didn't
get exactly the same resulting sound - what happened was that the left
channel doesn't always start simultaneously with the right, as it is
supposed to, so there is a spot of seeming silence in the left channel where
a note should be.
I hope I have explained myself well enough. Following here are the orc and
sco files I am using-> in the score, I have commented out all except the
notes giving trouble - as I said above, these notes give different results
depending on the start time, even though I'm sure they shouldn't.
orc file:
sr = 44100
kr = 441
ksmps = 100
nchnls = 2 ; stereo
garvbsig init 0 ; a global "a" variable
instr 9
idur = p3
iamp = p4
inote = cpspch(p5)
iattack = p6
irelease = p7
ipan = p8 ; 1 = left, .5 = center, 0 = right
irvbgain = p9
kamp linen iamp, iattack, idur, irelease
a1 oscil kamp,inote,1
a2 oscil kamp,inote * .991,1
a3 oscil kamp,inote * 1.009,1
asig = a1 + a2 + a3
arampsig = kamp * asig
outs arampsig * ipan, arampsig * (1 - ipan)
garvbsig = garvbsig + arampsig * irvbgain
endin
instr 99
irvbtime = p4
asig reverb garvbsig, irvbtime ; put global sig into reverb
outs asig, asig
garvbsig = 0 ; then clear it
endin
score file:
f1 0 4096 10 1
; ins strt dur rvbtime
i99 0 9.85 2.6
; ins strt dur amp pch atk rel blnce(0-1) rvbsend
; i9 0 3.5 60 8.04 1 1 0 .3
; i9 1.5 3.25 60 8.00 1 1 .5 .1
; i9 2.5 2.25 60 8.06 1 1 0 .2
; i9 3 2.25 60 8.04 2 1 1 .3
; i9 3 3.5 60 8.09 3 1 0 .3
; i9 4.5 3.25 60 8.00 1 1 .5 .1
; i9 5.5 2.25 60 8.06 1 1 0 .2
; i9 6 2.25 60 8.04 2 1 1 .3
i9 7 3.5 60 8.04 1 1 0 .3
i9 8.5 3.25 60 8.00 1 1 .5 .1
; i9 9.5 2.25 60 8.06 1 1 0 .2
; i9 10 2.25 60 8.04 2 1 1 .3
; i9 10 3.5 60 8.09 3 1 0 .3
; i9 11.5 3.25 60 8.00 1 1 .5 .1
; i9 12.5 2.25 60 8.06 1 1 0 .2
; i9 13 2.25 60 8.04 2 1 1 .3
e
Also, can anyone tell me if it is at all possible to get a relatively simple
tutorial on the basics of Fourier analysis, as my maths is very rusty, and
the book I have gets straight into the heavy maths. So far it seems that I
will have to go and relearn stuff from years ago to understand Fourier. If
this is the case, so be it.
Thanks for having patience with a long first posting.
Cheers
Paul |