| hi
I wrote a scorefile generator in tcl/tk. Main idea is that you can
place existing small orc/sco-pairs graphically in time and then
create an orc/sco. Also wav-files can be included, midis under
construction.
I developed the script under Linux and also under Win95, so it should
work under these platforms. Tcl/tk 8.1 is needed to run the script.
Under Win95, only Winsound can be used, under Linux normal Csound works
fine.
And the URL: http://www.sci.fi/~mjkoskin
-matti
mjkoskin@sci.fi
Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa04806;
8 Jul 98 18:30 BST
Received: from pat.bath.ac.uk by stork.maths.Bath.AC.UK id aa04188;
8 Jul 98 18:29 BST
Received: (qmail 18270 invoked from network); 8 Jul 1998 17:29:57 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
by pat.bath.ac.uk with SMTP; 8 Jul 1998 17:29:57 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (SAA21237); Wed, 8 Jul 1998 18:25:02 +0100 (BST)
Received: from hermes.ex.ac.uk by maths.ex.ac.uk; Wed, 8 Jul 98 18:24:03 +0100
Received: from root@tigger.scc.uni-weimar.de [141.54.1.3] by hermes via ESMTP (SAA20785); Wed, 8 Jul 1998 18:23:54 +0100 (BST)
Received: from irma.scc.uni-Weimar.DE (irma.scc.uni-weimar.de [141.54.25.9])
by tigger.scc.uni-weimar.de (8.8.7/8.8.7) with ESMTP id TAA28452
for ; Wed, 8 Jul 1998 19:10:47 +0200 (MET DST)
Received: by irma.scc.uni-Weimar.DE (8.8.5) id RAA11308; Wed, 8 Jul 1998 17:15:52 GMT
From: Torsten Anders
Message-Id: <9807082015.ZM11306@irma.scc.uni-Weimar.DE>
Date: Wed, 8 Jul 1998 20:15:51 -0600
X-Mailer: Z-Mail (3.2.3 08feb96 MediaMail)
To: csound@maths.ex.ac.uk
Subject: [csound] clear mark to identify
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Hello,
this is my first statement here. I was astonished and happy what a mass of
mails I got when I subscribed the csound mailing list. But I can not find my
private mails anymore. So I ask you to put a clear notice in the header to
identify mails of different mailinglists.
Thank you, Torsten Anders
Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa05192;
8 Jul 98 20:26 BST
Received: from pat.bath.ac.uk by stork.maths.Bath.AC.UK id aa10937;
8 Jul 98 20:26 BST
Received: (qmail 23105 invoked from network); 8 Jul 1998 19:26:13 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
by pat.bath.ac.uk with SMTP; 8 Jul 1998 19:26:13 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (UAA05612); Wed, 8 Jul 1998 20:22:20 +0100 (BST)
Received: from hermes.ex.ac.uk by maths.ex.ac.uk; Wed, 8 Jul 98 20:22:03 +0100
Received: from post-12.mail.demon.net [194.217.242.41] by hermes via SMTP (UAA20006); Wed, 8 Jul 1998 20:21:57 +0100 (BST)
Received: from (qsure.demon.co.uk) [158.152.110.121]
by post.mail.demon.net with smtp (Exim 1.82 #2)
id 0ytzmu-0006CT-00; Wed, 8 Jul 1998 19:21:57 +0000
Date: Wed, 08 Jul 1998 19:06:38 +0100
From: Ben Jefferys
To: Torsten.Anders@hfm.uni-weimar.de
Cc: csound@maths.ex.ac.uk
Subject: Re: [csound] clear mark to identify
Message-Id: <23308c6248%ben@qsure.demon.co.uk>
In-Reply-To: <9807082015.ZM11306@irma.scc.uni-Weimar.DE>
X-Mailer: Messenger v1.31 for RISC OS
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Posting-Agent: RISC OS Newsbase 0.60d
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
In message <9807082015.ZM11306@irma.scc.uni-Weimar.DE>
"Torsten Anders" wrote:
> this is my first statement here. I was astonished and happy what a mass of
> mails I got when I subscribed the csound mailing list. But I can not find my
> private mails anymore. So I ask you to put a clear notice in the header to
> identify mails of different mailinglists.
This is commonly done by the mailing list program itself, automatically,
on all mails going through the system. It *is* pretty handy. Does anyone
have any strong objections?
--
... ben jefferys ...
Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa05931;
8 Jul 98 23:05 BST
Received: from mercury.bath.ac.uk by stork.maths.Bath.AC.UK id aa19686;
8 Jul 98 23:05 BST
Received: (qmail 28611 invoked from network); 8 Jul 1998 22:05:01 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
by mercury.bath.ac.uk with SMTP; 8 Jul 1998 22:05:01 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (XAA09672); Wed, 8 Jul 1998 23:02:13 +0100 (BST)
Received: from hermes.ex.ac.uk by maths.ex.ac.uk; Wed, 8 Jul 98 23:01:57 +0100
Received: from kgallagh@tempest.ocis.temple.edu [155.247.166.120] by hermes via ESMTP (XAA02571); Wed, 8 Jul 1998 23:01:46 +0100 (BST)
Received: from localhost (kgallagh@localhost)
by tempest.ocis.temple.edu (8.8.8/8.8.8) with SMTP id SAA09321
for ; Wed, 8 Jul 1998 18:01:45 -0400 (EDT)
Date: Wed, 8 Jul 1998 18:01:45 -0400 (EDT)
From: Kevin Gallagher
To: Csound Discussion List
Subject: digesting
Message-Id:
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Along the same line as the "clear marks to identify" questions, I was
wondering (and maybe others were wondering) if there was a way to digest
the csound list messages as is common on other lists. I looked in the
original instructions from when I signed on, and I didn't see it. Thanks.
Kevin Gallagher, kgallagh@astro.temple.edu
Web Address - http://astro.temple.edu/~kgallagh
Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa06125;
8 Jul 98 23:47 BST
Received: from mercury.bath.ac.uk by stork.maths.Bath.AC.UK id aa22253;
8 Jul 98 23:47 BST
Received: (qmail 29706 invoked from network); 8 Jul 1998 22:47:43 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
by mercury.bath.ac.uk with SMTP; 8 Jul 1998 22:47:43 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (XAA09450); Wed, 8 Jul 1998 23:44:56 +0100 (BST)
Received: from hermes.ex.ac.uk by maths.ex.ac.uk; Wed, 8 Jul 98 23:44:39 +0100
Received: from terminus.ayched.com [205.147.7.170] by hermes via ESMTP (XAA13779); Wed, 8 Jul 1998 23:44:31 +0100 (BST)
Received: from terminus.ayched.com (localhost [127.0.0.1])
by terminus.ayched.com (8.8.7/8.8.7) with ESMTP id PAA21257;
Mon, 7 Sep 1998 15:42:59 -0700
Message-Id: <199809072242.PAA21257@terminus.ayched.com>
X-Mailer: exmh version 2.0.2
To: csound@maths.ex.ac.uk
Cc: Richard Dobson ,
Jim Stevenson
Subject: Making Csound re-entrant (was Re: compiler)
In-Reply-To: Your message of "Fri, 03 Jul 1998 20:16:24 BST."
<359D2E07.98F1527E@cableinet.co.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Date: Mon, 07 Sep 1998 15:42:59 -0700
From: Ed Hall
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Richard Dobson wrote:
> Well, making Csound re-entrant will benefit all platforms. COM is indeed a
> Microsoft invention (though they do have a version for the Mac, and are trying
> to extend it to unix through DCOM - Idon't know how realistic this is, or how
> much take-up there is), so the particular ideas Michael Gogins and I have been
> exploring are indeed specific to that platform. I do think that once the
> re-entrancy has been achieved, developers on all platforms will jump at the
> opportunity to create all manner of powerful facilities.
I think re-entrancy should be the first goal. One this is achieved, all
sorts of server functionality can be achieved on many if not all of
Csound's platforms. Focusing on COM or on any other specific API at this
point will fragment the efforts of Csound developers...
Looking at the code for Csound, I'm struck by its two-pass nature: a parser
builds instrument files into complicated data structures representing the
instruments, while another parser turns score files into a chain of data
structures representing "notes." The result of these two parsings is then
fed to a "virtual machine" that does the actual calls, via function pointers,
to the various units, based on the chain of note events (and optionally,
additional events generated via MIDI or other real-time sources).
Reflecting on this, I think that one avenue for development is to make
the virtual-machine nature of "pass two" more explicit. This is in line
with the suggestion that several on this list have made to look into
sound-modeling methods like those proposed for MPEG-4. Taking a page from
compiler technology, the output of *.orc and *.sco parsing could be made
into an explicitly-defined intermediate language that the Csound "virtual
machine" interprets. I know that this might sound wild to some folks,
but in essence this is pretty close to what is already happening inside
Csound. Allowing streams of this internal language to coexist with streams
of sound data, plus the ability to make the Csound "engine" re-entrant,
would move Csound well along the road to scalable distributed processing,
among other possibilities. Want to produce 200 simultaneous voices in
real-time? Just add on a few cheap Pentium (or Alpha!) boxes with network
cards, and it will be so...
> A properly developed Windows application is supposed to provide keyboard
> alternative for all mouse commands, and such things as menu controls are almost
> automatic, using Visual C++. I like keyboard control myself, so I do not neglect
> this feature in my own work!
And they say that the command-line is dead... Not to make too fine a point,
but I'm amused at how Windows power-users (like Mac power-users) use single-
key commands that make the two-letter commands of early Unix seem downright
verbose! But this is really another thread entirely...
>
> Richard Dobson
>
> Jim Stevenson wrote:
> >
> > Oh arg!
> >
> > Please don't limit such promising development tools to M$,
> > and please do include commands to do * ALL * the mouse functions.
It's not a MS vs. anti-MS thing. The effort to make software truly
multi-platform can also make it better software in the long run. Those
of us who have been following Microsoft for a while are well-aware that
use of one of their technical standards--especially one of those on the
leading edge--is no guarantee against early obsolescence.
-Ed
Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa06170;
8 Jul 98 23:58 BST
Received: from pat.bath.ac.uk by stork.maths.Bath.AC.UK id aa22898;
8 Jul 98 23:58 BST
Received: (qmail 29513 invoked from network); 8 Jul 1998 22:58:36 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
by pat.bath.ac.uk with SMTP; 8 Jul 1998 22:58:36 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (XAA03135); Wed, 8 Jul 1998 23:56:14 +0100 (BST)
Received: from hermes.ex.ac.uk by maths.ex.ac.uk; Wed, 8 Jul 98 23:55:57 +0100
Received: from tomei.algonet.se [194.213.74.114] by hermes via SMTP (XAA08820); Wed, 8 Jul 1998 23:55:50 +0100 (BST)
Received: (qmail 19873 invoked from network); 9 Jul 1998 00:55:49 +0200
Received: from du95-92.ppp.algonet.se (HELO algonet.se) (195.100.92.95)
by tomei.algonet.se with SMTP; 9 Jul 1998 00:55:49 +0200
From: Anders Andersson
Reply-To: pipe@algonet.se
To: Torsten.Anders@hfm.uni-weimar.de
Cc: csound@maths.ex.ac.uk
Date: Thu, 09 Jul 1998 00:55:43 +0100
Message-Id:
In-Reply-To: <23308c6248%ben@qsure.demon.co.uk>
X-Mailer: YAM 1.3.5 [020] - Amiga Mailer by Marcel Beck
Organization: Nature
Subject: Re: [csound] clear mark to identify
Mime-Version: 1.0
Content-Type: text/plain
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
>This is commonly done by the mailing list program itself, automatically,
>on all mails going through the system. It *is* pretty handy. Does anyone
>have any strong objections?
Well.. me myself sort it using the "to:" field..
It's been working all the time i've been on this list..
.--- -- - -
| Anders "Pipe/Nature" Andersson, pipe@algonet.se
:
Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa06247;
9 Jul 98 0:15 BST
Received: from mercury.bath.ac.uk by stork.maths.Bath.AC.UK id aa24197;
9 Jul 98 0:15 BST
Received: (qmail 638 invoked from network); 8 Jul 1998 23:15:00 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
by mercury.bath.ac.uk with SMTP; 8 Jul 1998 23:15:00 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (AAA12448); Thu, 9 Jul 1998 00:12:26 +0100 (BST)
Received: from hermes.ex.ac.uk by maths.ex.ac.uk; Thu, 9 Jul 98 00:12:09 +0100
Received: from camel7.mindspring.com [207.69.200.57] by hermes via ESMTP (AAA21591); Thu, 9 Jul 1998 00:12:02 +0100 (BST)
Received: from axe (user-38ld0fm.dialup.mindspring.com [209.86.129.246])
by camel7.mindspring.com (8.8.5/8.8.5) with SMTP id TAA29820;
Wed, 8 Jul 1998 19:12:00 -0400 (EDT)
Message-Id: <002501bdaac7$2d2bc920$f68156d1@axe>
From: Michael Gogins
To: csound@maths.ex.ac.uk, Ed Hall
MMDF-Warning: Parse error in original version of preceding line at UK.AC.Bath.maths.stork
Cc: Richard Dobson ,
Jim Stevenson
Subject: Re: Making Csound re-entrant (was Re: compiler)
Date: Wed, 8 Jul 1998 19:21:44 -0400
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.2106.4
X-Mimeole: Produced By Microsoft MimeOLE V4.72.2106.4
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Apropos the following, let me emphatically agree that re-entrancy should be
the first goal. Basically, I would like to have a C++ class that is Csound
and has a re-entrant Play() function. If I had that, I would go ahead and do
the COM stuff myself in a trice.
Shortly, I will propose such a class for Csound. I will attempt to put in
hooks for the DirectShow stuff that we have been talking about - places
where all of the significant inputs and outputs of the program, whether file
or real-time, can be accessed, hopefully in a synchronized way. I think this
is a minimal foundation for what we have been talking about. I'll solicit
feedback on the design of this class. All work that I do in public like this
will fall under the terms of the GNU Public Library License.
Once this class has been defined, perhaps we can go ahead and actually
install Csound in it and try to make it really re-entrant.
In all work of this sort, it's most extremely advisable to keep things as
simple as possible.
Does anyone reading this list have experience with SAOLC? How capable is it
compared with Csound? I'm not as interested in how easy it is to do
something as I am in whether it is possible at all.
>Richard Dobson wrote:
>> Well, making Csound re-entrant will benefit all platforms. COM is indeed
a
>> Microsoft invention (though they do have a version for the Mac, and are
trying
>> to extend it to unix through DCOM - Idon't know how realistic this is, or
how
>> much take-up there is), so the particular ideas Michael Gogins and I have
been
>> exploring are indeed specific to that platform. I do think that once the
>> re-entrancy has been achieved, developers on all platforms will jump at
the
>> opportunity to create all manner of powerful facilities.
>
>I think re-entrancy should be the first goal. One this is achieved, all
>sorts of server functionality can be achieved on many if not all of
>Csound's platforms. Focusing on COM or on any other specific API at this
>point will fragment the efforts of Csound developers...
>
>Looking at the code for Csound, I'm struck by its two-pass nature: a parser
>builds instrument files into complicated data structures representing the
>instruments, while another parser turns score files into a chain of data
>structures representing "notes." The result of these two parsings is then
>fed to a "virtual machine" that does the actual calls, via function
pointers,
>to the various units, based on the chain of note events (and optionally,
>additional events generated via MIDI or other real-time sources).
Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa08266;
9 Jul 98 8:12 BST
Received: from pat.bath.ac.uk by stork.maths.Bath.AC.UK id aa22758;
9 Jul 98 8:12 BST
Received: (qmail 11071 invoked from network); 9 Jul 1998 07:12:22 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
by pat.bath.ac.uk with SMTP; 9 Jul 1998 07:12:22 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (IAA27216); Thu, 9 Jul 1998 08:06:59 +0100 (BST)
Received: from hermes.ex.ac.uk by maths.ex.ac.uk; Thu, 9 Jul 98 08:06:40 +0100
Received: from servidor.unam.mx [132.248.10.5] (may be forged) by hermes via ESMTP (IAA23525); Thu, 9 Jul 1998 08:06:32 +0100 (BST)
Received: from localhost (hpsilva@localhost)
by servidor.unam.mx (8.8.8/8.8.8) with SMTP id CAA15358
for ; Thu, 9 Jul 1998 02:07:02 -0600 (CST)
Date: Thu, 9 Jul 1998 02:07:02 -0600 (CST)
From: "Pablo Silva-Escuela Nacional de Musica, UNAM"
To: csound@maths.ex.ac.uk
Subject: About randomness in Csound, and a suggestion...
Message-Id:
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Hello Csounders:
I've been experimenting a bit with the grain opcode, doing some low
density synchronous granulations of soundfiles, and I have noticed that
since I cannnot seed the pseudo-random number generator, my results
(rather rythmic flashes of sound) always repeat the same
granulation pattern... Can anyone suggest a workaround, short of
calculating extra sound time and cutting/pasting with a sound editor?
A suggestion to the Csound gurus: I don't know the first thing about the
inner workings of the source code for Csound, yet from what I see on the
list it seems to me that lots of us are using pseudo-random number
generators for a variety of uses, some embedded into the opcodes (grain,
etc) or as signal generators, and having some problems like mine of their
actually not giving random enough results. Maybe a solution would be
standarizing the way the opcodes deal with generating pseudo-random
numbers (always providing a parameter handle for seeding) or better,
having these opcodes in their inner workings refer to common, more
reliable (a strange word to use about this!) generation routines, like
the ones already incorporated in the opcode list?
Pablo Silva
Coordinador
LIMME, Escuela Nacional de Musica
Mexico, D.F.
hpsilva@servidor.unam.mx
Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa09038;
9 Jul 98 10:48 BST
Received: from pat.bath.ac.uk by stork.maths.Bath.AC.UK id aa02326;
9 Jul 98 10:48 BST
Received: (qmail 20086 invoked from network); 9 Jul 1998 09:48:05 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
by pat.bath.ac.uk with SMTP; 9 Jul 1998 09:48:05 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (KAA11438); Thu, 9 Jul 1998 10:43:21 +0100 (BST)
Received: from hermes.ex.ac.uk by maths.ex.ac.uk; Thu, 9 Jul 98 10:42:40 +0100
Received: from avid.avid.com [152.165.6.40] by hermes via ESMTP (KAA05896); Thu, 9 Jul 1998 10:42:31 +0100 (BST)
Received: from qsure.demon.co.uk (unknown2.charlotte.avid.com) by avid.avid.com with ESMTP
(1.37.109.20/16.2) id AA255437307; Thu, 9 Jul 1998 05:41:47 -0400
Message-Id: <35A49119.EA15CE53@qsure.demon.co.uk>
Date: Thu, 09 Jul 1998 10:44:57 +0100
From: Ben Jefferys
Reply-To: ben@qsure.demon.co.uk
Organization: Avid Technology Europe Ltd.
X-Mailer: Mozilla 4.05 [en] (WinNT; I)
Mime-Version: 1.0
To: pipe@algonet.se
Cc: Torsten.Anders@hfm.uni-weimar.de, csound@maths.ex.ac.uk
Subject: Re: [csound] clear mark to identify
References:
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Anders Andersson wrote:
>
> >This is commonly done by the mailing list program itself, automatically,
> >on all mails going through the system. It *is* pretty handy. Does anyone
> >have any strong objections?
>
> Well.. me myself sort it using the "to:" field..
> It's been working all the time i've been on this list..
Of course, there are many ways to sort it using a mail reader, but
in certain situations (eg. me at work) I don't sort mail at all, just
browse. Also when using web-based mail checking it is simple to see
your personal mail, contrasting with everything from lists.
Bye!
Ben.
Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa09044;
9 Jul 98 10:48 BST
Received: from pat.bath.ac.uk by stork.maths.Bath.AC.UK id aa02331;
9 Jul 98 10:48 BST
Received: (qmail 20089 invoked from network); 9 Jul 1998 09:48:06 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
by pat.bath.ac.uk with SMTP; 9 Jul 1998 09:48:06 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (KAA03519); Thu, 9 Jul 1998 10:43:21 +0100 (BST)
Received: from hermes.ex.ac.uk by maths.ex.ac.uk; Thu, 9 Jul 98 10:42:32 +0100
Received: from first1.lnk.telstra.net [139.130.48.118] by hermes via ESMTP (KAA22808); Thu, 9 Jul 1998 10:42:20 +0100 (BST)
Received: from wira (wira.firstpr.com.au [203.36.57.201])
by gair.firstpr.com.au (8.8.7/8.8.7) with SMTP id UAA01001;
Thu, 9 Jul 1998 20:38:39 +1000
Message-Id: <199807091038.UAA01001@gair.firstpr.com.au>
Comments: Authenticated sender is
From: Robin Whittle
Organization: First Principles
To: Csound list
Date: Thu, 9 Jul 1998 19:39:01 +1000
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7BIT
Subject: Re: About randomness in Csound, and a suggestion...
Reply-To: rw@firstpr.com.au
Cc: "Pablo Silva-Escuela Nacional de Musica, UNAM"
Priority: normal
In-Reply-To:
X-Mailer: Pegasus Mail for Win32 (v2.53/R1)
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Pablo Silva-Escuela discussed the problem of the grain opcode running
from a pseudo random number generator which he could not change the
seed of.
Take a look at what I wrote about the various pseudo-random number
systems in Csound at the end of:
http://www.firstpr.com.au/csound/
In recent versions of Csound, the "x-class noise" opcodes and the
grain opcode all call an external "rand()" function which is provided
by the C library which Csound is compiled with. This could be a
simple 16 bit PRNG (Pseudo Random Number Generator) or it could be a
good 31 bit one. A 16 bit PRNG isn't much good, since its output
recycles every 65,536 numbers.
There is an init-time opcode already in Csound which enables you to
seed this external PRNG - simply:
seed 12345
where 12356 is the number you want to seed with. The integer
component of this passed to the C libary's seedrand function. If it
a 16 bit PRNG, then I guess that numbers up to 65535 would make
sense. If it is a 31 bit PRNG, then numbers up to about 2 billion
should do. This opcode prints out three decimal places of the seed
number, but they are irrelevant.
If the value you give to seed (which must be an init time, such as
an fixed number - not a k-rate variable) is 0, then the current date
and time is used to seed the C library's PRNG. Note that the output
of this PRNG could also be affected by other programs running on the
computer, which could be seeding the PRNG and taking numbers from it
- either of which would affect the numbers being returned to the
various points in Csound which call rand() to get pseudo random
numbers.
Searching through the source code, I find that the following opcodes
use rand():
All the "x-class noise" opcodes (but see my web site for how I
changed all these to work from a good 31 bit internal seedable
Park - Miller PRNG.
marimba (in modal4.c)
Also some or all of the physical modelling opcodes, since rand() is
called by the NoiseTick() function in physutil.c.
shaker in shaker.c
sndwarp in sndwarp.c
grain (in grain.c)
This "seed" opcode has been in Csound since 1994, but is not in the
manual - so you can use it to set the C library's PRNG.
If the C library rand() function with which your sound executable was
linked with only provides a 16 bit PRNG, then this may well be too
repetitiver for granular synthesis.
Pablo wrote:
> I've been experimenting a bit with the grain opcode, doing some low
> density synchronous granulations of soundfiles, and I have noticed that
> since I cannnot seed the pseudo-random number generator, my results
> (rather rythmic flashes of sound) always repeat the same
> granulation pattern... Can anyone suggest a workaround, short of
> calculating extra sound time and cutting/pasting with a sound editor?
I wouldn't expect this to happen unless the PRNG is set to the same
state every time you run Csound. Without knowing the details of the
C library with which your Csound is linked with, I can't say any more
- except that I agree that all pseudorandom data in Csound would
ideally (to my thinking) come from a single internal PRNG which can
be seeded with a fixed number or with the time of day. As you can
see, I have done this for the "x-class noise" opcodes in my recent
changes to cmath.c as noted at my web site, but you will need to be
able to compile Csound yourself, or use my Linux executable, to use
these.
BTW, I hadn't thought of this, but these changes affect gen 21 as
well.
> A suggestion to the Csound gurus: I don't know the first thing about the
> inner workings of the source code for Csound, yet from what I see on the
> list it seems to me that lots of us are using pseudo-random number
> generators for a variety of uses, some embedded into the opcodes (grain,
> etc) or as signal generators, and having some problems like mine of their
> actually not giving random enough results. Maybe a solution would be
> standarizing the way the opcodes deal with generating pseudo-random
> numbers (always providing a parameter handle for seeding) or better,
> having these opcodes in their inner workings refer to common, more
> reliable (a strange word to use about this!) generation routines, like
> the ones already incorporated in the opcode list?
Yes, but the ones in the opcode list are of three varieties. Firstly
there are the x-class noise ones that use the external C library's
rand() function. Then there:
rand, randh and randi
These are self-contained 16 bit PRNGs which can have their
seed set as an option. Each instance maintains its own
state. These are the oldest set of random number generators
in Csound.
The recently added irnd, ibirnd, krnd and kbirnd code in aops.c.
These are effectively a single,
self-contained PRNG, since the two functions rnd1( ) and
birnd1 ( ) both have the same algorithm and share the same
state - a double precision ( ie. 64 bit) floating point
number . The seed (rndfrac) is always set (to 0.5) at the
start of Csound running, so these ugens would always produce
the same sequence of numbers. There is no option for setting
the seed. The algorithm a simple floating PRNG and I don't
know anything about the quality of noise it produces.
So it is all rather messy.
I don't see the need for "irnd, ibirnd, krnd and kbirnd" - provided
that the x-class noise ugens use a common, good, seedable PRNG (which
my recent changes provide, together with a bipolar (ie -1 to +1)
uniform source, then I don't think these new ugens are needed.
rand, randh and randi
Each instance of these has its own seedable PRNG. Perhaps there are
some reasons for keeping this. It enables some musical parameters to
be "randomly" deterimined from a seed, while others are determined
from another seed. That way you could keep one set of "random"
things that you like, and change others independently.
If I was doing this from scratch, I would have a single 31 bit
internal, seedable PRNG, and make every pseudo random element of
Csound call this.
- Robin
===============================================================
Robin Whittle rw@firstpr.com.au http://www.firstpr.com.au
Heidelberg Heights, Melbourne, Australia
First Principles Research and expression: music, Internet
music marketing, telecommunications, human
factors in technology adoption. Consumer
advocacy in telecommunications, especially
privacy. Consulting and technical writing.
Real World Electronics and software for music: eg.
Interfaces the Devil Fish mods for the TB-303.
===============================================================
Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa09203;
9 Jul 98 11:21 BST
Received: from mercury.bath.ac.uk by stork.maths.Bath.AC.UK id aa04467;
9 Jul 98 11:21 BST
Received: (qmail 29514 invoked from network); 9 Jul 1998 10:21:30 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
by mercury.bath.ac.uk with SMTP; 9 Jul 1998 10:21:30 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (LAA08806); Thu, 9 Jul 1998 11:18:12 +0100 (BST)
Received: from hermes.ex.ac.uk by maths.ex.ac.uk; Thu, 9 Jul 98 11:17:49 +0100
Received: from magenta13.nada.kth.se [130.237.226.63] by hermes via ESMTP (LAA01302); Thu, 9 Jul 1998 11:17:42 +0100 (BST)
Received: (from d93-jbu@localhost)
by magenta13.nada.kth.se (8.8.7/8.8.7) id MAA03081;
Thu, 9 Jul 1998 12:17:43 +0200 (MET DST)
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Date: Thu, 9 Jul 1998 12:17:43 +0200 (MET DST)
From: =?iso-8859-1?Q?Jonas_B=FClow?=
To: csound@maths.ex.ac.uk
Subject: digesting
In-Reply-To:
References:
X-Mailer: VM 6.43 under 20.4 "Emerald" XEmacs Lucid
Message-Id: <13732.39047.497562.627512@magenta13.nada.kth.se>
Reply-To: =?iso-8859-1?Q?Jonas_B=FClow?=
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Why not use a mail client that sort your mail into folders?
Kevin Gallagher writes:
> Along the same line as the "clear marks to identify" questions, I was
> wondering (and maybe others were wondering) if there was a way to digest
> the csound list messages as is common on other lists. I looked in the
> original instructions from when I signed on, and I didn't see it. Thanks.
Received: from stork.maths.bath.ac.uk by omphalos.maths.Bath.AC.UK id aa09245;
9 Jul 98 11:32 BST
Received: from pat.bath.ac.uk by stork.maths.Bath.AC.UK id aa04996;
9 Jul 98 11:32 BST
Received: (qmail 23367 invoked from network); 9 Jul 1998 10:32:11 -0000
Received: from hermes.ex.ac.uk (HELO exeter.ac.uk) (144.173.6.14)
by pat.bath.ac.uk with SMTP; 9 Jul 1998 10:32:11 -0000
Received: from noether [144.173.8.10] by hermes via SMTP (LAA16160); Thu, 9 Jul 1998 11:28:43 +0100 (BST)
Received: from hermes.ex.ac.uk by maths.ex.ac.uk; Thu, 9 Jul 98 11:28:20 +0100
Received: from avid.avid.com [152.165.6.40] by hermes via ESMTP (LAA27622); Thu, 9 Jul 1998 11:28:12 +0100 (BST)
Received: from qsure.demon.co.uk (unknown2.charlotte.avid.com) by avid.avid.com with ESMTP
(1.37.109.20/16.2) id AA273810097; Thu, 9 Jul 1998 06:28:17 -0400
Message-Id: <35A49BFF.BCCE045C@qsure.demon.co.uk>
Date: Thu, 09 Jul 1998 11:31:27 +0100
From: Ben Jefferys
Reply-To: ben@qsure.demon.co.uk
Organization: Avid Technology Europe Ltd.
X-Mailer: Mozilla 4.05 [en] (WinNT; I)
Mime-Version: 1.0
To: csound@maths.ex.ac.uk
Subject: Re: digesting
References: <13732.39047.497562.627512@magenta13.nada.kth.se>
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 LAA27622
Sender: owner-csound-outgoing@maths.ex.ac.uk
Precedence: bulk
Jonas B=FClow wrote:
>=20
> Why not use a mail client that sort your mail into folders?
Although I have never used a digest, it is something along the lines
of: all the mail to the list is sent to you in one go at the end
of the week/month/year/whatever. This is for people who just want
to dip into the list, and not be constantly bombarded with mail.
This is an optional thing, there are usually two subscribe commands,
one for normal and one for digest subscription. It is a utility
feature and does not affect anyone who doesn't use it.
Bye!
Ben.
|