nyquist-users Mailing List for Nyquist (Page 4)
Nyquist is a language for sound synthesis and music composition.
Brought to you by:
rbd
You can subscribe to this list here.
| 2005 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
(4) |
Jul
|
Aug
(3) |
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2008 |
Jan
(12) |
Feb
(1) |
Mar
(1) |
Apr
(9) |
May
|
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
(2) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2010 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(21) |
Nov
(6) |
Dec
(9) |
| 2011 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Evan L. <Ev...@Co...> - 2006-01-09 06:50:05
|
On Sun, 2006-01-08 at 12:50 -0500, Roger Dannenberg wrote: > Nyquist does not have any way to take advantage of multiple CPU's other than > that audio output and file I/O might be handled on a separate processor > automatically by the OS. Well, my only machine that has more than 1 CPU is a Sparc running a Linux 2.6 kernel. File IO is handed off to the SCSI controller, and there isn't much else that can be done. > In some ways, Nyquist is ideal for multiple CPU's because of its mainly > functional language approach with minimal side-effects and shared state. All > this exposes parallelism, e.g. every time you write (SIM (A) (B) ...) you > are essentially saying that (A) and (B) and ... can run in parallel. Yes, and this is the basis for many languages that support automatic parallelization (sp?), but I'm afraid my LISP is more than a little rusty, so I'm not aware if there is a version of LISP that supports such a thing. > Unfortunately, the lazy evaluation implementation and the hooks that (A) and > (B) have into the shared Lisp heap and garbage collection would make a > parallel implementation quite hairy (at least for me -- although Nyquist has > settled down after a lot of use, I'm still finding obscure and rare little > bugs in the single-threaded implementation!). Understandable. > The rationale for multiple processors would be speed. There may be other Well, there are some cases when 2 CPUs are faster than 1 CPU that is twice as fast, and vice versa. I'm thinking speed isn't necessarily a concern as much as latency. While there are always thing here and there that can be tweaked, parallel tasking combined with proper locking could allow playback to start earlier while another task was still calculating the rest of the sample. > ways to speed up Nyquist. In particular, Nyquist control-rate signals can be > interpolated with inline code at the expense of a larger executable. At one > time, in-line interpolation was used everywhere, but I think I turned it off > because certain unit generators were getting huge. Probably, some > performance instrumentation could expose some areas for optimization. I haven't had a chance to look into the code any, as I've abandoned my computers this weekend in favor of refinishing my studio monitors. They look so much better now. Next weekend I do the grill covers :) I do like the idea of nyquist though, and I really will get around to playing with it more! As you can see, its a nice combination of my two main hobbies :) |
|
From: Roger D. <rb...@cs...> - 2006-01-08 17:50:49
|
Nyquist does not have any way to take advantage of multiple CPU's other than that audio output and file I/O might be handled on a separate processor automatically by the OS. In some ways, Nyquist is ideal for multiple CPU's because of its mainly functional language approach with minimal side-effects and shared state. All this exposes parallelism, e.g. every time you write (SIM (A) (B) ...) you are essentially saying that (A) and (B) and ... can run in parallel. Unfortunately, the lazy evaluation implementation and the hooks that (A) and (B) have into the shared Lisp heap and garbage collection would make a parallel implementation quite hairy (at least for me -- although Nyquist has settled down after a lot of use, I'm still finding obscure and rare little bugs in the single-threaded implementation!). The rationale for multiple processors would be speed. There may be other ways to speed up Nyquist. In particular, Nyquist control-rate signals can be interpolated with inline code at the expense of a larger executable. At one time, in-line interpolation was used everywhere, but I think I turned it off because certain unit generators were getting huge. Probably, some performance instrumentation could expose some areas for optimization. -Roger |
|
From: Evan L. <Ev...@Co...> - 2006-01-07 05:15:14
|
Its been awhile since I've checked out Nyquist ... but its nice to see that its still updated. I did have 1 question. Does nyquist have any sort of threading that would allow it to take advantage of multiple CPUs in an SMP system? -- Evan |
|
From: Roger D. <rb...@cs...> - 2006-01-04 17:14:34
|
I've just released a new version of Nyquist. This release incorporates many new items, including expanded support for algorithmic composition, LPC analysis and synthesis, a MiniMoog emulator, improvements to the IDE, many minor bug fixes, simplified Mac OS X installation, some spatialization and surround sound functions, and more. I would especially appreciate any early feedback on bugs or installation problems. The URL remains the same: http://www.cs.cmu.edu/~music/nyquist. I'm sending this to the audacity-nyquist list just for your information. This version is decoupled from Audacity, so the latest changes are only available by downloading and running Nyquist directly without Audacity. I assume the new stuff will work its way into future versions of Audacity. -Roger |
|
From: G.W.Logemann <log...@co...> - 2005-12-28 16:05:07
|
Hi -- Doing end-of-year vleanup, found your note re this list -- pleas put me = on it! Sourceforge looks interesting, will exlore further. Thanks, ans Happy New Year, George |
|
From: Evan L. <Ev...@Co...> - 2005-09-18 15:31:11
|
> > nyquist my-script.lsp < some-newlines.txt > > If my-script.lsp calls (EXIT), Nyquist will continue reading > from some-newlines.txt, which will cause Nyquist to exit. If all you need to do is make it wait for a keypress when exiting, then you could make a nyq-run.bat file or something like that which would would take any parameters, pass them to nyquist, and then wait for a keypress. I think the command is "WAIT", but I don't remember as I don't use Windows except when forced, but I have done batch files that do exactly that before for a client. -- Evan |
|
From: Roger D. <rb...@cs...> - 2005-09-18 15:05:58
|
Bruce Sharpe writes: >>>>>>>> I want to create a Nyquist script that can be run unattended from a command line. If I put (exit) as the last statement of my script, it doesn't seem to exit until I press the Enter key. <<<<<<<< I've often had problems with command line programs under Windows because, when debugging, the program will often Edit without giving me a chance to look at the output. One work-around is to give Nyquist some newlines as standard input, e.g.: > nyquist my-script.lsp < some-newlines.txt If my-script.lsp calls (EXIT), Nyquist will continue reading from some-newlines.txt, which will cause Nyquist to exit. -Roger |
|
From: Bruce S. <bru...@gm...> - 2005-09-08 01:19:55
|
I want to create a Nyquist script that can be run unattended from a command= =20 line. If I put (exit) as the last statement of my script, it doesn't seem t= o=20 exit until I press the Enter key. Is there a better way to automatically exit? Bruce |
|
From: Bruce S. <bru...@gm...> - 2005-08-15 15:17:53
|
Hi Roger, Thanks for the info. I will probably try capturing the output as you=20 suggest. You might be interested in the project I am working on: http://www.singprod.com/podcast_tools/SoundmixFrameworkReadMe.htm The audience for it so far is mainly my fellow audio engineers working on= =20 IT Conversations podcasts, but once it has matured a bit I plan to=20 distribute it more widely. If you have any comments on our Nyquist code, I'd be delighted to hear=20 them! Bruce On 8/14/05, nyq...@li... < nyq...@li...> wrote:=20 >=20 > Send Nyquist-users mailing list submissions to > nyq...@li... >=20 > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/nyquist-users > or, via email, send a message with subject or body 'help' to > nyq...@li... >=20 > You can reach the person managing the list at > nyq...@li... >=20 > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Nyquist-users digest..." >=20 >=20 > Today's Topics: >=20 > 1. RE: Nyquist-users digest, Vol 1 #6 - 1 msg (Roger B. Dannenberg) >=20 > --__--__-- >=20 > Message: 1 > Reply-To: <rb...@cs...> > From: "Roger B. Dannenberg" <rb...@cs...> > To: <nyq...@li...> > Date: Sun, 14 Aug 2005 13:20:06 -0400 > Subject: [Nyquist-users] RE: Nyquist-users digest, Vol 1 #6 - 1 msg >=20 > Bruce, > The sample counts that are printed by S-SAVE cannot be switched off > or changed without modifying the source code and recompiling. Generally, > S-SAVE does not know how many samples it is going to compute, so it =3D > would be > hard to make a progress bar even if you could keep track of how many =3D > samples > were computed. > The Nyquist IDE's work by running Nyquist as a sub-process and =3D > reading > the standard output from Nyquist. In some cases, the standard output is > parsed (e.g. that's how plot is implemented), so in principle, you could = =3D > do > the same thing to suppress the output of S-SAVE and perhaps map it into = =3D > a > progress display or hour-glass/"I'm thinking" display. > I would not be opposed to adding some support in this area if you > need it to accomplish something. >=20 > -Roger >=20 >=20 >=20 >=20 >=20 >=20 > --__--__-- >=20 > _______________________________________________ > Nyquist-users mailing list > Nyq...@li... > https://lists.sourceforge.net/lists/listinfo/nyquist-users >=20 >=20 > End of Nyquist-users Digest > |
|
From: Roger B. D. <rb...@cs...> - 2005-08-14 17:21:04
|
Bruce,
The sample counts that are printed by S-SAVE cannot be switched off
or changed without modifying the source code and recompiling. Generally,
S-SAVE does not know how many samples it is going to compute, so it =
would be
hard to make a progress bar even if you could keep track of how many =
samples
were computed.
The Nyquist IDE's work by running Nyquist as a sub-process and =
reading
the standard output from Nyquist. In some cases, the standard output is
parsed (e.g. that's how plot is implemented), so in principle, you could =
do
the same thing to suppress the output of S-SAVE and perhaps map it into =
a
progress display or hour-glass/"I'm thinking" display.
I would not be opposed to adding some support in this area if you
need it to accomplish something.
-Roger
|
|
From: Bruce S. <bru...@gm...> - 2005-08-13 17:23:55
|
I am pretty new to Nyquist, being attracted to it after using Audacity for podcast audio engineering. A question: When I use s-save there is a long list of sample counts or something that gets printed to the console. Is it possible to control that? In particular, can I intercept that output and create my own progress bar? Thanks, Bruce |
|
From: Ian Smith-H. <hei...@0x...> - 2005-06-13 19:48:15
|
Hmm.. I tried changing system.lsp so that instead of (system ("play "
filename) it used aplay, but that didn't fix anything. Is this what
you're talking about?
-Ian
ev...@co... wrote:
> Quoting Ian Smith-Heisters <hei...@0x...>:
>
>> Has anyone gotten Linux Nyquist running using ALSA or Jack? If not, does
>> anyone know what it would take to get that working? I've run nyquist
>> under aoss, but the audio can be clicky.
>
>
> I know it should be possible to make it work directly via configure
> options, but
> it doesn't do it for me.
>
> I was able to get it to play by editing one of the initial config files
> so that
> playing is sounds is done via an external program, and I put aplay in
> there.
> Its been awhile though - I've been too busy with other things to play with
> nyquist.
>
> -- Evan
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: NEC IT Guy Games. How far can you
> shotput
> a projector? How fast can you ride your desk chair down the office luge
> track?
> If you want to score the big prize, get to know the little guy. Play to
> win an NEC 61" plasma display: http://www.necitguy.com/?r=20
> _______________________________________________
> Nyquist-users mailing list
> Nyq...@li...
> https://lists.sourceforge.net/lists/listinfo/nyquist-users
--
http://www.0x09.com
|
|
From: <ev...@co...> - 2005-06-13 19:03:40
|
Quoting Ian Smith-Heisters <hei...@0x...>: > Has anyone gotten Linux Nyquist running using ALSA or Jack? If not, does > anyone know what it would take to get that working? I've run nyquist > under aoss, but the audio can be clicky. I know it should be possible to make it work directly via configure options, but it doesn't do it for me. I was able to get it to play by editing one of the initial config files so that playing is sounds is done via an external program, and I put aplay in there. Its been awhile though - I've been too busy with other things to play with nyquist. -- Evan |
|
From: Ian Smith-H. <hei...@0x...> - 2005-06-13 17:49:29
|
Has anyone gotten Linux Nyquist running using ALSA or Jack? If not, does anyone know what it would take to get that working? I've run nyquist under aoss, but the audio can be clicky. Thanks, Ian -- http://www.0x09.com |
|
From: Roger B. D. <rb...@cs...> - 2005-06-13 12:56:45
|
I'll apologize in advance if you've already seen this, but it seemed
appropriate to send out to my Nyquist lists.
By the way, there are now two lists:
nyq...@li..., and
my personal list
If you get this but you haven't signed onto the sourceforge list, please =
do
so -- at some point, I'll stop using my personal list, and only you can =
add
yourself to the sourceforge list. -Roger
_________________________________________________________________________=
___
____
*** FINAL ANNOUNCEMENT ***
CCRMA Lisp Music Workshop 2005 -- June 23-25 at Stanford =
University
International Lisp Conference 2005 -- June 19-22
_________________________________________________________________________=
___
____
We cordially invite you to join us for a week of activities devoted to =
Lisp
and
Scheme-related music production at Stanford, June 19-25.=20
Stanford's Center for Computer Research in Music and Acoustics (CCRMA) =
will
host
a three-day LISP MUSIC WORKSHOP at Stanford University June 23-25. This
unique
symposium immediately follows the International Lisp Conference 2005 =
(ILC
2005),
which convenes at Stanford University June 19-22. Details about ILC =
2005
may be
found at: http://INTERNATIONAL-LISP-CONFERENCE.ORG/=20
Schedule, registration, payment, and housing information for the 2005 =
CCRMA
Lisp
Music Workshop may be found at:=20
http://CCRMA.STANFORD.EDU/LISP-MUSIC-WORKSHOP
The CCRMA Lisp Music Workshop 2005 brings together noted composers,
performers,
scientists and technologists engaged in Lisp and Scheme-based music
production
and research. Three days of invited lectures, seminars and tutorials =
will
be
presented between Thursday, June 23 and Saturday, June 25.
The Workshop will host two concerts of music composed and/or =
electronically
realized using Lisp-based software. The first concert is on Monday =
evening,
June 20 on the opening night of ILC 2005 in Stanford's Dinkelspiel
Auditorium.=20
This concert features the Ives Quartet playing works in historical =
styles
composed by David Cope's (EMI) Experiments in Musical Intelligence =
program.
Compositions by Roger Dannenberg, Mary Simoni, Heinrich Taube and =
Fernando=20
Lopez-Lezcano will also be presented. A second concert on Thursday =
evening,
June 23 will feature new works of Stanford composers.
Technical content of the Workshop includes two half-day mini-symposia
devoted
to Musical Knowledge Representation, and Real-Time Signal Processing in =
Lisp
and Scheme. Tutorials on Common Music (CM), Common Lisp Music (CLM),
Nyquist,
and Prolog are scheduled to be presented by key developers of these =
software
tools.
Invited Lisp Music Workshop speakers include:
John Amuedo, founder of Signal Inference Corp. and the Music Cognition
Group,
M.I.T. Artificial Intelligence Laboratory
Chris Chafe, Prof. of Music and Director of CCRMA, Stanford University
David Cope, Prof. of Music at U.C. Santa Cruz and author of the =
Experiments
in
Musical Intelligence (EMI) automated composition program
Roger Dannenberg, Assoc. Research Prof. of Computer Science and Art at
Carnegie-Mellon University; author of the Nyquist signal processing
language
William Kornfeld, Founder of Quintus Software and the Music Cognition =
Group,
M.I.T. Artificial Intelligence Laboratory
Randal Leistikow, Stanford CCRMA
Fernando Lopez-Lezcano, SysAdmin/Lecturer at Stanford CCRMA
Heinrich Taube -- Assoc. Prof. of Music Composition and Theory at =
University
of Illinois, Urbana-Champaign and author of the Common Music language
Mary Simoni -- Associate Professor of Music Technology, Univ. of =
Michigan,
Ann Arbor
A small number of vacancies remain before the 2005 CCRMA Lisp Music =
Workshop
reaches capacity and registration must close.
We look forward to you joining us for this week of Lisp-related =
activities
at
Stanford.
WORKSHOP HOSTS
John Amuedo, ILC 2005 Organizing Committee
Chris Chafe, Director of CCRMA
Bruno Ruviaro, CCRMA
|
|
From: <dav...@sy...> - 2005-03-19 12:25:37
|
Hi!
I wrote a very simple function to "reverse" a sound in time=2E It doesn't
run very quickly, but it might be useful for short sounds=2E I couldn't
think of any way to do it except extract all the samples to an array,
reverse the array, and convert it back to a sound=2E If there's a more
efficient way (other than writing it in C), please let me know=2E
If you think it might be useful, please feel free to add it to the
next release=2E It uses a "helper" function, 'array-reverse', since=20
there doesn't seem to be any function in Xlisp to do this=2E
David=2E
(defun array-reverse (a length)
;; Note: this function updates the input parameter
;; in place=2E If you don't want this, copy the array
;; to another variable first=2E
(prog* ((mid (/ length 2)) (tmp nil))
(if (equal (type-of a) 'ARRAY)
(do ((n1 0) (n2 (1- length)))
((>=3D n1 mid) a)
(setf tmp (aref a n1))
(setf (aref a n1) (aref a n2))
(setf (aref a n2) tmp)
(setf n1 (1+ n1))
(setf n2 (1- n2))
)
(return a)
)
)
)
(defun snd-reverse (s)
;; returns time-reversed sound (preserving sample rate and start=20
;; time), but doesn't operate on multi-channel sounds
(if (soundp s)
(prog* ((len (snd-length s NY:ALL)) (a (snd-samples s len)))
(array-reverse a len)
(return (snd-from-array (snd-t0 s) (snd-srate s) a))
)
)
)
--------------------------------------------------------------------
mail2web - Check your email from the web at
http://mail2web=2Ecom/ =2E
|
|
From: Roger B. D. <rb...@cs...> - 2005-03-17 17:52:08
|
Wonderful idea! I'll put in either a global (*maximum-table-size*) or a = call (SET-MAXIMUM-TABLE-SIZE n) to let users override the default, and I'll = leave the default at 100,000. -Roger |
|
From: <dav...@sy...> - 2005-03-17 00:16:10
|
Thanks=2E I realize that for some people (rather, some machines), 1 millio= n samples might be too large, resulting in a crash, while for others,=20 100,000 might be too small=2E I just wanted some confirmation that there was a contradiction between the documentation and the actual limit, or if not, then help in clearing up my misunderstanding=2E Since I'm just learning how to do things in Nyquist, it's not important=2E= But maybe in some future release, the table size could be specified as=20 a command-line parameter, rather than hard-coded in an "include" file=2E Then users could specify whatever is appropriate for their hardware (although it could default to 100,000 samples)=2E Thanks for your help=2E David=2E Original Message: ----------------- From: Roger B=2E Dannenberg rbd@cs=2Ecmu=2Eedu Date: Wed, 16 Mar 2005 15:40:59 -0500 To: nyquist-users@lists=2Esourceforge=2Enet Subject: [Nyquist-users] Re: Question about maximum table size Yes, there's a bug either in the documentation or the code: the table size= limit is 100K samples, which is 400KB=2E The table size limit is a tradeof= f between giving users the freedom to do what they want and keeping Nyquist alive=2E Before there was a limit, users would complain that Nyquist crash= ed for no apparent reason=2E The reason was that Nyquist was trying to alloca= te huge tables=2E In almost all cases, there was a better way to do things=2E= With convolution, I think you can break the convolution up into two or more parts, perform them separately, and then shift and sum the results togethe= r to get the correct result=2E I realize this is easy to say and somewhat painful to code and test=2E And if you're going to allocate a bunch of big= tables, why not just increase the tables size? A 4MB memory allocation isn= 't so much on most modern machines=2E But is that enough? What should the lim= it be? (Also, Nyquist doesn't do fast convolution, so the time is proportiona= l to M*N where M and N are the lengths of the two sounds to be convolved=2E)= I guess the thing to do is increase the max size to 1M and put in some err= or reporting in case the allocation fails so when it does the user gets a meaningful error report=2E I'll work on in=2E Meanwhile, have you tried the convolution at 22kHz? 88K samples (4 seconds= at 22kHz) should fit into the current 100K sample limit=2E ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users=2E= Discover which products truly live up to the hype=2E Start reading now=2E http://ads=2Eosdn=2Ecom/?ad_ide95&alloc_id=14396&op=AAick _______________________________________________ Nyquist-users mailing list Nyquist-users@lists=2Esourceforge=2Enet https://lists=2Esourceforge=2Enet/lists/listinfo/nyquist-users -------------------------------------------------------------------- mail2web - Check your email from the web at http://mail2web=2Ecom/ =2E |
|
From: Roger B. D. <rb...@cs...> - 2005-03-16 20:41:18
|
Yes, there's a bug either in the documentation or the code: the table = size limit is 100K samples, which is 400KB. The table size limit is a = tradeoff between giving users the freedom to do what they want and keeping = Nyquist alive. Before there was a limit, users would complain that Nyquist = crashed for no apparent reason. The reason was that Nyquist was trying to = allocate huge tables. In almost all cases, there was a better way to do things. = With convolution, I think you can break the convolution up into two or more parts, perform them separately, and then shift and sum the results = together to get the correct result. I realize this is easy to say and somewhat painful to code and test. And if you're going to allocate a bunch of big tables, why not just increase the tables size? A 4MB memory allocation = isn't so much on most modern machines. But is that enough? What should the = limit be? (Also, Nyquist doesn't do fast convolution, so the time is = proportional to M*N where M and N are the lengths of the two sounds to be convolved.) I guess the thing to do is increase the max size to 1M and put in some = error reporting in case the allocation fails so when it does the user gets a meaningful error report. I'll work on in. Meanwhile, have you tried the convolution at 22kHz? 88K samples (4 = seconds at 22kHz) should fit into the current 100K sample limit. |
|
From: <dav...@sy...> - 2005-03-15 18:50:12
|
Hi! I'm using version 2=2E30 of the Windows version (pre-compiled), and I=20 sometimes get an error message about maximum table size=2E According to the message, the maximum size is 100,000 samples, but according to the Nyquist manual, it's 1,000,000 samples (pg=2E 36)=2E I haven't downloaded the source code to see how it's defined in 'sound=2Eh', and I was hoping not to have to compile it myself=2E Am I incorrect in thinking the size should be 1,000,000 and not 100,000? Here's the statement I'm getting the error on=2E I'm trying to "convolve" a sound with another sound that's 4 sec=2E in length, at a sampling rate of 44,100=2E That would be over 100,000 but still under 1,000,000=2E > (setf s300 (normalize (convolve s (gong-3 300 4)))) error: maximum table size (100000) exceeded - NIL if continued: use truncated sound for table (I'm using "gong=2Elsp" to generate the 4 sec=2E sound for the convolve operation=2E) Thanks for your help, David=2E -------------------------------------------------------------------- mail2web - Check your email from the web at http://mail2web=2Ecom/ =2E |