Skip to content

Commit

Permalink
sc3.9.1 build
Browse files Browse the repository at this point in the history
  • Loading branch information
redFrik committed Feb 19, 2018
1 parent a746ada commit 7e9b44e
Show file tree
Hide file tree
Showing 19 changed files with 343 additions and 1,243 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# supercolliderStandaloneRPI2
Standalone for Raspberry Pi 2 or 3 with Raspbian Stretch including the full IDE.

This is the audio synthesis program [SuperCollider](http://github.com/supercollider/supercollider) (3.9.0, commit 8567e7e, 16jan2018) + [sc3-plugins](https://github.com/supercollider/sc3-plugins) (master, commit aa606ed, 5nov2017) compiled for rpi2 and rpi3.
This is the audio synthesis program [SuperCollider](http://github.com/supercollider/supercollider) (3.9.1, commit f15598c, 9feb2018) + [sc3-plugins](https://github.com/supercollider/sc3-plugins) (master, commit 9307b41, 2feb2018) compiled for rpi2 and rpi3.

It was built using [this guide](http://supercollider.github.io/development/building-raspberrypi.html) on a **Raspberry Pi 3** under [2017-11-29-raspbian-stretch](http://raspberrypi.org/downloads/raspbian/) (Raspbian Stretch with Desktop). It also works on the **Raspberry Pi 2**.
For **Raspberry Pi 1** and **Raspberry Pi Zero** use [this repository](https://github.com/redFrik/supercolliderStandaloneRPI1).
Expand Down Expand Up @@ -49,7 +49,7 @@ KNOWN ISSUES:
jack
--

If you start SuperCollider without having Jack already running (like when autostarting or running headless), Jack will automatically launch when you boot sc server. the audio settings then used are found in the file...
If you start SuperCollider without having Jack already running (like when autostarting or running headless), Jack will automatically launch when you boot sc server. The audio settings then used are found in the file...

* `nano ~/.jackdrc`

Expand Down
Binary file modified plugins/JoshPVUGens.so
Binary file not shown.
Binary file modified plugins/ML_UGens.so
Binary file not shown.
Binary file modified plugins/OscUGens.so
Binary file not shown.
Binary file modified plugins/VBAP.so
Binary file not shown.
Binary file modified scide
Binary file not shown.
Binary file modified sclang
Binary file not shown.
Binary file modified scsynth
Binary file not shown.
1,112 changes: 70 additions & 1,042 deletions share/system/CHANGELOG.md

Large diffs are not rendered by default.

191 changes: 111 additions & 80 deletions share/system/HelpSource/Classes/UnitTest.schelp
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,31 @@ code::
UnitTest.gui
::

METHOD:: runTest
Run a single test for methodName.
METHOD:: run
Run all methods whose names begin with code::test_::.

ARGUMENT:: methodName
Should have the format code::"TestPolyPlayerPool:test_prepareChildrenToBundle"::
code::
TestUnitTest.new.run;
::

ARGUMENT:: reset
If code::true::, first runs link::#*reset:: on the class.

ARGUMENT:: report
If code::true::, outputs the test results.

METHOD:: runTest
Run a single test method.

code::
UnitTest.reset;
UnitTest.runTest("TestUnitTest:test_assert");
::

ARGUMENT:: methodName
A link::Classes/String:: referring to the class and test method
within it, e.g. code::"TestPolyPlayerPool:test_prepareChildrenToBundle"::.


METHOD:: runAll
runs all subclasses of UnitTest
Expand All @@ -47,133 +61,135 @@ UnitTest.runAll;
::


METHOD:: runTestClassForClass
runs testclass for a class

ARGUMENT:: class
the class

ARGUMENT:: reset
reset UnitTest environment

ARGUMENT:: report
report on pass/fail






INSTANCEMETHODS::

METHOD:: run
All method names that start with test_ are invoked.

ARGUMENT:: reset
(describe argument here)

ARGUMENT:: report
(describe argument here)

returns:: (describe returnvalue here)
METHOD:: runTestMethod
Run a single test method of this class

code::
TestUnitTest.new.run;
TestUnitTest.new.runTestMethod(TestUnitTest.findMethod(\test_assert));
::

ARGUMENT:: method
the method to run

returns:: (describe returnvalue here)

PRIVATE:: s, run, findTestMethods, setUp, tearDown


METHOD:: runTestMethod
Run a single test method of this class
METHOD:: assert

ARGUMENT:: method
the method to run
Asserts that an expression must be true.

code::
TestUnitTest.new.runTestMethod(TestUnitTest.findMethod(\test_assert));
this.assert(2 == 2, "passes");
this.assert(2 == 2.00001, "fails");
::

returns:: (describe returnvalue here)
argument:: boolean
A boolean, where code::true:: means that the test is passed.

PRIVATE:: assert, assertArrayFloatEquals, asynchAssert, tearDown, setUp, assertEquals, failed, passed, assertFloatEquals, s, ifAsserts, findTestMethods, wait, bootServer
argument:: message
A message describing the purpose of the assertion, e.g. code::"foo
should be less than bar"::.
Posted if code::report:: is true.

argument:: report
Reports the result of the test if code::true::.

SECTION:: Writing tests by subclassing UnitTest
argument:: onFailure
If not code::nil::, a failure stops the tests and evaluates this function.

code::
YourClass.test
::
Runs the test class for code::YourClass::, which is assumed to be named code::TestYourClass::.
METHOD:: assertEquals

If no test class if found it politely declines.
Asserts that an expression code::a:: is equal to the value code::b::,
where equality is determined according to code::a::'s implementation
of code::==::.

note::
UnitTests for the Common library classes are kept in the CommonTests quark. This enables you to easily install and uninstall these tests.
code::
this.assertEquals(2 + 2, 4, "passes");
this.assertEquals(2 + 2, 5, "fails");
::

argument:: a
the experimentally produced value

Make sure to implement the methods code::setUp:: and code::tearDown::. They will be called before and after the test.

METHOD:: assert

argument:: test
Make sure that this returns a boolean, where code::true:: means that the test is passed.
argument:: b
the expected value

argument:: message
posted if report is true.
A message describing the purpose of the assertion, e.g.
code::"Adding two numbers should return their sum."::.
Posted if code::report:: is true.

argument:: report
Reports the result of the test if code::true:: (default is code::true::)

argument:: onFailure
If not code::nil::, a failure stops the tests and evaluates this function.

code::
UnitTest.new.assert(2 == 2, "Two does equal two.");
UnitTest.new.assert(2 == 2.00001, "Two does equal two.");
::

METHOD:: assertFloatEquals

Make sure that the two floats code::a:: and code::b:: equal within a given range (code::within::).
Asserts that an expression code::a:: returning a float is within a
given range (code::within::) of being equal to code::b::.

code::
this.assertFloatEquals(2, 2.0001, "Pass since 2 is close enough to 2.0001.", 0.001);
this.assertFloatEquals(2, 2.0001, "Fail since 2 isn't close enough to 2.0001.", 0.0001);
::

argument:: a
a float
the experimentally produced float value

argument:: b
a float
the expected float value

argument:: message
posted if report is true.
A message describing the purpose of the assertion, e.g.
code::"Adding two numbers should return their sum."::.
Posted if code::report:: is true.

argument:: within
The range within which code::a:: must be of code::b:: in
order for the test to pass.

argument:: report
Reports the result of the test if code::true:: (default is code::true::)

argument:: onFailure
If not code::nil::, a failure stops the tests and evaluates this function.


METHOD:: assertArrayFloatEquals
Make sure that the two arrays of floats code::a:: and code::b:: equal within a given range (code::within::).

code::
UnitTest.new.assertFloatEquals(2, 2.00001, "Two does equal two.", 0.00001);
UnitTest.new.assertFloatEquals(2, 2.001, "Two does equal two.", 0.0001);
this.assertArrayFloatEquals([2, 3] + 0.0001, [2, 3], "Pass since pairs of floats are close enough", 0.001);
this.assertArrayFloatEquals([2, 3.0001], [2, 3], "Fail since pairs of floats aren't both close enough", 0.0001);
::

method:: assertArrayFloatEquals
Make sure that the two arrays of floats code::a:: and code::b:: equal within a given range (code::within::).

argument:: a
an code::Array:: of floats
the experimentally produced value, which is an code::Array:: of floats

argument:: b
an code::Array:: of floats
the code::Array:: of float values expected

argument:: message
posted if report is true.
A message describing the purpose of the assertion, e.g.
code::"Arrays foo and bar should be equal."::.
Posted if code::report:: is true.

argument:: within
The range within which each item of code::a:: must be of the
corresponding item in code::b:: in order for the test to pass.

argument:: report
Reports the result of the test if code::true:: (default is code::true::)

argument:: onFailure
If not code::nil::, a failure stops the tests and evaluates this function.

code::
UnitTest.new.assertArrayFloatEquals([2, 3], [2, 3] + 0.00001, "Same Floats", 0.000001);
::

METHOD:: ifAsserts
Make a further assertion only if it passed, or only if it failed.
Expand Down Expand Up @@ -210,14 +226,31 @@ code::
)
::

METHOD:: passed
Register a passed test.

code::
this.passed(message: "this passed");
::

METHOD:: failed
call failure directly.
Register a test failure.

code::
UnitTest.new.passed(message: "this passed");
this.failed(message: "this failed");
::

SUBSECTION:: UnitTest (sub)class example.
EXAMPLES::

Write tests by subclassing UnitTest, and defining methods whose names
begins code::test_::. Each test method will be called from a fresh
instance of the subclass.

If you implement the methods code::setUp:: and code::tearDown:: in
your test class, they will be called before and after every test.
This can help to eliminate repetitive code, and makes it easier to
maintain your tests by ensuring that they all run under the same set
of conditions.

code::
TestYourClass : UnitTest {
Expand All @@ -229,9 +262,7 @@ TestYourClass : UnitTest {
}

test_yourMethod {

// every method named test_
// will be run
// every method whose name begins with "test_" will be run

this.assert( 6 == 6, "6 should equal 6");

Expand Down
3 changes: 2 additions & 1 deletion share/system/HelpSource/Classes/Unpack1FFT.schelp
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,11 @@ code::
(
{
var sig, chain, stream, windowStarts, demand;
var fftsize = 1024;

sig = SinOsc.ar(LFDNoise3.kr(LFNoise0.kr(1) * 40 + 60) * 700 + 800);

chain = FFT(LocalBuf(1024), sig);
chain = FFT(LocalBuf(fftsize), sig);
stream = Unpack1FFT(chain, bufsize: fftsize, binindex: 0, whichmeasure: 0);

// each time an FFT window starts, the unpacker returns a new value
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ list::
This document describes SynthDef2's format. See link::#Original SynthDef format:: for the differences between SynthDef and SynthDef2.

section:: Basic types
All data is stored big endian. All data is packed, not padded or aligned.
All data is stored big endian. All integers, unless otherwise noted, are signed. All data is packed, not padded or aligned.
definitionlist::
## int32 || a 32 bit integer.
## int16 || a 16 bit integer.
## int8 || an 8 bit integer.
## float32 || a 32 bit IEEE floating point number.
## pstring || a pascal format string: a byte giving the length followed by that many bytes.
## pstring || a pascal format string: a byte (an strong::unsigned:: int8) giving the length followed by that many bytes.
::

section:: File Format
Expand Down
Loading

0 comments on commit 7e9b44e

Please sign in to comment.