| Hello list!
I improved the 'nlalp' non-linear allpass filter opcode by adding a
special mode that can be switched on with an optional parameter (in
order to be backward-compatible). You find a short description below.
The source code and full description files can be found at
http://www.harmonik.de/femc/download .
By the way - what is the 'official' policy concerning patents that cover
some part of the Csound code (like in this case)? I assume that just
_programming_ a patented algorithm is legal, right? Do the Csound users
have to be prevented somehow from (inadvertantly) _using_ the invention
for something that infringes the patent holder's rights? May I sell
music that was produced with that specific opcode? Or should we refrain
from building patented algorithms into Csound at all?
Jens Groh
nlalp
---------
aresult nlalp ainput, klfact, knfact [, istor] [, iupdm]
Passive non-linear allpass filter.
INITIALIZATION
istor - initial disposition of internal data space. Since filtering
incorporates a feedback loop of previous output, the initial
status of the storage space used is significant. A zero value
will clear the space; a non-zero value will allow previous
information to remain. The default value is 0.
iupdm - parameter update mode. If zero, the internal coefficients
derived
from klfact and knfact are immediately updated. If negative,
the
coefficients are updated at times when the stored energy is
zero.
Positive values are reserved for future enhancements. The
default
value is 0.
PERFORMANCE
klfact - linear part of the allpass filter coefficient.
knfact - nonlinear part of the allpass filter coefficient. If zero,
the
filter will be a normal, yet adjustable allpass.
DESCRIPTION
This opcode performs a "passive", non-linear allpass filter after John
Pierce
& Scott Van Duyne (US Patent 5,703,313). "Passive" means that it is
energy-
conserving, which makes it useful in physical modeling instruments, like
waveguide meshes.
Note that energy is only conserved as long as the filter coefficients do
not
change while the filter contains energy. Otherwise, it may result in
parametric amplification effects. If iupdm<0, the filter automatically
avoids these effects by waiting for the next zero-crossing of its
internal
state before the coefficients are updated. This mode is most suitable if
parameters are being modulated, but needs a little more computation
time.
Note also that there may be cases when the stored energy never becomes
zero,
for example, when the input signal has a considerable DC offset. Then,
the
only way to have variable parameters at all may be to choose iupdm=0.
If abs(klfact)+abs(knfact)<1, the filter is stable. (Unproved.)
Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03195;
14 Sep 99 17:11 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
id 11QvBD-0001xf-00
for jpff@maths.bath.ac.uk; Tue, 14 Sep 1999 17:11:39 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (RAA01037); Tue, 14 Sep 1999 17:08:32 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 14 Sep 1999 17:08:20 +0100
Received: from dns2.seanet.com [199.181.164.2] by hermes via ESMTP (RAA00916); Tue, 14 Sep 1999 17:08:17 +0100 (BST)
Received: from seanet.com (cy45.dialup.seanet.com [207.12.136.45]) by mx.seanet.com (8.9.3/Seanet-8.7.3) with ESMTP id JAA06362; Tue, 14 Sep 1999 09:08:13 -0700 (PDT)
Message-ID: <37DE7469.9687A4D@seanet.com>
Date: Tue, 14 Sep 1999 09:14:33 -0700
From: Sean Costello
X-Mailer: Mozilla 4.05 [en] (Win95; I)
MIME-Version: 1.0
To: groh@irt.de
CC: csound@maths.ex.ac.uk
Subject: Re: nlalp improved / patents policy
References: <37DE5255.318A@irt.de>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Jens Groh wrote:
> By the way - what is the 'official' policy concerning patents that cover
> some part of the Csound code (like in this case)? I assume that just
> _programming_ a patented algorithm is legal, right?
As far as I know (and in no way should I be considered the authoritative
source), you only run into problems with patents if you try to create a
commercial product from them. Using patented technology for your personal use is
OK - just don't try and sell a product that incorporates the technology. I could
see running into problems if you were distributing free software that directly
competed with commercial software, and incorporated patented elements of the
commercial software. However, Csound doesn't really compete with any commercial
software; it is part of a grand tradition of Music N-type languages, most of
which were capable of patent infringement (FM, physical modelling, etc.). As far
as music that uses the patented technology, I doubt that this would be a problem
- although we will see what the future holds.
Csound already has lots of ugens that probably incorporate patented technology.
Perry Cook's physical modelling code is based on the CCRMA stuff, a great deal
of which is patented. Since his code is freely distributed, it should be no big
deal.
To be on the safe side, I would be sure and acknowledge the original source of
your ideas if they are patented. For nlalp, you could acknowledge the John
Pierce / Scott Van Duyne paper in your manual page for the ugen, and perhaps
list the patent number in the source code.
Sean Costello
Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03689;
14 Sep 99 20:45 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
id 11QxLM-00052V-00
for jpff@maths.bath.ac.uk; Tue, 14 Sep 1999 19:30:16 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (UAA17084); Tue, 14 Sep 1999 20:41:20 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 14 Sep 1999 20:41:09 +0100
Received: from front4.grolier.fr [194.158.96.54] by hermes via ESMTP (UAA17088); Tue, 14 Sep 1999 20:41:08 +0100 (BST)
Received: from club-internet.fr (ppp-104-45.villette.club-internet.fr [194.158.104.45])
by front4.grolier.fr (8.9.3/No_Relay+No_Spam_MGC990224) with ESMTP id VAA17430
for ; Tue, 14 Sep 1999 21:40:40 +0200 (MET DST)
Message-ID: <37DD7D25.1462DE2D@club-internet.fr>
Date: Tue, 14 Sep 1999 00:39:33 +0200
From: JM&M DARREMONT
Reply-To: jmdbrady@club-internet.fr
X-Mailer: Mozilla 4.06 (Macintosh; I; PPC)
MIME-Version: 1.0
To: csound@maths.ex.ac.uk
Subject: Re: problem with loscil
References: <37DD7951.3F7D2D72@club-internet.fr>
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by exeter.ac.uk id UAA17088
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Hi,
Couldn't you replace loscil by diskin?
Tell me if I'm wrong but I guess the only difference between the 2 are th=
at
loscil allows loops.
K.H a =E9crit:
>=20
> I'm sending the orc & sco, but i don't think it's a good idea to
> send the samples!!
>=20
> Anyhow, the clicks are "one sample out of range", only. But we can
> hear them alright. And they are only on the right channel!
>=20
> I tried it with some other samples, some do clicks some don't .
> Mystery!
> I tried to play them with other softwares (like Peak, soundapp, etc...=
)
> with a positive result (no clicks!). Anyhow, i send the orc& scos, and
> if someone wants to ttest with the samples i can compress them and send
> them personally to him.
> thanks
>=20
> karim
--=20
Jean-Michel DARREMONT
Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa03871;
14 Sep 99 22:18 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
id 11QzyH-000232-00
for jpff@maths.bath.ac.uk; Tue, 14 Sep 1999 22:18:37 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (WAA03083); Tue, 14 Sep 1999 22:15:38 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 14 Sep 1999 22:15:27 +0100
Received: from front3m.grolier.fr [195.36.216.53] by hermes via ESMTP (WAA08055); Tue, 14 Sep 1999 22:15:26 +0100 (BST)
Received: from club-internet.fr (ppp-104-185.villette.club-internet.fr [194.158.104.185])
by front3m.grolier.fr (8.9.3/No_Relay+No_Spam_MGC990224) with ESMTP id XAA18885
for ; Tue, 14 Sep 1999 23:15:18 +0200 (MET DST)
Message-ID: <37DEBB89.6414A6DA@club-internet.fr>
Date: Tue, 14 Sep 1999 23:18:08 +0200
From: JM&M DARREMONT
Reply-To: jmdbrady@club-internet.fr
X-Mailer: Mozilla 4.06 (Macintosh; I; PPC)
MIME-Version: 1.0
To: liste CSound
Subject: oscil1i problem
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by exeter.ac.uk id WAA08055
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Hi,
I've a problem that I guess very simple but wich I can't solve.
A krate control remains at zero when using oscil1i and it works when usin=
g expseg.
Here are orc&sco:
; Rezzy.orc
sr=3D44100
kr=3D44100
ksmps=3D1
nchnls=3D1
instr 1
idur=3Dp3
iamp=3Dp4
ifqc=3Dp5
ifco=3Dp6
irez=3Dp7
kfco oscil1i 0,ifco,idur,2 ; THIS REMAINS AT ZERO FOR ANY TABLE
;kfco expseg 100+.01*ifco, .2*idur, ifco+100, .5*idur, ifco*.1+100,.3*idu=
r,
.001*ifco+100; THIS WORKS
printk 1, kfco
kdclick linseg 0, .002, 1, idur-.004, 1, .002, 0
;rezzy
;;xres =96 amount of resonance. For rezzy, values of 1 to 100 are typic=
al.
Resonance should be one or greater.
apulse1 buzz iamp,ifqc, sr/2/ifqc, 1 ; Avoid aliasing
=20
asaw integ apulse1
axn =3D asaw-.5
ayn rezzy apulse1, kfco, irez
out ayn*kdclick
endin
;Rezzy.sco
f1 0 32768 10 1=09
f2 0 1025 7 0.0000 102 0.5999 103 0.9117 102 1.0000 103 0.8087 102 0.6489=
154 0.4639 204 0.3476 154 0.2999=09
;p1 p2 p3 p4 p5 p6 p7=09
i1 0.0000 0.3960 7781 73.4162 2023 90=09
i1 0.3970 0.1980 19327 82.4069 4494 65=09
i1 1.5880 0.3960 13805 73.4162 3282 75=09
i1 1.9850 0.1980 15562 82.4069 3786 42=09
i1 3.1760 0.3960 7530 73.4162 2130 7=09
i1 3.5730 0.1980 3012 82.4069 393 99=09
i1 4.7640 0.3960 20080 73.4162 4970 54=09
i1 5.1610 0.1980 12550 82.4069 2747 82=09
e
--=20
Jean-Michel DARREMONT
Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa04015;
14 Sep 99 23:24 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
id 11QzpA-00055i-00
for jpff@maths.bath.ac.uk; Tue, 14 Sep 1999 22:09:12 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (XAA06890); Tue, 14 Sep 1999 23:21:16 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Tue, 14 Sep 1999 23:21:04 +0100
Received: from smtp.mail.yahoo.com [128.11.68.32] by hermes via SMTP (XAA06832); Tue, 14 Sep 1999 23:21:03 +0100 (BST)
Received: from unknown (HELO dboothe) (38.227.100.199)
by smtp.mail.yahoo.com with SMTP; 14 Sep 1999 15:25:10 -0700
Message-ID: <000c01befeff$6af4db60$7c98e226@dboothe.lyrick.com>
From: David Boothe
To: jmdbrady@club-internet.fr, liste CSound
MMDF-Warning: Parse error in original version of preceding line at UK.AC.Bath.maths.omphalos
Subject: Re: oscil1i problem
Date: Tue, 14 Sep 1999 17:20:55 -0500
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 4.72.3110.5
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Jean-Michel -
Your table f2 is normalized. So this statement:
kfco oscil1i 0,ifco,idur,2
puts out a maximum freq value of 1 Hz!
However, this statement:
kfco expseg 100+.01*ifco, .2*idur, ifco+100,\\
.5*idur, ifco*.1+100,.3*idur, .001*ifco+100
has a 100 Hz offset built in. This gets the cutoff of the filter above the
fundamental of the buzz generator.
Hope this helps.
-David.
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa04787;
15 Sep 99 5:35 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
id 11R6nG-0002GK-00
for jpff@maths.bath.ac.uk; Wed, 15 Sep 1999 05:35:42 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (FAA00078); Wed, 15 Sep 1999 05:33:12 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 15 Sep 1999 05:33:01 +0100
Received: from 0@deuro-gw.deltanet.ro [194.195.227.151] by hermes via ESMTP (FAA01111); Wed, 15 Sep 1999 05:32:56 +0100 (BST)
Received: from marte.Deuroconsult.ro (0@ns2.Deuroconsult.ro [195.179.253.164])
by deuro-gw-2.deltanet.ro (8.9.1/8.9.1) with ESMTP id HAA00314
for ; Wed, 15 Sep 1999 07:43:28 GMT
Received: from ns.viromet.ro (root@ns.Viromet.ro [195.179.253.183])
by marte.Deuroconsult.ro (8.9.3/8.9.3) with ESMTP id HAA08745
for ; Wed, 15 Sep 1999 07:27:34 +0300
Received: from st3.viromet.ro (st3.viromet.ro [192.168.1.3])
by ns.viromet.ro (8.9.3/8.9.3) with SMTP id HAA09161
for ; Wed, 15 Sep 1999 07:43:55 +0300
Message-ID: <004101beff33$80225060$0301a8c0@viromet.ro>
From: Radu GRIGOROVICI
To: csound
Subject: Another Bass Drum
Date: Wed, 15 Sep 1999 07:33:45 +0300
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2014.211
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Sounds better, I think...
Have a nice day,
Radu Grigorovici
;ORC
sr=44100
kr=44100
ksmps=1
nchnls=2
instr 1; BASS DRUM coded by Radu Grigorovici
idur =p3
iamp =p4
kamp1 linseg p4/8, p3/16, 2*p4/3, 3*p3/16, 5*p4/6, p3/4, p4, p3/4, 5*p4/6,
3*p3/16, p4/2, p3/16, 0
kamp2 linseg 0, p3/16, p4/2, 3*p3/16, p4/4, p3/4, p4/8, p3/4, p4/16,
3*p3/16, p4/32, p3/16, 0
kfre linseg 4000, p3/32, 220, p3-p3/16, 55, 3*p3/32, 20
kcut expseg 1, p3, 0.1
a11 oscili kamp1, kfre, 1
a21 rand kamp2
a22 butterlp a21, 1000*kcut
a31 oscili kamp1, 35, 1
a32 =a31/8
a4 =a11+a22+a32
a5 balance a4, a11
outs a5, a5
endin
;SCO
f1 0 2048 10 1
t 0 130
i1 0 0.25 30000
i1 1 . .
i1 2 . .
i1 3 . .
i1 3.50 . .
i1 3.75 . .
Received: from shaun.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa04934;
15 Sep 99 7:21 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
by shaun.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
id 11R8R9-0002Hc-00
for jpff@maths.bath.ac.uk; Wed, 15 Sep 1999 07:20:59 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (HAA04069); Wed, 15 Sep 1999 07:18:23 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 15 Sep 1999 07:18:11 +0100
Received: from ella.mills.edu [144.91.3.20] by hermes via SMTP (HAA03744); Wed, 15 Sep 1999 07:18:10 +0100 (BST)
Received: (qmail 768605 invoked by uid 1964); 14 Sep 1999 23:17:52 -0700
Date: Tue, 14 Sep 1999 23:17:52 -0700 (PDT)
From: "Matt J. Ingalls"
To: JM&M DARREMONT
cc: csound@maths.ex.ac.uk
Subject: Re: problem with loscil
In-Reply-To: <37DD7D25.1462DE2D@club-internet.fr>
Message-ID:
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Content-Transfer-Encoding: QUOTED-PRINTABLE
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
losil entire file is loaded into ram. - which may or may not make a
noticeable difference dependening on file size/ram size/os..
in an ideal world i would like to have the difference between file/memory
completely transparent -- too tired at the moment to rant about
polymorphism, true object oriented design, ugen bloat, etc.. but you
already know what im going to say...
-matt
On Tue, 14 Sep 1999, JM&M DARREMONT wrote:
> Hi,
>=20
> Couldn't you replace loscil by diskin?
> Tell me if I'm wrong but I guess the only difference between the 2 are th=
at
> loscil allows loops.
>=20
>=20
> K.H a =E9crit:
> >=20
> > I'm sending the orc & sco, but i don't think it's a good idea to
> > send the samples!!
> >=20
> > Anyhow, the clicks are "one sample out of range", only. But we can
> > hear them alright. And they are only on the right channel!
> >=20
> > I tried it with some other samples, some do clicks some don't .
> > Mystery!
> > I tried to play them with other softwares (like Peak, soundapp, etc...=
)
> > with a positive result (no clicks!). Anyhow, i send the orc& scos, and
> > if someone wants to ttest with the samples i can compress them and send
> > them personally to him.
> > thanks
> >=20
> > karim
>=20
> --=20
> Jean-Michel DARREMONT
>=20
>=20
Received: from wallace.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa05138;
15 Sep 99 9:27 BST
Received: from [144.173.6.14] (helo=exeter.ac.uk)
by wallace.maths.bath.ac.uk with esmtp (Exim 2.12 #1)
id 11R9FW-0005OO-00
for jpff@maths.bath.ac.uk; Wed, 15 Sep 1999 08:13:02 +0100
Received: from noether [144.173.8.10] by hermes via SMTP (JAA09433); Wed, 15 Sep 1999 09:25:28 +0100 (BST)
Received: from exeter.ac.uk by maths.ex.ac.uk; Wed, 15 Sep 1999 09:25:16 +0100
Received: from front5m.grolier.fr [195.36.216.55] by hermes via ESMTP (JAA13217); Wed, 15 Sep 1999 09:25:15 +0100 (BST)
Received: from club-internet.fr (ppp-173-31.villette.club-internet.fr [195.36.173.31])
by front5m.grolier.fr (8.9.3/No_Relay+No_Spam_MGC990224) with ESMTP id KAA07749
for ; Wed, 15 Sep 1999 10:25:09 +0200 (MET DST)
Message-ID: <37DF5894.70AA6FAA@club-internet.fr>
Date: Wed, 15 Sep 1999 10:28:09 +0200
From: JM&M DARREMONT
Reply-To: jmdbrady@club-internet.fr
X-Mailer: Mozilla 4.06 (Macintosh; I; PPC)
MIME-Version: 1.0
To: liste CSound
Subject: Rezzy {was:Re: oscil1i problem}
References: <37DEBB89.6414A6DA@club-internet.fr>
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by exeter.ac.uk id JAA13217
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
The problem wasn't in oscil1i.
I tried moogvcf instead of rezzy and it works fine with the exact same
parameters. And it gives what I wanted.
I think rezzy is bugged.
JM&M DARREMONT a =E9crit:
> I've a problem that I guess very simple but wich I can't solve.
> A krate control remains at zero when using oscil1i and it works when us=
ing expseg.
> Here are orc&sco:
>=20
> ; Rezzy.orc
>=20
> sr=3D44100
> kr=3D44100
> ksmps=3D1
> nchnls=3D1
>=20
> instr 1
>=20
> idur=3Dp3
> iamp=3Dp4
> ifqc=3Dp5
> ifco=3Dp6
> irez=3Dp7
>=20
> kfco oscil1i 0,ifco,idur,2 ; THIS REMAINS AT ZERO FOR ANY TABLE
>=20
> ;kfco expseg 100+.01*ifco, .2*idur, ifco+100, .5*idur, ifco*.1+100,.3*i=
dur,
> 001*ifco+100; THIS WORKS
>=20
> printk 1, kfco
>=20
> kdclick linseg 0, .002, 1, idur-.004, 1, .002, 0
>=20
> ;rezzy
> ;;xres =96 amount of resonance. For rezzy, values of 1 to 100 are typ=
ical.
> Resonance should be one or greater.
>=20
> apulse1 buzz iamp,ifqc, sr/2/ifqc, 1 ; Avoid aliasing
>=20
> asaw integ apulse1
> axn =3D asaw-.5
> ayn rezzy apulse1, kfco, irez
>=20
> out ayn*kdclick
>=20
> endin
>=20
> ;Rezzy.sco
>=20
> f1 0 32768 10 1
> f2 0 1025 7 0.0000 102 0.5999 103 0.9117 =
102 1.0000 103 0.8087 102 0.6489 154 0.4639 204
0.3476 154 0.2999
> ;p1 p2 p3 p4 p5 p6 p7
> i1 0.0000 0.3960 7781 73.4162 2023 90
> i1 0.3970 0.1980 19327 82.4069 4494 65
> i1 1.5880 0.3960 13805 73.4162 3282 75
> i1 1.9850 0.1980 15562 82.4069 3786 42
> i1 3.1760 0.3960 7530 73.4162 2130 7
> i1 3.5730 0.1980 3012 82.4069 393 99
> i1 4.7640 0.3960 20080 73.4162 4970 54
> i1 5.1610 0.1980 12550 82.4069 2747 82
> e
--=20
Jean-Michel DARREMONT
|