Giter Club home page Giter Club logo

supercollider / supercollider Goto Github PK

View Code? Open in Web Editor NEW
5.2K 5.2K 727.0 159.7 MB

An audio server, programming language, and IDE for sound synthesis and algorithmic composition.

Home Page: http://supercollider.github.io

License: GNU General Public License v3.0

CMake 0.37% HTML 0.06% JavaScript 0.07% CSS 0.05% C++ 91.47% Objective-C++ 0.08% SuperCollider 5.06% C 2.30% Shell 0.02% Python 0.40% Makefile 0.01% Perl 0.01% XSLT 0.01% Objective-C 0.01% NSIS 0.01% Batchfile 0.01% Lex 0.02% Yacc 0.03% Scala 0.02% Ruby 0.01%
algorithmic-composition audio c-plus-plus computer-music electronic-music livecoding music programming-language sclang scsynth sonification sound supercollider synthesis

supercollider's Introduction

SuperCollider is a platform for audio synthesis and algorithmic composition, used by musicians, artists, and researchers working with sound. It consists of:

  • scsynth, a real-time audio server with hundreds of unit generators ("UGens") for audio analysis, synthesis, and processing
  • supernova, an alternative server to scsynth with support for parallel DSP on multi-core processors
  • sclang, an interpreted programming language that controls the servers
  • scide, an editing environment for sclang with an integrated help system

sclang comes with its own package manager, called Quarks. scsynth and supernova both support third-party plugins via C and C++ APIs.

SuperCollider is written in C++17 using several third-party libraries, including Qt and Boost. It can be used on Windows, macOS, a variety of Linux and BSD distributions, Raspberry Pi, and BeagleBone Black.

Install

macOS and Windows builds for stable releases are provided at our downloads page. See the macOS README and Windows README for instructions on usage, and how to build SC yourself.

To get the latest stable version, Linux users will need to build SuperCollider themselves. See the Linux README for instructions.

See the Raspberry Pi and BeagleBone Black READMEs for instructions on building on those platforms.

Platform support

SuperCollider is tested with:

  • Windows 10 (32- and 64-bit) and MSVC 2019
  • macOS 12 and Xcode 13.4.1
  • Ubuntu 22.04 and gcc 12

SuperCollider is known to support these platforms:

  • Windows Vista, 7, 8, 10, 11
  • macOS 10.14-12.x
  • Ubuntu 18.04-22.04

We also provide a legacy macOS binary for macOS 10.11 and above using Qt 5.9.

SuperCollider has guaranteed support for:

  • Windows 10, 11
  • MSVC 2017, 2019
  • macOS 11, 12
  • Xcode 11-13
  • Debian >= 11
  • Ubuntu 20.04, 22.04
  • Fedora 36, 37
  • Arch Linux
  • gcc >= 9
  • clang >= 11
  • Qt >= 5.11

For more information on platform support guarantees, see the project Wiki.

Learn

The official docs can be viewed in the SuperCollider IDE's built-in documentation browser. You can also view them online at doc.sccode.org.

We recommend the following resources for learning SC:

Discuss

You can join our forum at scsynth.org or our Slack channel.

You can also view the archives for the old mailing lists at sc-users and sc-dev.

Please read our adopted code of conduct, which applies to all the above communities.

Contribute

Development of SuperCollider happens here on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving SuperCollider.

Please read our adopted code of conduct before contributing, so that you can understand what actions will and will not be tolerated.

Read our contributing guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes.

Good First Issues

To help you get your feet wet and get you familiar with our contribution process, we have a list of good first issues that contain bugs which have a relatively limited scope. This is a great place to get started. You can also ask on our developer's mailing list, on Slack, or on the forum.

Requests for Comment

SuperCollider uses a Requests for Comment (RFC) system to propose, design, and discuss 'big' changes. Submitting a new RFC or discussing an existing one is a great way to get involved, especially if you are looking for a way to contribute that doesn't involve writing code or using a terminal. You can learn more at the RFC repository.

License

SuperCollider is free software available under Version 3 the GNU General Public License. See COPYING for details.

supercollider's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

supercollider's Issues

Pen: bug with fillRect, fillOval and fillColor

