Skip to content

Commit 9fb0ce5

Browse files
committed
Update Nyquist to v3.09.
1 parent f88b27e commit 9fb0ce5

File tree

358 files changed

+26377
-7093
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

358 files changed

+26377
-7093
lines changed

lib-src/libnyquist/hurd-nyquist.patch

-102
This file was deleted.

lib-src/libnyquist/kFreeBSD-nyquist.patch

-24
This file was deleted.

lib-src/libnyquist/nyquist/Readme.txt

+48-25
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,62 @@
1-
README file for Nyquist Version 3.03
2-
24 Feb 2009
1+
README file for Nyquist Version 3.09
2+
28 Dec 2014
33
Roger B. Dannenberg
44

55
LICENSE: see license.txt
6-
WEB SITE: http://www.cs.cmu.edu/~rbd/nyquist.html
6+
WEB SITE: http://www.cs.cmu.edu/~music/nyquist
77

88
INSTALLING NYQUIST
99
====================
10-
Please see Section 1.1, Page 1, of the Nyquist Manual
10+
You can download pre-compiled versions for Windows and OS X.
1111

12-
If you use Windows 95 or Windows NT, this release was
13-
compiled with Visual C++ 6.0.
12+
You can compile Nyquist from sources for Windows, OS X, linux, and
13+
other versions of Unix. For details, see one of these files:
14+
- sys/win/README.txt
15+
- sys/mac/README.txt
16+
- sys/unix/README.txt
1417

15-
For Mac OS X command line users, there is an executable
16-
Nyquist program: NyquistIDE.app/Contents/Resources/Java/ny
1718

1819
IMPLEMENTATION STATUS
1920
=====================
21+
22+
Version 3.09 provides:
23+
Various bug fixes
24+
OS X version is significantly faster
25+
Security features added to limit CPU, memory, file access (default
26+
is still unrestricted; this feature is to protect servers)
27+
28+
Version 3.08 provides:
29+
NyquistIDE opens documentation properly on default browser
30+
NyquistIDE forcefully terminates nyquist process on exit if needed
31+
bug fix for mixed sample rate signal handling, affects many primitives
32+
timed-seq and score-play avoid stack overflow on finely spaced events
33+
sampler() primitive does error checking to avoid infinite loop
34+
35+
Version 3.07 provides:
36+
Bug fixes in NyquistIDE Envelope Editor
37+
NyquistIDE installs symbolic links to lib and demos
38+
directories from nyquist directory (where documentation
39+
is kept) so these folders are not hidden in the app bundle.
40+
Bug fix in quantize and snd-quantize functions.
41+
42+
Version 3.06 provides:
43+
64-bit architecture support
44+
Access to OGG and FLAC file formats
45+
Updates for MSVC++2010, VS2012, XCode 4.5
46+
This is a deadline-driven release. Expect an update soon.
47+
48+
Version 3.05 provides:
49+
New "UPIC Editor" window in NyquistIDE
50+
Fix to escape backslashes in default windows directory
51+
Fix to other problems with Preferences
52+
Arpeggiator example in nyquist/demos
53+
54+
Version 3.04 provides:
55+
Updates to libraries, including liblo and PortAudio
56+
Documentation uses both syntax SAL and Lisp syntax
57+
Some STK instruments have been added
58+
Build files modified to make 32-bit code even on 64-bit
59+
architectures (Nyquist only runs in 32-bit mode)
2060
Version 3.03 provides:
2161
Bug fix to Markov pattern generator (see make-markov).
2262
Update to current (24-feb-09) liblo library.
@@ -215,20 +255,3 @@ todo - list of things to do (this may not be in the release)
215255
tran - descriptor (.alg) files for machine-translated Nyquist code
216256
xlisp - sources for Xlisp (these are linked into Nyquist)
217257

218-
THE RUNTIME ONLY RELEASE
219-
========================
220-
The runtime-only release contains everything related to running
221-
Nyquist, but no source code. The files in this release are:
222-
Readme.txt (this file)
223-
nyquist.exe (located in the runtime directory)
224-
runtime (directory)
225-
lib (directory)
226-
demos (directory)
227-
test (directory)
228-
229-
BUILDING UNDER LINUX
230-
====================
231-
in the nyquist directory:
232-
> ln -s sys/unix/linux/Makefile
233-
> make
234-

lib-src/libnyquist/nyquist/cmt/cmdline.c

+11-2
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,13 @@
8989
#include "ctype.h"
9090
#include "string.h"
9191

92+
/* this should really be defined in security.h, but it is in xlisp.h.
93+
* I don't want to add an xlisp dependency here, nor do I want to
94+
* create security.h since that's not how xlisp does things.
95+
* The C++ linker will type check so this is at least type safe.
96+
*/
97+
int ok_to_open(const char *filename, const char *mode);
98+
9299
#define syntax_max 10 /* allow for 10 syntax strings */
93100
private char *syntax[syntax_max];
94101
private int n_syntax = 0; /* number of strings so far */
@@ -440,9 +447,11 @@ private void indirect_command(filename, oldarg0)
440447
char *filename;
441448
char *oldarg0;
442449
{
443-
FILE *argfile = fopen(filename, "r");
450+
FILE *argfile = NULL;
451+
if (ok_to_open(filename, "r"))
452+
argfile = fopen(filename, "r");
444453
if (!argfile) {
445-
argv = (char **) malloc(sizeof(char *));
454+
argv = (char **) malloc(sizeof(char *));
446455
argv[0] = oldarg0;
447456
argc = 1;
448457
} else {
+24-24
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
1-
extern void midifile();
2-
extern int (*Mf_getc)();
3-
extern void (*Mf_header)();
4-
extern void (*Mf_starttrack)();
5-
extern void (*Mf_endtrack)();
6-
extern void (*Mf_on)();
7-
extern void (*Mf_off)();
8-
extern void (*Mf_pressure)();
9-
extern void (*Mf_controller)();
10-
extern void (*Mf_pitchbend)();
11-
extern void (*Mf_program)();
12-
extern void (*Mf_chanpressure)();
13-
extern void (*Mf_sysex)();
14-
extern void (*Mf_metamisc)();
15-
extern void (*Mf_sqspecific)();
16-
extern void (*Mf_seqnum)();
17-
extern void (*Mf_text)();
18-
extern void (*Mf_eot)();
19-
extern void (*Mf_timesig)();
20-
extern void (*Mf_smpte)();
21-
extern void (*Mf_tempo)();
22-
extern void (*Mf_keysig)();
23-
extern void (*Mf_arbitrary)();
24-
extern void (*Mf_error)();
1+
extern void midifile(void);
2+
extern int (*Mf_getc)(void);
3+
extern void (*Mf_header)(int,int,int);
4+
extern void (*Mf_starttrack)(void);
5+
extern void (*Mf_endtrack)(void);
6+
extern void (*Mf_on)(int,int,int);
7+
extern void (*Mf_off)(int,int,int);
8+
extern void (*Mf_pressure)(int,int,int);
9+
extern void (*Mf_controller)(int,int,int);
10+
extern void (*Mf_pitchbend)(int,int,int);
11+
extern void (*Mf_program)(int,int);
12+
extern void (*Mf_chanpressure)(int,int);
13+
extern void (*Mf_sysex)(int,char*);
14+
extern void (*Mf_metamisc)(int,int,char*);
15+
extern void (*Mf_sqspecific)(int,char*);
16+
extern void (*Mf_seqnum)(int);
17+
extern void (*Mf_text)(int,int,char*);
18+
extern void (*Mf_eot)(void);
19+
extern void (*Mf_timesig)(int,int,int,int);
20+
extern void (*Mf_smpte)(int,int,int,int,int);
21+
extern void (*Mf_tempo)(int);
22+
extern void (*Mf_keysig)(int,int);
23+
extern void (*Mf_arbitrary)(int,char*);
24+
extern void (*Mf_error)(char *);
2525
extern long Mf_currtime;
2626
extern int Mf_nomerge;
2727
extern int Mf_skipinit;

lib-src/libnyquist/nyquist/cmt/record.c

+16-1
Original file line numberDiff line numberDiff line change
@@ -600,7 +600,20 @@ boolean rec_init(boolean bender)
600600
/* it would be silly to record with only room enough for 10 notes! */
601601
}
602602

603-
603+
#ifdef NEED_REC_EVENT
604+
/*
605+
This function was part of the CMU MIDI Toolkit. It provided a constant time
606+
fast way to record midi data into a buffer. After recording, the buffered
607+
data could be transferred into an Adagio score structure, which involved
608+
linked list allocation and insertion that might have caused performance
609+
problems. This code uses the high-order bit of longs to distinguish timestamps
610+
from data (MIDI messages), but the code seems to assume little endian, and
611+
I'm not sure how it worked on both Intel and 68000 processors. Rather than
612+
look more closely or fix it, I'm commenting it out because Nyquist does not
613+
have any MIDI I/O capability and does not need the function. It is here for
614+
completeness, since this is probably the only archived version of the CMU
615+
MIDI Toolkit. */
616+
604617
/****************************************************************************
605618
* rec_event
606619
* Inputs:
@@ -636,3 +649,5 @@ boolean rec_event(long *data, time_type time)
636649
gprintf(ERROR, "No more memory.\n");
637650
return FALSE;
638651
}
652+
653+
#endif

0 commit comments

Comments
 (0)