[Issue migrated from SourceForge | ID: 1837775 | Submitted by 'sciss']
[http://sourceforge.net/support/tracker.php?aid=1837775]

fillRect and fillOval (and maybe others?) are using the strokeColor, not the fillColor:

GUI.cocoa;
(
var width= 640, height= 480, w, drawFunc;
w= GUI.window.new("trail test3", Rect(128, 64, width, height), false);
drawFunc= {|v|
GUI.pen.fillColor_(Color.blue);
GUI.pen.strokeColor_(Color.green);
// these should be blue, but in fact they are green
GUI.pen.fillRect(Rect.aboutPoint(Point(100,100), 60, 40));
GUI.pen.fillOval(Rect.aboutPoint(Point(300,100), 60, 40));
};
x = GUI.userView.new(w, Rect(10, 10, width-20,
height-20)).drawFunc_(drawFunc);
w.front;
)

SCRangeSlider dragging bug

[Issue migrated from SourceForge | ID: 572166 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=572166]

bug in the drag primitive

  • dragging from range changes the current setting in an
    SCRangeSlider

fixing deprecated use of string constants

[Issue migrated from SourceForge | ID: 1869861 | Submitted by 'timblech']
[http://sourceforge.net/support/tracker.php?aid=1869861]

string constants should be handled as const char* instead of char*, as the syntax is deprecated by gcc-4.2.

the attached patch fixes this issue ...

Midi SysEx Message Bug

[Issue migrated from SourceForge | ID: 1887774 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=1887774]

SuperCollider currently does not receive successfully SysEx messages.
It's hard to give an example since it is dependant of the hardware you use. And using IACDriver for this purpose is not a good idea since it would feed itself again and again for large messages.

Most trials i have done were with a Waldorf MicroQ, from wich i was sending full program dumps of 392bytes each. the MIDIIn.doSysexAction was never triggered and occasionally it crashed.

I made 3 propositions after working on the code (in SC_CoreMidi.cpp file).
After those modifications i was able to receive successfully SysEx messages.
You can find those modifications/suggestions in the dev-list :

http://lists.create.ucsb.edu/pipermail/sc-dev/2008-February/011903.html

Anyway more tests with different machines should be better.

charles a picasso
[email protected]

SC_SYNTHDEF_DIR environment variable incorrectly read, win32

[Issue migrated from SourceForge | ID: 1870544 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1870544]

If you set an environment variable in Windows

SC_SYNTHDEF_DIR = D:\SuperCollider\PsyCollider\synthdefs

scsynth.exe fails to read with this error:

localhost
booting 57110
Using vector unit: no
*** ERROR: open directory failed 'D'

[windows] buffer reading seems not to work in win2k

[Issue migrated from SourceForge | ID: 1873963 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1873963]

o = OSCresponderNode(s.addr, '/b_info', { |t, r, m|
m.postln
}).add;

b = b.read("sounds/a11wlk01.wav");
--> [ /b_info, 18, 0, 0, 0 ]

... where it should print [ /b_info, 18, 188893, 1, 44100 ]

b = b.read("dummkopf.aif");
--> [ /b_info, 18, 0, 0, 0 ]

... where the server should print an error that the file could not be opened.

It isn't clear to me from these tests whether the buffer is actually populated or not.

Collection:removeAll does not catch repeated items

[Issue migrated from SourceForge | ID: 1897486 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1897486]

[0, 1, 2, 3, 0, 1, 2, 3].removeAll([1, 2])
--> [ 0, 3, 0, 1, 2, 3 ]

Only the first occurrence of each given item is removed.

.quark files saved as RTF?

[Issue migrated from SourceForge | ID: 1813039 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1813039]

OSX incorrectly saves .quark files as RTF.

To reproduce: Write any text into an SC code window. Then save using the quark format from the dropdown.

In terminal, cat the new file and you will see something like:

{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural

\f0\fs24 \cf0
(test: "test quark")}

n_free can crash the server

[Issue migrated from SourceForge | ID: 1834737 | Submitted by 'sciss']
[http://sourceforge.net/support/tracker.php?aid=1834737]

an immediate n_free, g_freeAll or g_deepFree crashes scsynth if the node was paused. tested with latest SVN build (6650) on macbook pro intel, mac os x 10.4.10. to reproduce:

s.boot;

// now either of these:

(
s.sendBundle( nil,
[ "/g_new", 1007, 0, 0 ],
[ "/s_new", "default", 1011, 1, 1007 ],
[ "/n_run", 1011, 0 ]// REQUIRED TO PRODUCE THE CRASH
);
s.sendMsg( "/g_deepFree", 1007 );// BOOOM!
)

(
s.sendBundle( nil,
[ "/g_new", 1007, 0, 0 ],
[ "/s_new", "default", 1011, 1, 1007 ],
[ "/n_run", 1011, 0 ]// REQUIRED TO PRODUCE THE CRASH
);
s.sendMsg( "/g_freeAll", 1007 );// BOOM!
)

(
s.sendBundle( nil,
[ "/g_new", 1007, 0, 0 ],
[ "/s_new", "default", 1011, 1, 1007 ],
[ "/n_run", 1011, 0 ]// REQUIRED TO PRODUCE THE CRASH
);
s.sendMsg( "/n_free", 1011 );
)

exponentiation bug

[Issue migrated from SourceForge | ID: 1121530 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=1121530]

in the latest build, the exponentiation operator ** is wasted! It
returns negative results when squaring negatives!
i.e. neg(5)**2 returns -25....

wasted all my programs

[email protected]

Pitch crashes with too high a median length

[Issue migrated from SourceForge | ID: 1865867 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1865867]

This seems to have been fixed in Median but it's still broken in Pitch.

e.g.:

SynthDef(\kaboom, { |outbus|
varsig = In.ar(outbus, 1),
pitch, hasFreq, trig, mnote;

pitch, hasFreq = Pitch.kr(sig, median: 11);

mnote = pitch.cpsmidi.round;
// send a trigger on change of freq or hasFreq on/off
trig = (HPZ1.kr(mnote).abs > 0) + (HPZ1.kr(hasFreq).abs > 0);
SendTrig.kr(trig, hasFreq, pitch);
}).memStore;

String literals in functiondefs can get corrupted

[Issue migrated from SourceForge | ID: 1896121 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1896121]

At some point in the past, string literals were immutable objects, but that changed somewhere along the way.

That produces the following deadly side effect:

f = {
varstringLiteral = "xyz";
stringLiteral.debug("stringLiteral before extension");
stringLiteral.extend(10, $.);
stringLiteral.debug("stringLiteral after extension");
};

f.def.prototypeFrame;
[ xyz ]

f.value;
stringLiteral before extension: xyz
stringLiteral after extension: xyz.......

f.def.prototypeFrame;
[ xyz....... ]

f.value;
stringLiteral before extension: xyz.......
stringLiteral after extension: xyz.......

An operation within a function has changed the function definition.

server will not boot

[Issue migrated from SourceForge | ID: 1324323 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=1324323]

i downloladed the latest full version (20050916), and when i try to
boot the localhost server it prints "result=5" in the comments
windows, and 30 seconds later it says "server failed to boot".

when i try to boot the internal server the application unexpectedly
quits

for the localhost server i tried both "s = Server.local; s.boot" as well
as clicking on the boot button on the localhost gui window. for the
internal server i only tried clickiong on the boot button on the internal
server gui window.

thanks

bob bellerue
[email protected]

permission problem in synthdef

[Issue migrated from SourceForge | ID: 1083902 | Submitted by 'bwillkie']
[http://sourceforge.net/support/tracker.php?aid=1083902]

Hello,

Just installed SuperCollider3_bin_20041125.tar.gz on 4 flat pannel
imacs running OS 10.3.6. I had no problems running as an admin
user but under any other user I got an error on start up:

ERROR: Primitive '_FilePutString' failed

under the SuperCollider_f/synthdef directory executing:

%sudo chmod 666 ./*

fixed the problem.

-Brian

[post-3.2] Incomplete compilation warning posted

[Issue migrated from SourceForge | ID: 1896281 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1896281]

I see this at the beginning of my library compilation transcript. (This is with dewdrop_lib installed.)

compiling dir: 'C:\Program Files\PsyCollider\SCClassLibrary'
in file '\Extensions\dewdrop_lib\ddwPeakMonitor\SequenceableColl-asBus.sc' line 8 char 53

Curious, it tells me something is in there but doesn't tell me what.

Is it a warning that was removed, but some remnant remains?

Not urgent for 3.2. Do not delay release of 3.2 for this.

Fix takeAt documentation

[Issue migrated from SourceForge | ID: 1897484 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1897484]

Helpfile is wrong on takeAt.

takeAt(index)

Same as removeAt, but reverses the order of the items following those that which was taken.

y = [ 1, 2, 3, 4 ];
y.takeAt(1);
y.postln;

"reverses the order" is not correct.

Trouble finding libs when using PREFIX

[Issue migrated from SourceForge | ID: 1797829 | Submitted by 'dpunktnpunkt']
[http://sourceforge.net/support/tracker.php?aid=1797829]

When building SuperCollider, I tried to use a PREFIX that's in my homedirectory, like so:

PREFIX = '/home/daniel/lib/supercollider'

Turns out that the binaries that are copied to $PREFIX/bin aren't linked in a way to find the libraries in $PREFIX/lib. The attached patch to SConstruct has the binaries look in the right place when they're run.

Document.new returns nil if SC is not the active application

[Issue migrated from SourceForge | ID: 1874838 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1874838]

If SuperCollider is not the frontmost application when Document.new is called, then the return value from the call is nil.

To reproduce:

d = Document.new("oops"); d.postln;
--> a CocoaDocument

// after running this line, cmd-tab to another application
{ d = Document.new("oops"); d.postln }.defer(5.0);

// "a Function" prints immediately, then after 5 seconds:
--> nil

scsynth.exe crashes upon quit after timestamped messages

[Issue migrated from SourceForge | ID: 1866474 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1866474]

This is fine:

a = Synth(\default);

a.set(\gate, 0);

s.quit;

This is not:

(
s.makeBundle(1.0, {
a = Synth(\default);
});
)

a.set(\gate, 0);

s.quit;
---> RESULT = -1073741819

And a popup "scsynth.exe has generated errors."

Not sure if that's a huge deal since it is on shutdown anyway, but it suggests something is being left behind in some data structure somewhere.

SCTestView editable_

[Issue migrated from SourceForge | ID: 1821651 | Submitted by 'redfrik']
[http://sourceforge.net/support/tracker.php?aid=1821651]

if i disable editable before setting the string, nothing gets show. if i disable after then it's ok.
swingosc works fine and there the order doesn't matter.

GUI.cocoa
(
w= GUI.window.new;
GUI.textView.new(w, Rect(10, 10, 100, 20))
.editable_(false)
.string_("asdf");//not displayed
w.front;
)
(
w= GUI.window.new;
GUI.textView.new(w, Rect(10, 10, 100, 20))
.string_("asdf")
.editable_(false);
w.front;
)

_f

SCSliderBase, knobColor bug

[Issue migrated from SourceForge | ID: 572167 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=572167]

SCSliderBase, knobColor bug

the knobColor property can't be set

Pen: strokeOval ignores pen width

[Issue migrated from SourceForge | ID: 1870000 | Submitted by 'sciss']
[http://sourceforge.net/support/tracker.php?aid=1870000]

Pen.strokeOval ignores the Pen.width settings
(SVN rev. 6944)

[windows] SoundFile info is wrong after openRead'ing a file

[Issue migrated from SourceForge | ID: 1873965 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1873965]

In Windows:

f = SoundFile.openRead("sounds/a11wlk01.wav");
f.dump;

---> prints:

Instance of SoundFile { (04260E10, gc=B4, fmt=00, flg=00, set=03)
instance variables [7]
fileptr : RawPointer BC60048
headerFormat : " "
sampleFormat : "int16"
numFrames : Integer 188893
numChannels : Integer 44100
sampleRate : Integer 0
path : "sounds/a11wlk01.wav"
}

but it should print:

Instance of SoundFile { (04260E10, gc=B4, fmt=00, flg=00, set=03)
instance variables [7]
fileptr : RawPointer BC60048
headerFormat : "aiff"
sampleFormat : "int16"
numFrames : Integer 188893
numChannels : Integer 1
sampleRate : Integer 44100
path : "sounds/a11wlk01.wav"
}

headerFormat, numChannels and sampleRate are not populated correctly.

SC2DSlider problem in an absolute-bound compositeview

[Issue migrated from SourceForge | ID: 1876621 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1876621]

w = SCWindow.new;

c = SCCompositeView(w,Rect(50,0,300,300)).relativeOrigin_(false);

a = SC2DSlider(c,Rect(50,0,100,100));
b = SC2DSlider(c,Rect(150,100,100,100));

c.background = Gradient(Color.rand,Color.rand);

w.front;

TO DO:

Regression-test ALL SCViews (ugh) -- I'll do what I can, don't have much time during the workweek, though

cannot build sc3 on linux

[Issue migrated from SourceForge | ID: 786733 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=786733]

building on linux gives me an error

g++ -DHAVE_CONFIG_H -I. -I. -I../..
-DSC_AUDIO_API=SC_AUDIO_API_JACK
-DSC_PLUGIN_DIR="/usr/local/lib/SuperCollider/plugins"
-DSC_PLUGIN_EXT=".so" -DSC_PLUGIN_LOAD_SYM="load"
-I../../headers/common -I../../headers/plugin_interface
-I../../headers/server -Wall -DSC_LINUX -D_REENTRANT
-DNDEBUG -Wp,-MD,.deps/SC_CoreAudio.pp -c
SC_CoreAudio.cpp -fPIC -DPIC -o .libs/SC_CoreAudio.lo
SC_CoreAudio.cpp: In member function bool SC_CoreAudioDriver::DriverStart()': SC_CoreAudio.cpp:1408: error:assert' undeclared
(first use this function)
SC_CoreAudio.cpp:1408: error: (Each undeclared
identifier is reported only once
for each function it appears in.)
make[3]: *** [SC_CoreAudio.lo] Error 1
make[3]: Leaving directory
/opt/cvs/SuperCollider3/source/server' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory/opt/cvs/SuperCollider3/source'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/cvs/SuperCollider3'
make: *** [all-recursive-am] Error 2

Windows shortcuts in class lib or extensions dir are ignored

[Issue migrated from SourceForge | ID: 1870525 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1870525]

If I put a shortcut to a folder into the userExtensionsDir in Windows, .sc files referenced by the shortcut are not compiled.

Among other problems, if there is ever an effort to make Quarks windows-compatible, this shortcoming would prevent Quarks from working altogether because installing a quark would create a shortcut in Extensions to the real quark directory.

SCRangeSlider

[Issue migrated from SourceForge | ID: 572164 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=572164]

typo in SCRangeSlider.sc

SCRangeSlider
receiveDrag {
// change to .x, .y instead of lo, hi
this.lo = currentDrag.x;
this.hi = currentDrag.y;
currentDrag = nil;
}

Server.bootSync optional argument

[Issue migrated from SourceForge | ID: 1853824 | Submitted by 'timblech']
[http://sourceforge.net/support/tracker.php?aid=1853824]

the documentation of Server.bootSync says:

condition is an optional instance of Condition used for evaluating this.

in the implementation, the condition argument is not optional, though, but mandatory ... the attached patch solves that issue ...

_BasicClipPut primitive doesn't work

[Issue migrated from SourceForge | ID: 1897485 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1897485]

a = [0, 1, 2, 3];
a.clipPut(6, 10)
a

'a' is unchanged - clipPut failed silently with no error but no effect either.

Audio dropout if starting UGens not used yet in session(OSX)

[Issue migrated from SourceForge | ID: 1804647 | Submitted by 'danstowell']
[http://sourceforge.net/support/tracker.php?aid=1804647]

Various users have reported that occasional audio dropouts can occur when starting a synth (brief, e.g. 10 ms). This has only arisen fairly recently so may be due to a change in SC or to a change in OSX (e.g. its memory management). It seems to be triggered by using UGens that have not been used so far in the SC session, meaning the plugin code is not yet paged-in to memory.

Main discussion thread:
http://www.create.ucsb.edu/pipermail/sc-users/2007-August/035837.html

Dan found that he could cause this to recur if he closed SC, ran memory-hungry apps, then restarted SC. (Didn't happen without running the apps.) (PPC PowerBook, OSX 10.4.10, SC updated from SVN on 2007-09-15.) Seems to confirm it's a paging issue. James H found it happening on his MacBook Pro, 1.83 GHz, 1.5 GB RAM. So it seems to happen on both Intel & PPC. (See email lists for other reports)

During the initial thread of discussion, James McC suggested "a ugen to call upon loading, a function to read the first word of each of its _next function addresses". Florian suggested mlocking scsynth's memory. The issue was discussed at SC Symposium 2007 but not sure if there was a definitive solution.

Please ignore (test 2)

[Issue migrated from SourceForge | ID: 1804666 | Submitted by 'danstowell']
[http://sourceforge.net/support/tracker.php?aid=1804666]

.....!.......

sclang crash on invalid code

[Issue migrated from SourceForge | ID: 1843401 | Submitted by 'timblech']
[http://sourceforge.net/support/tracker.php?aid=1843401]

the following invalid code crashes sclang:

v = {};
v();

cmd-line build fails (needs -faltivec?)

[Issue migrated from SourceForge | ID: 738882 | Submitted by 'clements']
[http://sourceforge.net/support/tracker.php?aid=738882]

The command-line build of SuperCollider3 that I get from running
pbxbuild at the command line fails on UnaryOpGen.cpp because
vfloat32 is undefined. Detective work shows that this typedef
is conditional in SC_Types.h on the #define'dness of VEC,
which is only enabled when -faltivec is a command-line option
to the compiler.

I'm much more familiar with 'make' than I am with 'pbxbuild', but
I noticed the following code in the build file:

            F50D04F902E68E8201CA2799 = {
                    buildRules = (
                    );
                    buildSettings = {
                            COPY_PHASE_STRIP = NO;
                            OPTIMIZATION_CFLAGS = "-O0 -faltivec";
                    };
                    isa = PBXBuildStyle;
                    name = Development;
            };

This suggests to me that "-faltivec" is set only when optimization
is enabled. Since the code won't compile without it, I suggest that
this be moved from optimization cflags to all-the-time cflags.

Finally, I'd be grateful to know how to enable the optimization
at the command line. Something like pbxbuild OPT=yes ...?

sclang memory usage

[Issue migrated from SourceForge | ID: 1807381 | Submitted by 'timblech']
[http://sourceforge.net/support/tracker.php?aid=1807381]

i am running into memory issues, when running a more or less trivial supercollider script, which can be found at http://klingt.org/~tim/midi2osc.sc and which is basically a very simple midi to osc converter.

i am running the script in the command line:
sclang midi2osc.sc

but it keeps allocating memory, so after a some time, it requires several hundred mb in the ram. however, when running it the same script from within emacs, it works fine, without continuously allocating memory.

memory debugging results:
i had a quick look at it with the totalview memory debugger ... it basically looks fine, the only reported memory leaks seem to be calls to pthread and alsa api functions, which is basically fine ...

examining the heap, it seems, that the memory is allocated from the following piece of code:

[quoted text muted]
Supercollider3/Source/lang/LangSource/InitAlloc.cpp#40]
1 AllocPool::NewArea PC=0xb7e476c3, FP=0xbf9e7cf8 [/home/tim/workspace/
Supercollider3/Source/common/SC_AllocPool.cpp#202]
2 AllocPool::Alloc PC=0xb7e47bb1, FP=0xbf9e7d68 [/home/tim/workspace/
Supercollider3/Source/common/SC_AllocPool.cpp#399]
3 AdvancingAllocPool::AddChunk PC=0xb7dc0a7e, FP=0xbf9e7d98 [/home/tim/
workspace/Supercollider3/Source/lang/LangSource/AdvancingAllocPool.cpp#56]
4 AdvancingAllocPool::Alloc PC=0xb7dc0b34, FP=0xbf9e7dc8 [/home/tim/
workspace/Supercollider3/Source/lang/LangSource/AdvancingAllocPool.cpp#71]
5 PyrGC::NewFrame PC=0xb7dc6208, FP=0xbf9e7e38 [/home/tim/workspace/
Supercollider3/Source/lang/LangSource/GC.cpp#427]
6 executeMethod PC=0xb7ddb475, FP=0xbf9e7e98 [/home/tim/workspace/
Supercollider3/Source/lang/LangSource/PyrMessage.cpp#1059]
7 Interpret PC=0xb7dcd092, FP=0xbf9e7f68 [/home/tim/workspace/
Supercollider3/Source/lang/LangSource/PyrInterpreter3.cpp#2056]
8 runInterpreter PC=0xb7dcdf8a, FP=0xbf9e7f88 [/home/tim/workspace/
Supercollider3/Source/lang/LangSource/PyrInterpreter3.cpp#120]
9 runLibrary PC=0xb7dcef5c, FP=0xbf9e7fc8 [/home/tim/workspace/
Supercollider3/Source/lang/LangSource/PyrLexer.cpp#2230]
10 SC_LanguageClient::tick PC=0xb7dfa3eb, FP=0xbf9e7fd8 [/home/tim/
workspace/Supercollider3/Source/lang/LangSource/SC_LanguageClient.cpp#287]
11 SC_TerminalClient::daemonLoop PC=0xb7dfc076, FP=0xbf9e8008 [/home/
tim/workspace/Supercollider3/Source/lang/LangSource/
SC_TerminalClient.cpp#329]
12 SC_TerminalClient::run PC=0xb7dfc8a6, FP=0xbf9e8038 [/home/tim/
workspace/Supercollider3/Source/lang/LangSource/SC_TerminalClient.cpp#233]
13 main PC=0x0804875e, FP=0xbf9e80a8 [/home/tim/workspace/
Supercollider3/Source/lang/LangSource/cmdLineFuncs.cpp#36]
14 __libc_start_main PC=0xb7b4404d, FP=0xbf9e8118 [/lib/i686/cmov/
libc.so.6]

the memory chunks are still referred to, though ...

it might be of interest, that pyr_new_area allocates memory of about 6MB from in a call of SC_LanguageClient::compileLibrary(), and an aditional
about 2MB from SC_LanguageClient::initRuntime() ... all other memory chunks are allocated in the backtrace above, having a size of about 256KB ...

0.2.asFraction beachballs the lang

[Issue migrated from SourceForge | ID: 1856972 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=1856972]

When fasterBetter is true (default), 0.2 hangs the primitive for SimpleNumber:asFraction. Somehow this particular number (1/5) never gets out of the Farey approximation loop.

My solution up to now has been to use fasterBetter = false

J.S.Lach:
[email protected]

SC folder rename introspection errors

[Issue migrated from SourceForge | ID: 928864 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=928864]

Running OS 10.2.8 on a 17" G4 iMac.

Renaming the folder 'SuperCollider_f' to 'SuperCollider
[option-f = italicized f]' prevented the introspection
menu items ('Open Class Def', 'Implementations of',
'References to') from being able to open the *.sc files.

IMHO a low priority bug, but a ReadMe file warning may
be appropriate.

[email protected]

Instr path variable is not populated

[Issue migrated from SourceForge | ID: 1816592 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1816592]

Self-explanatory - an Instr's path variable should have the path to the file containing the Instr definition. For the last several months, the path is always nil.

Assigning to myself for an initial look. If I can't fix it, it will go to felix.

Make non-timestamped messages execute on control block bound

[Issue migrated from SourceForge | ID: 1875947 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1875947]

As reported by Alberto on the mailing list, messages sent to the server without a timestamp (nil latency) are quantized to the next hardware buffer block boundary -- where I think most of us typically expect things to happen on control block boundaries. Using the default settings, 64 sample quantization is significantly better than 512 samples.

Not a regression issue -- the same issue is observable in two-year-old builds.

Not critical for 3.2, since a workaround is to reduce the hardware buffer size. Just logging it here so the issue doesn't get forgotten.

Server.default = s = Server.internal;
s.boot;
s.scope;

SynthDef(\tick, { OffsetOut.ar(0, XLine.ar(0.2, 0.01, 0.0003,
doneAction: 2)) }).memStore;

Tdef(\tic, { loop { s.sendBundle(s.latency, ["s_new", "tick", -1, 0,
0]); 0.005.wait; } }).play;

s.latency = 0.2;// ok, 200 Hz
s.latency = nil;// quantized to hardwarebuffersize! (512 on my machine)

Tdef(\tic).stop;

Some array primitives crash the VM if fed an empty array

[Issue migrated from SourceForge | ID: 1865286 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1865286]

[].lace // kaboom

Probably some other primitives break also.

High priority because it's easy to do this innocently.

views invisible on refresh if window too small

[Issue migrated from SourceForge | ID: 731909 | Submitted by 'cruxxial']
[http://sourceforge.net/support/tracker.php?aid=731909]

if the SCWindow was initially created with a smaller size and then
resized by the user, views placed outside of that range disappear
when clicked on.

(mainly testing the bug tracker here)
-felix

Timestamped OSC messages don't work in Psycollider 3.2b1

[Issue migrated from SourceForge | ID: 1886415 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1886415]

SynthDef(\sin, { |freq = 440, amp = 0.2, out = 0|
Out.ar(out, (SinOsc.ar(freq, 0, amp) * EnvGen.kr(Env.perc(0.01, 0.1),
doneAction: 2)) ! 2);
}).memStore;

// sound
a = Synth(\sin);

// no sound
s.makeBundle(0.2, { a = Synth(\sin); });

// sound
s.latency = nil;
p = Pbind(\freq, Pexprand(200, 800, inf), \amp, Pwhite(0.1, 0.3, inf),
\delta, 0.125, \instrument, \sin).play;

p.stop;

// no sound
s.latency = 0.1;
p = Pbind(\freq, Pexprand(200, 800, inf), \amp, Pwhite(0.1, 0.3, inf),
\delta, 0.125, \instrument, \sin).play;

p.stop;

Weak wifi connection causes psycollider to hang on startup

[Issue migrated from SourceForge | ID: 1870523 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1870523]

Was just trying to play with psycollider on a laptop with a weak wifi connection. It would finish compiling and then freeze - uninstall and reinstall didn't fix it.

Turning off the wifi connection instantly makes it respond.

So:

  • strong (wired) wifi - works
  • no internet - works
  • weak internet - hangs

LPF fails due to NaN error when cutoff==0

[Issue migrated from SourceForge | ID: 1204875 | Submitted by 'danstowell']
[http://sourceforge.net/support/tracker.php?aid=1204875]

The LPF UGen fails if its cutoff is set to precisely
zero. This is because the line

float C = 1.f / tan(pfreq);

results in a NaN when fed a value of zero, and it looks
like the NaN value pollutes the whole server's output
(since the output seems to "max out" and nothing can be
heard until forcibly stopping the output with [Cmd+.]).

Recommend checking for a zero value, and perhaps
adjusting pfreq to a very very small but nonzero value?
Or perhaps checking whether C is NaN just after the
line I've quoted.

Please ignore (test item)

[Issue migrated from SourceForge | ID: 1804665 | Submitted by 'danstowell']
[http://sourceforge.net/support/tracker.php?aid=1804665]

Please ignore (test item)

GrainBuf bug

[Issue migrated from SourceForge | ID: 1880224 | Submitted by 'timblech']
[http://sourceforge.net/support/tracker.php?aid=1880224]

in the current svn checkout, running the GrainBuf ugen causes scsynth to segfault.

it can be reproduced using the help file of GrainBuf.

linux build error

[Issue migrated from SourceForge | ID: 918069 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=918069]

building from cvs on debian linux (unstable) for ppc I
get :

g++ -DHAVE_CONFIG_H -I. -I. -I../..
-I../../headers/common -I../../headers/plugin_interface
-I../../headers/server -Wall -DSC_LINUX -D_REENTRANT
-DNDEBUG -fsigned-char -maltivec -g -O2
-Wp,-MD,.deps/MacUGens.pp -c MacUGens.cpp -fPIC -DPIC
-o .libs/MacUGens.o
MacUGens.cpp: In function void cmdDemoFunc(World*, void*, sc_msg_iter*, void*) ': MacUGens.cpp:406: error: invalid conversion fromint
()(World, void_)' to bool (_)(World_, void_)' MacUGens.cpp:406: error: invalid conversion fromint
()(World, void*)' tobool (_)(World_, void_)' MacUGens.cpp:406: error: invalid conversion fromint
()(World, void_)' to bool (*)(World*, void*)' make[3]: *** [MacUGens.lo] Error 1 make[3]: Leaving directory/home/marco/src/SuperCollider3/source/plugins'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
/home/marco/src/SuperCollider3/source' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory/home/marco/src/SuperCollider3'
make: *** [all-recursive-am] Error 2

s_new and synthdef names with hyphen under linux not working

[Issue migrated from SourceForge | ID: 1259873 | Submitted by 'yeeking']
[http://sourceforge.net/support/tracker.php?aid=1259873]

Running late July 2005 CVS supercollider under Debian
GNU/Linux i686

When running the example code found in
Non-Realtime-Synthesis.rtf, i.e.:

c = [ 0.2, [\s_new, \NRT-sine, 1001, 0, 0]].asRawOSC;

I get the error:

ERROR: Variable 'sine' not defined.
in file 'selected text'
line 1 char 29 :

c = [ 0.2, [\s_new, \NRT-sine¥, 1001, 0, 0]].asRawOSC;

If i edit the code to:

c = [ 0.2, [\s_new, "NRT-sine", 1001, 0, 0]].asRawOSC;

It executes fine.

tiny doc bug

[Issue migrated from SourceForge | ID: 1637723 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=1637723]

I just installed the latest binary build available from Weslyan. While reading through 'First Steps.rtf', I've come to the part of the page where it describes how to bring the post window to top using a key chord.

After correctly describing the key chord as the apple key plus a '' character, the next sentence incorrectly says that this is often referred to as "Cmd-/" when it should say "Cmd-".

Yes, I know, this is incredibly minor, but that means it's also incredibly easy to fix. :-)

SCView.sc

[Issue migrated from SourceForge | ID: 572165 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=572165]

typo in SCView.sc

SCView
getPropertyList {
this.properties.collect({ arg name;
[name, this.perform(name)]
});
}

doesn't return
should be ^this.properties.collect ...

Incorrect input/output device display on bootup

[Issue migrated from SourceForge | ID: 1815773 | Submitted by 'jamshark70']
[http://sourceforge.net/support/tracker.php?aid=1815773]

scsynth prints the output properties for the input device, and the input properties for the output device.

The ultralite has a 2-ch main out, 8 individual outs, headphones and SPDIF. So the output under "input device" looks like the output.

"MOTU UltraLite" Input Device
Streams: 4
0 channels 2
1 channels 8
2 channels 2
3 channels 2

"MOTU UltraLite" Output Device
Streams: 3
0 channels 8
1 channels 2
2 channels 2

And look what happens if I switch to "built-in mic" for input. "Built-in Microphone" has no output capability, hence 0 streams. But it should have a stream for input!

"Built-in Microphone" Input Device
Streams: 0

"Built-in Microphone" Output Device
Streams: 3
0 channels 8
1 channels 2
2 channels 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.