Git Product home page Git Product logo

supercollider / sc3-plugins Goto Github PK

View Code? Open in Web Editor NEW
446.0 48.0 121.0 17.55 MB

Community plugins for SuperCollider

Home Page: https://supercollider.github.io/sc3-plugins/

License: GNU General Public License v2.0

CMake 0.17% SuperCollider 2.69% C++ 72.38% C 23.07% HTML 1.39% Haskell 0.01% Processing 0.02% Makefile 0.01% XSLT 0.02% MATLAB 0.03% Shell 0.02% Lua 0.02% Ruby 0.01% Hack 0.01% Faust 0.14% SCSS 0.01%
supercollider ugens audio audio-engine sound-effects sound sound-synthesis-processes

sc3-plugins's Introduction

sc3-plugins

This repository contains the community collection of unit generator plugins for SuperCollider. An installation extends the functionality of SuperCollider by additional UGens that run on scsynth, the SuperCollider audio synthesis server.

Please note that the UGens in this repository are, on average, less stable and well-maintained than the core collection. Use at your own risk!

Note: Extensions for the SuperCollider programming language are different. They are collected within the Quarks packaging system.

To learn how to write your own plugins, see example-plugins and the "Writing UGens" helpfile.

For community discussion and support see the SuperCollider mailing lists and the github issue tracker.

Installation

Releases are available from the GitHub release page. For older versions (2013), see the Sourceforge project page.

Unzip the release and move it to your SuperCollider extensions folder. You can find it by evaluating

Platform.userExtensionDir

in SuperCollider. To evaluate code in SuperCollder, put your cursor on the line of code and press Cmd+Enter (macOS) or Ctrl+Enter. Alternatively, you may install the extensions system-wide by copying to

Platform.systemExtensionDir

The folder might not exist, so you may need to create it yourself. You can do this in your operating system's file explorer or from within SuperCollider by evaluating:

File.mkdir(Platform.userExtensionDir)

On some operating systems, these directories may be hard to find because they're in hidden folders. You can open the user app support directory (where the Extensions folder is) with the menu item "File->Open user support directory". On macOS, you can open a finder window and press Cmd+Shift+G and enter the name of the directory.

Compile from source

Download both the SuperCollider source and the source for this repository:

git clone --recursive https://github.com/supercollider/sc3-plugins.git
git clone --recursive https://github.com/supercollider/supercollider.git

Be sure to use --recursive, or to initialize the submodules after cloning, otherwise you will not have files that are necessary to build the project.

Like SuperCollider, sc3-plugins uses cmake. Execute the following commands in the directory where you cloned sc3-plugins; replace /path/to/sc/ with the path to the SuperCollider source directory. That will probably be ../../supercollider if you cloned both repositories in the same working directory.

cd sc3-plugins
mkdir build && cd build
# for both scsynth and supernova plugins; set -DSUPERNOVA=OFF to build only scsynth plugins
cmake -DSC_PATH=/path/to/sc/ -DCMAKE_BUILD_TYPE=Release -DSUPERNOVA=ON ..
cmake --build . --config Release
# to install the plugins - note: linux users likely need sudo
cmake --build . --config Release --target install

If no SC_PATH is provided the build system assumes the SuperCollider include files are in /usr/include/SuperCollider/.

On macOS, the plugins will end up in sc3-plugins/build/SC3plugins. Copy the SC3plugins folder to your Extensions folder (evaluate Platform.userExtensionDir in SuperCollider to find it).

NOTE: on macOS, if you want to install into CMAKE_INSTALL_PREFIX, you have to specify it by disabling the IN_PLACE_BUILD cmake option which defaults to ON (see below).

Note for SuperCollider < 3.9.1 The Supernova server on macOS and Windows incorrectly searches for plugins in the /Extensions/plugins directory. The scsynth server correctly searches for plugins in /Extensions. If Supernova is unable to find the sc3-plugins, make sure that they are located in /Extensions/plugins.

See the README in source/HOAUGens for information on compiling the HOAUGens (higher-order ambisonics) subproject.

CMake Options

  • Set install target
    • (default on linux /usr/local)
    • cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
  • Install in cmake build folder instead of CMAKE_INSTALL_PREFIX
    • (macOS ONLY, default=ON)
    • cmake -DIN_PLACE_BUILD=ON
  • Build the plugins as quarks
    • (default=OFF)
    • cmake -DQUARKS=ON ..
  • Build supernova-plugins
    • (default=OFF)
    • cmake -DSUPERNOVA=ON ..
  • Build Ladspa UGen
    • (macOS AND LINUX ONLY, default=ON)
    • sc3-plugins/build/$ cmake -DLADSPA=ON ..
  • Install libraries in suffixed lib directory (eg. lib64)
    • (64-BIT LINUX ONLY)
    • cmake -DLIB_SUFFIX=64
  • Print all cmake options
    • sc3-plugins/build/$ cmake -L ..

Troubleshooting

Known issues

On some Linux distributions it has been reported that Ladspa UGen could prevent SuperCollider server from booting (sc3-plugins/#210, sc3-plugins/#23 and supercollider/#4421). See above how to build sc3-plugins without Ladspa if needed.

Build errors

If you get an error while building that files are missing, it probably means that you didn't clone all the SuperCollider submodules. Fix this by running git submodule update --init in the SuperCollider source directory. If you still have the issue afterwards, try clearing your build directory and starting your build from scratch.

Starting over

If something went wrong and you want to start from scratch, delete everything in the build directory that you made:

make uninstall # only if you ran `make install` before
cd ..
rm -r build

Adding plugins to the repository

A SuperCollider plugin is a collection of UGens (and their supporting files) with a shared prefix in their name. If you add a new plugin, please keep to the following pattern:

  1. Add a folder in the source directory named <prefix>UGens where prefix means whichever standard pattern in the file name you have for your UGens. All source files go into this directory and its subdirectories.
  2. SuperCollider-specific files (.sc|.schelp|...) should be located in a subdirectory named sc.
  3. If your plugin makes use of external libraries that should be part of the sc-plugins sources (e.g. via git-submodule), add them to sc3-plugins/external_libraries/. As an example, the GlitchUGens plugin directory lists as:
    • source/GlitchUGens/GlitchUGens.cpp
    • source/GlitchUGens/sc/GlitchUGens.sc
    • source/GlitchUGens/sc/HelpSource/Classes/GlitchBPF.schelp
    • source/GlitchUGens/sc/HelpSource/Classes/GlitchBRF.schelp
    • source/GlitchUGens/sc/HelpSource/Classes/GlitchHPF.schelp
    • source/GlitchUGens/sc/HelpSource/Classes/GlitchRHPF.schelp
  4. Add your folder to the PLUGIN_DIRS list in sc3-plugins/source/CMakeLists.txt.
  5. For the Quark-installable option, there is a SuperCollider script called Generate_Quark.scd in sc3-plugins/quarks/. Evaluating it indexes the base directory of the extensions for each UGen, and Help-file in each plugin directory. It then creates a help file for your plugin that lists all classes and help files, as well as a .quark file for your plugin in the build/DIRECTORY folder.

Packaging

How to create a DiskImage (OSX)

To create an OSX DiskImage, follow these steps on an OSX machine:

mkdir build && cd build
cmake -DSC_PATH=/path/to/sc/ -DOSX_PACKAGE=1 ..
make && make install

The DiskImage will be generated in ./sc3-plugins/build/build_osx containing

  • a License.txt,
  • this README.txt, and
  • the SC3plugins folder.
  • Note: the quarks DIRECTORY-folder is also included by default.

How to create a tarball/zip-file

mkdir build && cd build
cmake -DSC_PATH=/path/to/sc/ ..
cpack -G TGZ # `-G ZIP` also works

The package will end up in sc3-plugins/build.

List of plugins

In addition to the plugins listed below, this project contains several FAUST-generated UGens for higher-order ambisonics ("HOAUGens"), which are not built by default. See the README in source/HOAUGens for more information.

An auto-generated list of what plugins are available in this repository, linking to the autogenerated helpfiles:

sc3-plugins's People

Contributors

bagong avatar crucialfelix avatar danstowell avatar dependabot[bot] avatar dotinspace avatar dvzrv avatar dyfer avatar florian-grond avatar gusano avatar hzulla avatar jleben avatar jngpng avatar joshpar avatar joslloand avatar kisielk avatar lfsaw avatar lijon avatar llloret avatar mossheim avatar mtmccrea avatar patrickdupuis avatar redfrik avatar scztt avatar sicklincoln avatar sonoro1234 avatar tdug avatar telephon avatar timblechmann avatar yurivict avatar yvol avatar

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

sc3-plugins's Issues

Remove LADSPA UGen output

Every time a LADSPA plugin is loaded with the LADSPA UGen, it prints out information like this:

LADSPA: Found plugin 2159 (TAP Chorus/Flanger)
IN 2: Frequency [Hz] [control]
IN 3: L/R Phase Shift [deg] [control]
IN 4: Depth [%] [control]
IN 5: Delay [ms] [control]
IN 6: Contour [Hz] [control]
IN 7: Dry Level [dB] [control]
IN 8: Wet Level [dB] [control]
IN 9: Input_L [audio]
IN 10: Input_R [audio]
OUT 0: Output_L [audio]
OUT 1: Output_R [audio]

This isn't a huge issue when you're just using a LADSPA plugin in an effect synth, but if you're using it in a synth that's triggered very often, it quickly fills up the PostBuffer with this output, sometimes making it very difficult to see much more important information. I think this output should be removed completely, since all of it can be accessed if necessary with the LADSPA.listPlugins method so there's really no need to print it every time a plugin is initialized.

StkInst compile fail on ARM (BeagleBone Black), blocks build

If I try to build sc3-plugins on BeagleBone Black (platform is based on ARM Cortex A8), the cmake fails with:

...
-- Building plugins for SuperCollider version: 3.7alpha1
-- local_sources: 
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - not found
-- Looking for stdint.h
-- Looking for stdint.h - not found
-- Looking for stddef.h
-- Looking for stddef.h - not found
-- Check size of unsigned short
-- Check size of unsigned short - failed
-- Check size of unsigned int
-- Check size of unsigned int - failed
-- Check size of unsigned long
-- Check size of unsigned long - failed
CMake Error at /usr/share/cmake-2.8/Modules/TestBigEndian.cmake:44 (message):
  no suitable type found
Call Stack (most recent call first):
  source/StkInst/CMakeLists.txt:50 (TEST_BIG_ENDIAN)


-- Configuring incomplete, errors occurred!

So, this is "caused" by the new StkInst STK wrapper by @sonoro1234. But the eventual cause seems to be that cmake, on this ARM platform, can't successfully complete the TEST_BIG_ENDIAN operation. I've checked the very latest (3.4.1) cmake source code and I don't think their TEST_BIG_ENDIAN has changed to address this, so I think at present we're stuck: the project simply can't build, because it chokes when configuring stk, and there's no option to deactivate it.

If I comment out the test (but since the ARM is little-endian I enable the flag that the test is supposed to decide about) then cmake configures happily.

Possible solutions: detect the arm platform ourselves; or add a flag to turn off building with stk if needed.

System info:

  • Linux arm 3.8.13xenomai-bone41 #2 Wed Mar 26 11:41:31 GMT 2014 armv7l GNU/Linux
  • cmake version 2.8.11.1

BhobUGens seem not to build with latest XCode (Apple LLVM 51.1/clang 503)

I get this error:

Scanning dependencies of target BhobFilt
[ 11%] Building CXX object source/CMakeFiles/BhobFilt.dir/BhobUGens/BhobFilt.cpp.o
Stack dump:
0. Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -cc1 -triple x86_64-apple-macosx10.8.0 -emit-obj -disable-free -disable-llvm-verifier -main-file-name BhobFilt.cpp -mrelocation-model pic -pic-level 2 -mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 236.3 -coverage-file /Users/rainer/Projects/sc3-plugins/build/source/CMakeFiles/BhobFilt.dir/BhobUGens/BhobFilt.cpp.o -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/5.1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -D BhobFilt_EXPORTS -D NOVA_SIMD -D NDEBUG -I /Users/rainer/Projects/sc3-plugins/source/libs/nova-simd -I /Users/rainer/Projects/supercollider/source/external_libraries/nova-tt -I /Users/rainer/Projects/supercollider/source/external_libraries/boost -I /Users/rainer/Projects/supercollider/source/external_libraries/boost_lockfree -I /Users/rainer/Projects/supercollider/source/external_libraries/boost-lockfree -I /Users/rainer/Projects/sc3-plugins/source/include -I /Users/rainer/Projects/sc3-plugins/source/source/scfft_old -I /Users/rainer/Projects/supercollider/source/common -I /Users/rainer/Projects/supercollider/source/plugin_interface -I /Users/rainer/Projects/supercollider/source/include/plugin_interface -I /Users/rainer/Projects/supercollider/source/include/common -I /Users/rainer/Projects/supercollider/source/server/plugins -I /Users/rainer/Projects/supercollider/source/common/Headers/plugin_interface -I /Users/rainer/Projects/supercollider/source/common/Headers/common -I /Users/rainer/Projects/supercollider/source/common/Source/plugins -I /Users/rainer/Projects/supercollider/source/external_libraries/libsndfile -I /Users/rainer/Projects/sc3-plugins/source/source/DEINDUGens/include -I /Users/rainer/Projects/sc3-plugins/source/source/StkUGens/stk-4.4.2 -I /Users/rainer/Projects/sc3-plugins/source/source/StkUGens/stk-4.4.2/include -I /Users/rainer/Projects/sc3-plugins/source/source/StkUGens/stk-4.4.2/src/include -I /Users/rainer/Projects/sc3-plugins/source/source/AYUGens/AY_libayemu/include -O3 -fdeprecated-macro -fdebug-compilation-dir /Users/rainer/Projects/sc3-plugins/build/source -ferror-limit 19 -fmessage-length 166 -fvisibility hidden -stack-protector 1 -mstackrealign -fblocks -fobjc-runtime=macosx-10.8.0 -fencode-extended-block-signature -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o CMakeFiles/BhobFilt.dir/BhobUGens/BhobFilt.cpp.o -x c++ /Users/rainer/Projects/sc3-plugins/source/source/BhobUGens/BhobFilt.cpp

  1. parser at end of file
  2. Per-module optimization passes
  3. Running pass 'CallGraph Pass Manager' on module '/Users/rainer/Projects/sc3-plugins/source/source/BhobUGens/BhobFilt.cpp'.
  4. Running pass 'SLP Vectorizer' on function '@MultiFilt_next_kk'
    clang: error: unable to execute command: Segmentation fault: 11
    clang: error: clang frontend command failed due to signal (use -v to see invocation)
    Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
    Target: x86_64-apple-darwin13.3.0
    Thread model: posix
    clang: note: diagnostic msg: PLEASE submit a bug report to http://developer.apple.com/bugreporter/ and include the crash backtrace, preprocessed source, and associated run script.
    clang: note: diagnostic msg:

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /var/folders/_g/_dwznr9970dg4blsgq42fbtc0000gn/T/BhobFilt-807c40.cpp
clang: note: diagnostic msg: /var/folders/_g/_dwznr9970dg4blsgq42fbtc0000gn/T/BhobFilt-807c40.sh
clang: note: diagnostic msg:


make[2]: *** [source/CMakeFiles/BhobFilt.dir/BhobUGens/BhobFilt.cpp.o] Error 254
make[1]: *** [source/CMakeFiles/BhobFilt.dir/all] Error 2
make: *** [all] Error 2

StkInst and libstk undefined symbol in Ubuntu

I was running the server without problems, and suddenly after a server reboot I have this message and the server wont start

*** ERROR: dlopen '/usr/lib/SuperCollider/plugins/StkInst.so' err '/usr/lib/x86_64-linux-gnu/libstk.so.0: undefined symbol: _ZN7RtAudio10openStreamEPNS_16StreamParametersES1_mjPjPFiPvS3_jdjS3_ES3_PNS_13StreamOptionsEPFvN7RtError4TypeERKSsE'

Any clues? libstk was installed from the ubuntu package

GVerb glitch

compare:


{GVerb.ar(Dust.ar(5), SinOsc.kr(0.3, 0.5pi).range(10, 14), drylevel:0)}.play

{GVerb.ar(Dust.ar(5), SinOsc.kr(0.3).range(10, 14), drylevel:0)}.play

The second has a major glitch, while the first is perfectly smooth.

Null pointer checks after allocating memory

Quoting @timblechmann at supercollider/supercollider#782:

many plugins don't perform null pointer checks to ensure that rt memory allocation actually succeeds. instead of a nice error message, the effect is usually a server crash

We may need a few people to split the work up of identifying these UGens (I'll volunteer to be one!). This actually is important work: server crash under high memory use is no good.

Licensing question: ATK

Hi,

packaging sc3-plugins for Debian is chugging along.

Now, we need to clarify all licensing issues, hooray!

There is an unclear section in the ATK Readme file:

The filter kernels distributed with the Ambisonic Toolkit are licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License and are copyright the Ambisonic Toolkit Community and Joseph Anderson, 2011.

However, I am not sure how to interpret this, since I did not find filter kernels distributed within the sc3-plugins git tree, only code to read and convert soundfield kernel files in sc/Classes/. Is this a copied boilerplate license from the original ATK that doesn't fully apply to the UGen plugin?

Please advise. Thanks.

Documentation in wrong categories?

It seems for a lot of the extensions the documentation is not categorized according to the hierarchy set up by the base SC distribution.

For example, a lot of the base distribution generator UGens are in UGens > Generators, eg: UGens > Generators > PhysicalModels.

However a whole bunch of the extensions place their help files into UGens > PhysicalModels. This makes it harder to browse the help system when looking for UGens in a particular class, or other UGens similar to one the user already knows. I feel like they should be consolidated in to either location.

Typos in the code

When running the codespell tool on the source code, several typos are reported:

./source/NCAnalysisUGens/SMS.cpp:179: auxilliary ==> auxiliary
./source/NCAnalysisUGens/sc/help/TPV.html:120: threshhold ==> threshold
./source/NCAnalysisUGens/sc/help/TPV.html:124: threshhold ==> threshold
./source/NCAnalysisUGens/sc/help/TPV.html:125: threshhold ==> threshold
./source/NCAnalysisUGens/sc/help/LPCAnalyzer.html:28: modeled ==> modelled
./source/NCAnalysisUGens/sc/help/SMS.html:30: modeled ==> modelled
./source/NCAnalysisUGens/sc/HelpSource/Classes/SMS.schelp:8: modeled ==> modelled
./source/NCAnalysisUGens/sc/HelpSource/Classes/TPV.schelp:120: threshhold ==> threshold
./source/NCAnalysisUGens/sc/HelpSource/Classes/TPV.schelp:124: threshhold ==> threshold
./source/NCAnalysisUGens/sc/HelpSource/Classes/TPV.schelp:125: threshhold ==> threshold
./source/NCAnalysisUGens/sc/HelpSource/Classes/LPCAnalyzer.schelp:8: modeled ==> modelled
./source/PitchDetection/Tartini.cpp:573: negitive ==> negative
./source/PitchDetection/Tartini.cpp:574: negitive ==> negative
./source/PitchDetection/Qitch.cpp:226: unecessary ==> unnecessary
./source/PitchDetection/Qitch.cpp:448: unecessary ==> unnecessary
WARNING: Binary file: ./source/PitchDetection/sc/extraqitchfiles/QspeckernN4096SR48000.wav
WARNING: Binary file: ./source/PitchDetection/sc/extraqitchfiles/QspeckernN4096SR44100.wav
WARNING: Binary file: ./source/PitchDetection/sc/extraqitchfiles/QspeckernN2048SR48000.wav
WARNING: Binary file: ./source/PitchDetection/sc/extraqitchfiles/QspeckernN2048SR44100.wav
WARNING: Binary file: ./source/PitchDetection/sc/extraqitchfiles/QspeckernN8192SR44100.wav
WARNING: Binary file: ./source/PitchDetection/sc/extraqitchfiles/QspeckernN1024SR44100.wav
./source/PitchDetection/sc/help/Qitch.html:44: auxilliary ==> auxiliary
./source/PitchDetection/sc/HelpSource/Classes/Qitch.schelp:12: auxilliary ==> auxiliary
./source/LoopBufUGens/sc/classes/LJP Classes/ProbabilityDistributions.sc:55: occurance ==> occurrence
./source/LoopBufUGens/sc/classes/LJP Classes/ProbabilityDistributions.sc:138: occurance ==> occurrence
WARNING: Decoding file ./source/LoopBufUGens/sc/classes/LJP Classes/Extensions/tuningScale.sc
WARNING: using encoding=utf-8 failed.
WARNING: Trying next encoding: utf-8
./source/BetablockerUGens/BetablockerUGens.cpp:157: adress ==> address
./source/BetablockerUGens/sc/BBlockerProgram.sc:135: adress ==> address
./source/TagSystemUGens/TagSystemUgens.cpp:7: Sytem ==> System
./source/TagSystemUGens/sc/Help/Dtag.htm:257: whith ==> with
./source/TagSystemUGens/sc/HelpSource/Classes/Dtag.schelp:136: whith ==> with
./source/BBCut2UGens/sc/AutoTrack.html:38: maneouvres ==> manoeuvres
./source/BBCut2UGens/sc/HelpSource/Classes/AutoTrack.schelp:23: maneouvres ==> manoeuvres
./source/AntiAliasingOscillators/sc/Help/BlitB3Tri.html:38: vengence ==> vengeance
./source/AntiAliasingOscillators/sc/HelpSource/Classes/BlitB3Tri.schelp:27: vengence ==> vengeance
./source/RMEQSuiteUGens/sc/Spreader.html:31: Thta ==> That
WARNING: Decoding file ./source/ATK/sc/README_RECORDINGS
WARNING: using encoding=utf-8 failed.
WARNING: Trying next encoding: utf-8
./source/ATK/sc/Classes/ATK.sc:124: nto ==> not | disable due to \n
WARNING: Binary file: ./source/ATK/sc/HelpSource/Guides/atknetwork.png
WARNING: Binary file: ./source/ATK/sc/HelpSource/Guides/atk-network.pdf
./source/ATK/sc/HelpSource/Guides/Intro-to-the-ATK.schelp:270: choosen ==> chosen
./source/ATK/sc/HelpSource/Guides/Intro-to-the-ATK.schelp:330: choosen ==> chosen
WARNING: Binary file: ./source/ATK/sc/HelpSource/Classes/direct_y_fig.png
WARNING: Binary file: ./source/ATK/sc/HelpSource/Classes/dominance_fig.png
./source/ATK/sc/HelpSource/Classes/FoaXform.schelp:34: tranform ==> transform
./source/ATK/sc/HelpSource/Classes/FoaXform.schelp:42: definining ==> defining
WARNING: Binary file: ./source/ATK/sc/HelpSource/Classes/balance_fig.png
./source/ATK/sc/HelpSource/Classes/FoaTransform.schelp:81: tranform ==> transform
./source/ATK/sc/HelpSource/Classes/FoaTransform.schelp:89: definining ==> defining
./source/ATK/sc/HelpSource/Classes/FoaTransform.schelp:100: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaTransform.schelp:178: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaTransform.schelp:257: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaTransform.schelp:337: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaTransform.schelp:447: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaTransform.schelp:553: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaTransform.schelp:640: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaTransform.schelp:729: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaTransform.schelp:815: choosen ==> chosen
WARNING: Binary file: ./source/ATK/sc/HelpSource/Classes/direct_fig.png
WARNING: Binary file: ./source/ATK/sc/HelpSource/Classes/asymmetry_fig.png
WARNING: Binary file: ./source/ATK/sc/HelpSource/Classes/focus_fig.png
./source/ATK/sc/HelpSource/Classes/FoaDecoderMatrix.schelp:273: conjuction ==> conjunction
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:45: definining ==> defining
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:57: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:127: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:201: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:275: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:339: unconvential ==> unconventional
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:343: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:417: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:493: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:570: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:650: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:732: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:818: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:888: choosen ==> chosen
./source/ATK/sc/HelpSource/Classes/FoaEncode.schelp:959: choosen ==> chosen
WARNING: Binary file: ./source/ATK/sc/HelpSource/Classes/zoom_fig.png
WARNING: Binary file: ./source/ATK/sc/HelpSource/Classes/press_fig.png
WARNING: Binary file: ./source/ATK/sc/HelpSource/Classes/push_fig.png
WARNING: Binary file: ./source/ATK/sc/HelpSource/Classes/direct_x_fig.png
WARNING: Binary file: ./source/ATK/sc/HelpSource/Other/ccbysa3_88x31.png
WARNING: Binary file: ./source/ATK/sc/HelpSource/Other/gplv3-88x31.png
./source/AuditoryModeling/AuditoryModelingUGens.cpp:392: bandwith ==> bandwidth
./source/DWGUGens/sc/HelpSource/Classes/DWGBowed.schelp:9: throught ==> thought, through, throughout
./source/DWGUGens/sc/HelpSource/Classes/DWGPlucked.schelp:19: strenght ==> strength
./source/DWGUGens/sc/HelpSource/Classes/DWGPlucked.schelp:19: Betwen ==> Between
./source/DWGUGens/sc/HelpSource/Classes/DWGBowedSimple.schelp:9: throught ==> thought, through, throughout
./source/DWGUGens/sc/HelpSource/Classes/DWGPlucked2.schelp:19: strenght ==> strength
./source/DWGUGens/sc/HelpSource/Classes/DWGPlucked2.schelp:19: Betwen ==> Between
./source/DWGUGens/sc/HelpSource/Classes/DWGBowedTor.schelp:9: throught ==> thought, through, throughout
WARNING: Decoding file ./source/DWGUGens/sc/HelpSource/Classes/DWGPluckedStiff.schelp
WARNING: using encoding=utf-8 failed.
WARNING: Trying next encoding: utf-8
./source/DWGUGens/sc/HelpSource/Classes/DWGPluckedStiff.schelp:9: acording ==> according
./source/DWGUGens/sc/HelpSource/Classes/DWGPluckedStiff.schelp:21: strenght ==> strength
./source/DWGUGens/sc/HelpSource/Classes/DWGPluckedStiff.schelp:21: Betwen ==> Between
./source/MCLDUGens/MCLD_CQ_UGens.cpp.OFF:330: unecessary ==> unnecessary
./source/MCLDUGens/MCLD_CQ_UGens.cpp.OFF:560: unecessary ==> unnecessary
WARNING: Binary file: ./source/MCLDUGens/sc/Help/attachments/Friction/friction1-diaram.png
WARNING: Binary file: ./source/MCLDUGens/sc/HelpSource/Classes/friction1-diagram.png
./source/JoshUGens/JoshUGens.cpp:2546: Emperical ==> Empirical
./source/JoshUGens/JoshUGens.cpp:4273: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4276: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4279: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4286: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4289: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4296: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4299: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4306: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4309: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4324: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4324: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4327: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4334: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4337: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4343: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4362: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4366: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4370: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4375: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4378: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4388: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4421: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4427: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4430: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4436: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4439: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4445: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4450: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4464: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4471: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4473: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4475: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4477: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4479: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4481: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4483: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4487: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4489: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4491: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4497: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4499: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4501: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4503: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4515: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4529: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4536: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4538: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4540: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4542: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4544: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4546: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4548: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4552: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4554: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4556: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4562: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4564: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4566: parY ==> party
./source/JoshUGens/JoshUGens.cpp:4568: parY ==> party
./source/JoshUGens/sc/classes/TTendency.sc:3: parY ==> party
./source/JoshUGens/sc/classes/TTendency.sc:4: parY ==> party
./source/JoshUGens/sc/classes/TTendency.sc:7: parY ==> party
./source/JoshUGens/sc/classes/TTendency.sc:8: parY ==> party
./source/JoshUGens/sc/classes/RPlay.sc:42: funtion ==> function
./source/JoshUGens/sc/classes/AmbisonicsSC2.sc:352: absorbtion ==> absorption
./source/JoshUGens/sc/classes/AmbisonicsSC2.sc:364: absorbtion ==> absorption
./source/JoshUGens/sc/classes/TheBFMixer.sc:496: INDEPENDANT ==> INDEPENDENT
./source/JoshUGens/sc/classes/TheBFMixer.sc:946: seperate ==> separate
./source/JoshUGens/sc/classes/Tendency.sc:2: parY ==> party
./source/JoshUGens/sc/classes/Tendency.sc:4: parY ==> party
./source/JoshUGens/sc/classes/Tendency.sc:5: parY ==> party
./source/JoshUGens/sc/classes/Tendency.sc:38: parY ==> party
./source/JoshUGens/sc/classes/Tendency.sc:75: parY ==> party
./source/JoshUGens/sc/classes/Tendency.sc:95: parY ==> party
./source/JoshUGens/sc/classes/Vocoder.sc:2: threshhold ==> threshold
WARNING: Decoding file ./source/JoshUGens/sc/classes/Class Files/BiquadEQ.sc
WARNING: using encoding=utf-8 failed.
WARNING: Trying next encoding: utf-8
./source/JoshUGens/sc/classes/Class Files/CheapVerb.sc:11: seperate ==> separate
./source/JoshUGens/sc/help/LPCSynth.html:36: begining ==> beginning
./source/JoshUGens/sc/help/ProcModR.html:265: interchangable ==> interchangeable
./source/JoshUGens/sc/help/BFMixer.html:31: independant ==> independent
./source/JoshUGens/sc/help/BFMixer.html:35: begining ==> beginning
./source/JoshUGens/sc/help/BFMixer.html:39: begining ==> beginning
./source/JoshUGens/sc/help/BFMixer.html:43: begining ==> beginning
./source/JoshUGens/sc/help/BFMixer.html:51: specfic ==> specific
./source/JoshUGens/sc/help/BFDecode1.html:60: caluclated ==> calculated
./source/JoshUGens/sc/help/ProcMod.html:247: persistant ==> persistent
./source/JoshUGens/sc/help/ProcMod.html:249: persistant ==> persistent
./source/JoshUGens/sc/help/Tendency.html:51: parY ==> party
./source/JoshUGens/sc/help/Tendency.html:55: parY ==> party
./source/JoshUGens/sc/help/Tendency.html:85: parY ==> party
./source/JoshUGens/sc/help/Tendency.html:265: parY ==> party
./source/JoshUGens/sc/help/WarpOverlap.html:32: architechture ==> architecture
./source/JoshUGens/sc/help/WarpZ.html:37: begining ==> beginning
./source/JoshUGens/sc/help/ProcEvents.html:248: persistant ==> persistent
./source/JoshUGens/sc/help/ProcEvents.html:250: persistant ==> persistent
./source/JoshUGens/sc/help/LPCVals.html:36: begining ==> beginning
./source/JoshUGens/sc/help/AtsFile.html:27: tranformed ==> transformed
./source/VBAPUGens/VBAP.cpp:418: transfering ==> transferring
./source/VBAPUGens/sc/HelpSource/Classes/VBAPSpeaker.schelp:30: repectively ==> respectively
./source/OteyPianoUGens/sc/HelpSource/Classes/OteyPiano.schelp:24: Betwen ==> Between
./source/OteyPianoUGens/sc/HelpSource/Classes/OteyPiano.schelp:52: lenght ==> length
./source/OteyPianoUGens/sc/HelpSource/Classes/OteyPiano.schelp:55: lenght ==> length
./source/OteyPianoUGens/sc/HelpSource/Classes/OteyPianoStrings.schelp:23: Betwen ==> Between
./source/OteyPianoUGens/sc/HelpSource/Classes/OteyPianoStrings.schelp:50: lenght ==> length
./source/OteyPianoUGens/sc/HelpSource/Classes/OteyPianoStrings.schelp:53: lenght ==> length
WARNING: Binary file: ./source/Neuromodules/sc/HelpSource/Classes/neuromodule.png
./source/StkUGens/StkAll.cpp:1150: Nickle ==> Nickel
WARNING: Decoding file ./source/AYUGens/AY_libayemu/src/ay8912.c
WARNING: using encoding=utf-8 failed.
WARNING: Trying next encoding: utf-8
./source/AYUGens/AY_libayemu/src/ay8912.c:227: occure ==> occur
./source/AYUGens/AY_libayemu/include/ayemu.h:32: comming ==> coming
./source/SCMIRUGens/SensoryDissonance.cpp:11: auxilliary ==> auxiliary
./source/SLUGens/SLUGens.cpp:1425: compatability ==> compatibility
./source/SLUGens/sc/help/KmeansToBPSet1.html:31: succesive ==> successive
./source/SLUGens/sc/help/KmeansToBPSet1.html:39: inbetween ==> between
./source/SLUGens/sc/help/DoubleWell.html:47: arbitary ==> arbitrary
./source/SLUGens/sc/help/DoubleWell2.html:49: arbitary ==> arbitrary
./source/SLUGens/sc/help/NTube.html:33: inbetween ==> between
./source/SLUGens/sc/help/TwoTube.html:30: inbetween ==> between
./source/SLUGens/sc/HelpSource/Classes/TwoTube.schelp:10: inbetween ==> between
./source/SLUGens/sc/HelpSource/Classes/KmeansToBPSet1.schelp:10: succesive ==> successive
./source/SLUGens/sc/HelpSource/Classes/KmeansToBPSet1.schelp:29: inbetween ==> between
./source/SLUGens/sc/HelpSource/Classes/NTube.schelp:10: inbetween ==> between
./source/SLUGens/sc/HelpSource/Classes/DoubleWell2.schelp:42: arbitary ==> arbitrary
./source/SLUGens/sc/HelpSource/Classes/DoubleWell.schelp:18: arbitary ==> arbitrary
./source/DEINDUGens/JPverbRaw.cpp:1506: Aquire ==> Acquire
./source/DEINDUGens/JPverbRaw.cpp:1511: Aquire ==> Acquire
./source/DEINDUGens/GreyholeRaw.cpp:1240: Aquire ==> Acquire
./source/DEINDUGens/GreyholeRaw.cpp:1245: Aquire ==> Acquire
./source/DEINDUGens/include/faust/audio/alsa-dsp.h:533: detailled ==> detailed
./source/DEINDUGens/faust_src/JPverbRaw.cpp:1506: Aquire ==> Acquire
./source/DEINDUGens/faust_src/JPverbRaw.cpp:1511: Aquire ==> Acquire
./source/DEINDUGens/faust_src/GreyholeRaw.cpp:1240: Aquire ==> Acquire
./source/DEINDUGens/faust_src/GreyholeRaw.cpp:1245: Aquire ==> Acquire
WARNING: Decoding file ./source/DEINDUGens/sc/examples/compar.pdf
WARNING: using encoding=utf-8 failed.
WARNING: Trying next encoding: utf-8
./source/DEINDUGens/sc/examples/compar.pdf:1484: yUo ==> you
WARNING: Binary file: ./source/DEINDUGens/sc/HelpSource/Overviews/DEIND.png
WARNING: Binary file: ./source/DEINDUGens/sc/HelpSource/Overviews/DEIND.jpg
WARNING: Binary file: ./source/DEINDUGens/sc/HelpSource/Classes/JPverb-logo.jpg
WARNING: Binary file: ./source/DEINDUGens/sc/HelpSource/Classes/Greyhole-logo.jpg
WARNING: Binary file: ./source/DEINDUGens/sc/HelpSource/Classes/Greyhole-logo-small.png
WARNING: Binary file: ./source/DEINDUGens/sc/HelpSource/Classes/JPverb-logo-small.png
./external_libraries/TLSF-2.4.6/Changelog:64: minumum ==> minimum
./external_libraries/TLSF-2.4.6/src/tlsf.c:31: minumum ==> minimum

Perhaps you want to fix these?

Requesting new release: 3.7.0-alpha1 piano is out of tune, git head is ok.

Hi there.

The sc3 plugins are being used by Sonic Pi, thanks guys.

m = [
  chord(:A3, :minor),
  chord(:F3, :major),
  chord(:C3, :major),
  chord(:G3, :major)
].ring

live_loop :chords do
  c = m.tick
  use_synth :beep
  play_pattern_timed c, 0.125, release: 0.5
  use_synth :piano
  play_pattern_timed c, 0.125, release: 1
  sleep 1-6*0.125
end

The current sc3 plugins v3.7.0-alpha1 release contains a piano that is out of tune. Here is an example audio file.

When using the current version in git, it's ok, example audio file.

Since a few people are self-compiling the sc3 plugins for their system, it would be beneficial if you could push a 3.7.0-alpha2 release. Thanks!

NoveDiskIO build fail

C:\SupercolliderRepos\plugins2\buildNOVADiskIO>mingw32-make NovaDiskIO
[100%] Building CXX object source/NovaDiskIO/CMakeFiles/NovaDiskIO.dir/NovaDiskIO.cpp.obj
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:39:16: error:
 'BOOST_ATTRIBUTE_NORETURN' does not name a type
 BOOST_NOINLINE BOOST_ATTRIBUTE_NORETURN void throw_exception(const char* func, const char* file, int line, T&&... args)
                ^
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp: In member fun
ction 'void boost::sync::detail::windows::waitable_timer_state::init()':
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: error:
 'throw_exception' is not a member of 'boost::sync::detail'
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp:187:17: note:
in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
                 BOOST_SYNC_DETAIL_THROW(resource_error, (err)("Boost.Sync: unable to allocate a TLS slot"));
                 ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: note:
suggested alternative:
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp:187:17: note:
in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
                 BOOST_SYNC_DETAIL_THROW(resource_error, (err)("Boost.Sync: unable to allocate a TLS slot"));
                 ^
In file included from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/array.hpp:49:0,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/detail/freelist.hpp
:15,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/queue.hpp:21,
                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:39:
C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/throw_exception.hpp:62:46: note:   'boost::throw_e
xception'
 template<class E> BOOST_NORETURN inline void throw_exception( E const & e )
                                              ^
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:46: error
: expected primary-expression before '>' token
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
                                              ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp:187:17: note:
in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
                 BOOST_SYNC_DETAIL_THROW(resource_error, (err)("Boost.Sync: unable to allocate a TLS slot"));
                 ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: error:
 'throw_exception' is not a member of 'boost::sync::detail'
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp:253:13: note:
in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(resource_error, (err)("Boost.Sync: unable to allocate a TLS slot"));
             ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: note:
suggested alternative:
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp:253:13: note:
in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(resource_error, (err)("Boost.Sync: unable to allocate a TLS slot"));
             ^
In file included from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/array.hpp:49:0,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/detail/freelist.hpp
:15,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/queue.hpp:21,
                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:39:
C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/throw_exception.hpp:62:46: note:   'boost::throw_e
xception'
 template<class E> BOOST_NORETURN inline void throw_exception( E const & e )
                                              ^
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:46: error
: expected primary-expression before '>' token
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
                                              ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp:253:13: note:
in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(resource_error, (err)("Boost.Sync: unable to allocate a TLS slot"));
             ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp: In member fun
ction 'boost::sync::detail::windows::waitable_timer_state::thread_local_context* boost::sync::detail::windows::waitable_timer
_state::create_thread_local_context()':
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: error:
 'throw_exception' is not a member of 'boost::sync::detail'
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp:300:9: note: i
n expansion of macro 'BOOST_SYNC_DETAIL_THROW'
         BOOST_SYNC_DETAIL_THROW(resource_error, (err)("Boost.Sync: failed to initialize a waitable timer"));
         ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: note:
suggested alternative:
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp:300:9: note: i
n expansion of macro 'BOOST_SYNC_DETAIL_THROW'
         BOOST_SYNC_DETAIL_THROW(resource_error, (err)("Boost.Sync: failed to initialize a waitable timer"));
         ^
In file included from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/array.hpp:49:0,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/detail/freelist.hpp
:15,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/queue.hpp:21,
                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:39:
C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/throw_exception.hpp:62:46: note:   'boost::throw_e
xception'
 template<class E> BOOST_NORETURN inline void throw_exception( E const & e )
                                              ^
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:46: error
: expected primary-expression before '>' token
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
                                              ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp:300:9: note: i
n expansion of macro 'BOOST_SYNC_DETAIL_THROW'
         BOOST_SYNC_DETAIL_THROW(resource_error, (err)("Boost.Sync: failed to initialize a waitable timer"));
         ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp: In function '
void* boost::sync::detail::windows::get_waitable_timer()':
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: error:
 'throw_exception' is not a member of 'boost::sync::detail'
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp:331:9: note: i
n expansion of macro 'BOOST_SYNC_DETAIL_THROW'
         BOOST_SYNC_DETAIL_THROW(std::logic_error, ("Boost.Sync: different Boost versions are used in the application"));
         ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: note:
suggested alternative:
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp:331:9: note: i
n expansion of macro 'BOOST_SYNC_DETAIL_THROW'
         BOOST_SYNC_DETAIL_THROW(std::logic_error, ("Boost.Sync: different Boost versions are used in the application"));
         ^
In file included from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/array.hpp:49:0,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/detail/freelist.hpp
:15,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/queue.hpp:21,
                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:39:
C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/throw_exception.hpp:62:46: note:   'boost::throw_e
xception'
 template<class E> BOOST_NORETURN inline void throw_exception( E const & e )
                                              ^
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:46: error
: expected primary-expression before '>' token
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
                                              ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/waitable_timer.hpp:331:9: note: i
n expansion of macro 'BOOST_SYNC_DETAIL_THROW'
         BOOST_SYNC_DETAIL_THROW(std::logic_error, ("Boost.Sync: different Boost versions are used in the application"));
         ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:
In constructor 'boost::sync::winnt5::semaphore::semaphore(unsigned int)':
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: error:
 'throw_exception' is not a member of 'boost::sync::detail'
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:5
2:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(resource_error, (err)("semaphore constructor failed in CreateSemaphore"));
             ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: note:
suggested alternative:
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:5
2:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(resource_error, (err)("semaphore constructor failed in CreateSemaphore"));
             ^
In file included from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/array.hpp:49:0,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/detail/freelist.hpp
:15,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/queue.hpp:21,
                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:39:
C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/throw_exception.hpp:62:46: note:   'boost::throw_e
xception'
 template<class E> BOOST_NORETURN inline void throw_exception( E const & e )
                                              ^
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:46: error
: expected primary-expression before '>' token
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
                                              ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:5
2:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(resource_error, (err)("semaphore constructor failed in CreateSemaphore"));
             ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:
In member function 'void boost::sync::winnt5::semaphore::post()':
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: error:
 'throw_exception' is not a member of 'boost::sync::detail'
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:6
7:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(overflow_error, (err)("semaphore::post failed in ReleaseSemaphore"));
             ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: note:
suggested alternative:
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:6
7:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(overflow_error, (err)("semaphore::post failed in ReleaseSemaphore"));
             ^
In file included from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/array.hpp:49:0,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/detail/freelist.hpp
:15,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/queue.hpp:21,
                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:39:
C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/throw_exception.hpp:62:46: note:   'boost::throw_e
xception'
 template<class E> BOOST_NORETURN inline void throw_exception( E const & e )
                                              ^
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:46: error
: expected primary-expression before '>' token
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
                                              ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:6
7:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(overflow_error, (err)("semaphore::post failed in ReleaseSemaphore"));
             ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:
In member function 'void boost::sync::winnt5::semaphore::wait()':
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: error:
 'throw_exception' is not a member of 'boost::sync::detail'
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:7
6:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(wait_error, (err)("semaphore::wait failed in WaitForSingleObject"));
             ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: note:
suggested alternative:
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:7
6:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(wait_error, (err)("semaphore::wait failed in WaitForSingleObject"));
             ^
In file included from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/array.hpp:49:0,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/detail/freelist.hpp
:15,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/queue.hpp:21,
                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:39:
C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/throw_exception.hpp:62:46: note:   'boost::throw_e
xception'
 template<class E> BOOST_NORETURN inline void throw_exception( E const & e )
                                              ^
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:46: error
: expected primary-expression before '>' token
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
                                              ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:7
6:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(wait_error, (err)("semaphore::wait failed in WaitForSingleObject"));
             ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:
In member function 'bool boost::sync::winnt5::semaphore::try_wait()':
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: error:
 'throw_exception' is not a member of 'boost::sync::detail'
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:8
7:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(wait_error, (err)("semaphore::try_wait failed in WaitForSingleObject"));
             ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: note:
suggested alternative:
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:8
7:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(wait_error, (err)("semaphore::try_wait failed in WaitForSingleObject"));
             ^
In file included from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/array.hpp:49:0,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/detail/freelist.hpp
:15,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/queue.hpp:21,
                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:39:
C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/throw_exception.hpp:62:46: note:   'boost::throw_e
xception'
 template<class E> BOOST_NORETURN inline void throw_exception( E const & e )
                                              ^
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:46: error
: expected primary-expression before '>' token
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
                                              ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:8
7:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(wait_error, (err)("semaphore::try_wait failed in WaitForSingleObject"));
             ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:
In member function 'bool boost::sync::winnt5::semaphore::priv_timed_wait(boost::sync::detail::system_duration)':
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: error:
 'throw_exception' is not a member of 'boost::sync::detail'
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:1
35:21: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
                     BOOST_SYNC_DETAIL_THROW(wait_error, (err)("semaphore::timed_wait failed in WaitForSingleObject"));
                     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: note:
suggested alternative:
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:1
35:21: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
                     BOOST_SYNC_DETAIL_THROW(wait_error, (err)("semaphore::timed_wait failed in WaitForSingleObject"));
                     ^
In file included from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/array.hpp:49:0,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/detail/freelist.hpp
:15,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/queue.hpp:21,
                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:39:
C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/throw_exception.hpp:62:46: note:   'boost::throw_e
xception'
 template<class E> BOOST_NORETURN inline void throw_exception( E const & e )
                                              ^
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:46: error
: expected primary-expression before '>' token
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
                                              ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:1
35:21: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
                     BOOST_SYNC_DETAIL_THROW(wait_error, (err)("semaphore::timed_wait failed in WaitForSingleObject"));
                     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:
In member function 'bool boost::sync::winnt5::semaphore::priv_timed_wait(const boost::sync::detail::system_time_point&)':
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: error:
 'throw_exception' is not a member of 'boost::sync::detail'
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:1
53:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(wait_error, (err)("semaphore::timed_wait failed to set a timeout"));
             ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: note:
suggested alternative:
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:1
53:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(wait_error, (err)("semaphore::timed_wait failed to set a timeout"));
             ^
In file included from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/array.hpp:49:0,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/detail/freelist.hpp
:15,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/queue.hpp:21,
                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:39:
C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/throw_exception.hpp:62:46: note:   'boost::throw_e
xception'
 template<class E> BOOST_NORETURN inline void throw_exception( E const & e )
                                              ^
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:46: error
: expected primary-expression before '>' token
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
                                              ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:1
53:13: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
             BOOST_SYNC_DETAIL_THROW(wait_error, (err)("semaphore::timed_wait failed to set a timeout"));
             ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: error:
 'throw_exception' is not a member of 'boost::sync::detail'
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:1
71:17: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
                 BOOST_SYNC_DETAIL_THROW(lock_error, (err)("semaphore::timed_wait failed in WaitForMultipleObjects"));
                 ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:5: note:
suggested alternative:
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
     ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:1
71:17: note: in expansion of macro 'BOOST_SYNC_DETAIL_THROW'
                 BOOST_SYNC_DETAIL_THROW(lock_error, (err)("semaphore::timed_wait failed in WaitForMultipleObjects"));
                 ^
In file included from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/array.hpp:49:0,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/detail/freelist.hpp
:15,
                 from C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/lockfree/queue.hpp:21,
                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:39:
C:/SupercolliderRepos/master4/supercollider/external_libraries/boost/boost/throw_exception.hpp:62:46: note:   'boost::throw_e
xception'
 template<class E> BOOST_NORETURN inline void throw_exception( E const & e )
                                              ^
In file included from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/s
emaphore_windows.hpp:21:0,
                 from C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/semaphore.hpp:139,

                 from C:\SupercolliderRepos\plugins2\sc3-plugins\source\NovaDiskIO\NovaDiskIO.cpp:41:
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/semaphore/semaphore_windows.hpp:1
71:41: error: 'lock_error' was not declared in this scope
                 BOOST_SYNC_DETAIL_THROW(lock_error, (err)("semaphore::timed_wait failed in WaitForMultipleObjects"));
                                         ^
C:/SupercolliderRepos/plugins2/sc3-plugins/source/NovaDiskIO/sync/include/boost/sync/detail/throw_exception.hpp:177:43: note:
 in definition of macro 'BOOST_SYNC_DETAIL_THROW'
     boost::sync::detail::throw_exception< ex >(BOOST_SYNC_DETAIL_HERE, BOOST_PP_SEQ_ENUM(args_seq))
                                           ^
source\NovaDiskIO\CMakeFiles\NovaDiskIO.dir\build.make:54: recipe for target 'source/NovaDiskIO/CMakeFiles/NovaDiskIO.dir/Nov
aDiskIO.cpp.obj' failed
mingw32-make[3]: *** [source/NovaDiskIO/CMakeFiles/NovaDiskIO.dir/NovaDiskIO.cpp.obj] Error 1
CMakeFiles\Makefile2:5154: recipe for target 'source/NovaDiskIO/CMakeFiles/NovaDiskIO.dir/all' failed
mingw32-make[2]: *** [source/NovaDiskIO/CMakeFiles/NovaDiskIO.dir/all] Error 2
CMakeFiles\Makefile2:5166: recipe for target 'source/NovaDiskIO/CMakeFiles/NovaDiskIO.dir/rule' failed
mingw32-make[1]: *** [source/NovaDiskIO/CMakeFiles/NovaDiskIO.dir/rule] Error 2
Makefile:1951: recipe for target 'NovaDiskIO' failed
mingw32-make: *** [NovaDiskIO] Error 2

MCLDFilter UGens fail unit tests

Migrated from core (original issue at supercollider/supercollider#886)

There were failures:
a TestFilterUGens:test_time_invariance - Friction.ar is time invariant when delayed by 1 sample(s).
4184 of 4410 items in array failed to match. Displaying arrays from index of first failure (226) onwards:
FloatArray[ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, ...etc...
! =
0

a TestFilterUGens:test_time_invariance - Friction.ar is time invariant when delayed by 64 sample(s).
4121 of 4410 items in array failed to match. Displaying arrays from index of first failure (289) onwards:
FloatArray[ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, ...etc...
! =
0

AmplitudeMod is redundant

The AmpliduteMod states "As a opposed to Amplitude, AmplitudeMod, allows attack and release times to be modulated once the UGen has been instantiated." it is not true that Amplitude is not modulateable so i think AmplitudeMod is redundant.

OteySoundBoard and OteyPiano crash server

Running Ubuntu Studio 14.04, 32-bit. Kernel is 3.16.0-31-lowlatency. Running the most minimal use of OteyPiano causes scsynth to crash with only a message saying RESULT = 0.

EnvDetect must not accept control rate input!

Please make a provision that giving a control rate signal as an input to the EnvDetect class throws an error.

(
SynthDef("help-EnvDetect",{Out.ar(0,

    SinOsc.ar(    [440,440] , 0,  0.3*EnvDetect.ar( LFNoise1.kr(20), MouseX.kr(0.001,0.1,'exponential'),                                                     
                                                                                               MouseY.kr(0.001,0.1,'exponential')     )       ) ) 
}  ).play
)

I did this, and I almost got my ears damaged!!!
A poll gave me this:

{ Poll.kr( Impulse.kr(10), EnvDetect.ar( Saw.kr(30), 0.1, 0.2 ) ) }.play;

UGen(EnvDetect): 0.000122542
UGen(EnvDetect): 2.48154e+26
UGen(EnvDetect): 3.95078e+26
UGen(EnvDetect): 4.82066e+26
UGen(EnvDetect): 5.3357e+26
UGen(EnvDetect): 5.64063e+26
UGen(EnvDetect): 5.82118e+26
UGen(EnvDetect): 5.92808e+26

source/DWGUGens/dwglib/DWG.hpp fail to build with GCC 6

The source fail to build in Debian after Debian switched to GCC 6 as the default C++ compiler. See https://bugs.debian.org/831078 for details.

The problem is that this expression no longer work in source/DWGUGens/dwglib/DWG.hpp:

float loss;
...
void set_area(float a1,float lossF)
    {
        if(a1 < 1e-18)
            loss = 0.0;
        else
            loss = 1.0 - std::min(lossF/sqrt(static_cast<double>(a1)),1.0);

    }

I believe the cause is that the compiler now pick the function float sqrt(float) instead of the function double sqrt(double). There are two ways to solve the build problem, and I am unsure which one is the best. Either replace 1.0 with 1.0f to use float everywhere in the calculations, or cast a1 using static_cast(double>(a1) to tell the compiler to use doubles everywhere. I assume the former calculation is slightly quicker, while the latter is more accurate.

Do you have an opinion on how this should be solved? How important is the accuracy of the calculation?

Tags for older releases

I'm trying to build this code on Debian Jessie, which ships with Supercollider 3.6.6. I'm getting compilation failures(https://gist.github.com/technomancy/ad2c7081eb9e86d8f8f64ab73cfb6318), but I read that these could be solved by matching up the version of the plugins with the version of Supercollider.

Unfortunately I can't find what version to use since the releases before 3.7.0 were not properly tagged. Can you push tags for these versions or suggest another way to fix the compilation failure?

new Stk wrapping

Hello,

Stk is a library devoted to physical modeling

https://ccrma.stanford.edu/software/stk/index.html

As StkUgens are quite buggy I did another stk wraping for myself:
Is is based on StkInstrumnt so that with only one UGen (StkInst) it is
possible to talk to all stk instruments and specific parameter are accesed
by number.

for example stk::Bowed has
https://ccrma.stanford.edu/software/stk/classstk_1_1Bowed.html

Bow Pressure = 2
Bow Position = 4
Vibrato Frequency = 11
Vibrato Gain = 1
Bow Velocity = 100
Frequency = 101
Volume = 128

(
SynthDef(\helpStkbowed,{arg out=0,freq=220,gate=1,amp=1,bowpressure = 64, bowposition = 17, vibfreq=50, vibgain=1, loudness=128;
    var sig,env;
    env = EnvGen.kr(Env.asr(0,1,0.1),gate,doneAction:2);
    sig = StkInst.ar(Stk.at("Bowed"),freq, gate, amp, 0.5,[2,bowpressure,4,bowposition,11,vibfreq,1,vibgain,128,loudness])*env;
    Out.ar(out, sig.dup);
}).add;
)

It can be found on:
https://github.com/sonoro1234/StkInst

Works for me
but I would like somebody to use it before doing a pull request for sc3-plugins
Also need some advise about copying audio stk files (where, how...)

Best
victor bombi

Amplitude-modulation distortion in PV_PlayBuf / PV_RecordBuf in Linux

This has been an issue for at least a couple of years. I'm logging it now because Tim fixed an issue related to windowing functions in Linux, which I thought might have been related to this problem. It isn't -- I tested against SC's current master, and the PV_PlayBuf / PV_RecordBuf persists.

I'll assign myself temporarily because I want to see if Tim's FFT fix for SC might help these plugins. He replaced some uses of memcpy with memmove. I haven't looked at Josh's code in detail, but it seems entirely possible that memcpy could be in there and maybe it would help to update that. Can't try it just this second. Maybe later today.

If that fails, then I'll reassign to Josh.

Licensing question: DEINDUGens

Hi,

the DEINDUGens has a minor licensing issue. The original code is

// author: "Julian Parker"
// license: "none"
// copyright: "(c) Julian Parker 2013"

yet the faust code generator (?) added a GPL-2+ license to it.

I suspect that this is also what Julian wanted, but just to clarify and to appease the licensing demons at Debian, it would be helpful if the license-entry could be clarified to be GPL-2+.

MdaPiano should round frequency to midi note conversion rather than truncate

There is an issue with the MdaPiano synth that has been reported to the Overtone project. I think it is an issue for this project to address. See discussion at overtone/overtone#264

Repeating my comment from there...

The MdaPiano code here
https://github.com/supercollider/sc3-plugins/blob/master/source/MdaUGens/MdaUGens.cpp#L119
takes the freq in and converts it immediately to an integer note with
sc_cpsmidi(). Due to how sc_cpsmidi() is written, we are on the
knife's edge of precision issues as people above have found out. If
the input frequency is off by any amount towards zero, the integer
note returned is one lower than desired.

In my opinion, MdaPiano should be changed to allow for some slight
errors in the input frequency and use rounding instead of truncation
after calculating sc_cpsmidi(). Simply adding 0.5f prior to converting to an integer would do this.

The sc_cpsmidi and midicps functions are defined in SuperCollider here
and you can see they involve some magic constants:
https://github.com/supercollider/supercollider/blob/master/include/plugin_interface/SC_InlineUnaryOp.h

Here is a test program to show what is happening with any slight error.

/* lets test Supercollider midicps
 *
clang -o cpstest cpstest.cpp
 */

#include <stdio.h>
#include <cmath>
#define float32 float
const double rlog2  = 1./std::log(2.);

inline float32 sc_log2(float32 x)
{
#if __cplusplus >= 201103L
    return std::log2(x);
#elif defined(HAVE_C99)
    return ::log2f(std::abs(x));
#else
    return static_cast<float32>(std::log(std::abs(x)) * (float32)rlog2);
#endif
}

inline float32 sc_midicps(float32 note)
{
    return (float32)440. * std::pow((float32)2., (note - (float32)69.) * (float32)0.083333333333);
}

inline float32 sc_cpsmidi(float32 freq)
{
    return sc_log2(freq * (float32)0.0022727272727) * (float32)12. + (float32)69.;
}

int main(int argc, char **argv) {
    float32 epsilon = 0.0001;
    int t = 64;
    float32 f = sc_midicps((float32)t);
    printf("convert midi to freq...\n");
    printf("%d => %10.6f\n",t,f);
    int t0 = (int)sc_cpsmidi(f-epsilon);
    int t1 = (int)sc_cpsmidi(f);
    int t2 = (int)sc_cpsmidi(f+epsilon);
    printf("add a bit of noise to convert freq back to midi...\n");
    printf("%10.6f => %d\n",f-epsilon,t0);
    printf("%10.6f => %d\n",f,t1);
    printf("%10.6f => %d\n",f+epsilon,t2);
    printf("use rounding instead of truncation\n");
    t0 = (int)(sc_cpsmidi(f-epsilon) + 0.5f);
    t1 = (int)(sc_cpsmidi(f) + 0.5f);
    t2 = (int)(sc_cpsmidi(f+epsilon) + 0.5f);
    printf("%10.6f => %d\n",f-epsilon,t0);
    printf("%10.6f => %d\n",f,t1);
    printf("%10.6f => %d\n",f+epsilon,t2);
}
> clang -o cpstest cpstest.cpp
> ./cpstest 
convert midi to freq...
64 => 329.627563
add a bit of noise to convert freq back to midi...
329.627472 => 63  # OFF
329.627563 => 64
329.627655 => 64
use rounding instead of truncation
329.627472 => 64
329.627563 => 64
329.627655 => 64

plugin profiling

Hi ,

I am trying to do plugin profiling with gprof:

I set cmake -DCMAKE_CXX_FLAGS=-pg -DCMAKE_MODULE_LINKER_FLAGS=-pg to get
that
but when I try to run scsynth it gets blocked in the plugin loading phase

Something I am missing?

Best
victor bombi

Really weird, glitchy audio with JPverb and Greyhole

Run the following and leave it running for a while:

(
{ JPverb.ar(Saw.ar(100) * EnvGen.kr(Env.perc(0.01, 1), Impulse.kr(0))) * 0.1 }.play;
{ SinOsc.ar(440) * EnvGen.kr(Env.perc(0.01, 1), Impulse.kr(1)) * 0.1!2 }.play;
)

Watch the CPU. For me, it stays at a consistent 7-8% for a while. After about one minute, it spikes to 50% and then quickly drops to less than 1%, and the audio from the other synth sounds weird and crackly.

This happens consistently when audio is fed into a JPverb or a Greyhole followed by a long stretch of complete silence. After the silence, all other audio output from SuperCollider sounds crackly. If audio is played to the reverb unit again, the audio returns to normal after a few seconds.

Even weirder, the crackliness does not seem to show up in Stethoscope, FreqScope, or s.record!

Duplicate classes in faust_src

SuperCollider 3.6.6 on Mac OSX El Capitan 10.11.1

At first I kept getting this error message (displayed here in full).

As soon as I deleted the 'faust_src' folder and it compiled successfully. Hope this helps someone.

compiling class library...
NumPrimitives = 688
compiling dir: '/Applications/SuperCollider/SuperCollider.app/Contents/Resources/SCClassLibrary'
compiling dir: '/Users/lightspeed/Library/Application Support/SuperCollider/Extensions'
ERROR: duplicate Class found: 'Greyhole'
/Users/lightspeed/Library/Application Support/SuperCollider/Extensions/sc3-plugins-master/source/DEINDUGens/faust_src/Greyhole.sc
/Users/lightspeed/Library/Application Support/SuperCollider/Extensions/sc3-plugins-master/source/DEINDUGens/sc/Greyhole.sc

ERROR: duplicate Class found: 'GreyholeRaw'
/Users/lightspeed/Library/Application Support/SuperCollider/Extensions/sc3-plugins-master/source/DEINDUGens/faust_src/Greyhole.sc
/Users/lightspeed/Library/Application Support/SuperCollider/Extensions/sc3-plugins-master/source/DEINDUGens/sc/Greyhole.sc

ERROR: duplicate Class found: 'JPverb'
/Users/lightspeed/Library/Application Support/SuperCollider/Extensions/sc3-plugins-master/source/DEINDUGens/faust_src/JPverb.sc
/Users/lightspeed/Library/Application Support/SuperCollider/Extensions/sc3-plugins-master/source/DEINDUGens/sc/JPverb.sc

ERROR: duplicate Class found: 'JPverbRaw'
/Users/lightspeed/Library/Application Support/SuperCollider/Extensions/sc3-plugins-master/source/DEINDUGens/faust_src/JPverb.sc
/Users/lightspeed/Library/Application Support/SuperCollider/Extensions/sc3-plugins-master/source/DEINDUGens/sc/JPverb.sc

Tautological comparison warnings

Is it safe to remove these conditions? It seems they do nothing:

[  1%] Building CXX object source/CMakeFiles/NCAnalysisUGens.dir/NCAnalysisUGens/MedianSeparation.cpp.o
./sc3-plugins/source/NCAnalysisUGens/MedianSeparation.cpp:385:26: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare]
            if ((bufnum1 >= 0) && (bufnum2 >= 0) ) { 
                 ~~~~~~~ ^  ~
./sc3-plugins/source/NCAnalysisUGens/MedianSeparation.cpp:385:44: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare]
            if ((bufnum1 >= 0) && (bufnum2 >= 0) ) { 
                                   ~~~~~~~ ^  ~
2 warnings generated.

and

./sc3-plugins/source/PitchDetection/Qitch.cpp:194:53: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
        if (!((ampbufnum > world->mNumSndBufs) || ampbufnum<0)) {
                                                  ~~~~~~~~~^~
1 warning generated.

JPverb cant be loaded by supernova

@timblechmann
I get this message:

Exception when reading synthdef: Cannot load synth aaa: Unit generator JPverbRaw not installed

May be has relation with the mechanism Faust employs in load function but it works in scsynth

ATK: Ton of "FunctionDef contains variable declarations" warnings

WARNING: FunctionDef contains variable declarations and so will not be inlined.
  in file '/usr/local/share/SuperCollider/Extensions/SC3plugins/ATK/Classes/ATK.sc'
  line 405 char 29:

  						var name, matches = [];
                               
  
-----------------------------------
WARNING: FunctionDef contains variable declarations and so will not be inlined.
  in file '/usr/local/share/SuperCollider/Extensions/SC3plugins/ATK/Classes/ATK.sc'
  line 371 char 26:

  							var relWithoutLast;
                            
  							relWithoutLast = PathName( relPath.fullPath.dirname );
-----------------------------------
WARNING: FunctionDef contains variable declarations and so will not be inlined.
  in file '/usr/local/share/SuperCollider/Extensions/SC3plugins/ATK/Classes/ATK.sc'
  line 376 char 30:

  									var name, foundCnt=0;
                                
  									name = usrPN.fileNameWithoutExtension;
-----------------------------------
WARNING: FunctionDef contains variable declarations and so will not be inlined.
  in file '/usr/local/share/SuperCollider/Extensions/SC3plugins/ATK/Classes/ATK.sc'
  line 421 char 15:

  							var str;
                 
  							str = format("Multiple matches found for filename:\t%\n", usrPN.fileName);
-----------------------------------
WARNING: FunctionDef contains variable declarations and so will not be inlined.
  in file '/usr/local/share/SuperCollider/Extensions/SC3plugins/ATK/Classes/ATKMatrix.sc'
  line 230 char 37:

  			var dict = filePath.parseYAMLFile;
                                       
  			fileParse = IdentityDictionary(know: true);
-----------------------------------
WARNING: FunctionDef contains variable declarations and so will not be inlined.
  in file '/usr/local/share/SuperCollider/Extensions/SC3plugins/ATK/Classes/ATKMatrix.sc'
  line 337 char 25:

  				var mtxPath, relPath;
                           
  				mtxPath = Atk.getMatrixExtensionSubPath(argSet, argType);

virtual room plugins (christmas present)

Hi,

Just published a RIR generator of virtual room (image method of Allen an Berkley) plus late reverb modeling by feedback delay networks in:

https://github.com/sonoro1234/DWGReverb

Only source so must be compiled. Script in Lua should be translated (two plugin definitions and a Synthdef) (I someone translates please fork and commit sc file)

I am quite satisfied with sound quality an efficiency.

Take a look and post your comments.

happy holidays for everyone
victor

Pan parameter of TGrains2

The doc of TGrains2 states that the pan parameter should behave like PanAz, but it is not the case. It behaves rather strangely.

b = Buffer.read(Server.default, Platform.resourceDir +/+ "sounds/a11wlk01-44_1.aiff");
x = {TGrains2.ar(
    numChannels: 2,
    trigger: Impulse.kr(10),
    bufnum: b.bufnum,
    rate: 1,
    centerPos: MouseX.kr(0, BufDur.kr(b)),
    pan: MouseX.kr(-1,1.01)
);
}.play;

The sound should be panned fully to the left when pan is at -0.5 and fully to the right when pan is at 0.5. Here, pan behaves more like Pan2, but inverted. Also, the panning goes abruptly from one side to the other when pan goes above 1.00 or below -1.00.

Compare with this:

{PanAz.ar(2, SinOsc.ar(mul:0.1), MouseX.kr(-1.01, 1.01))}.play;

OS-X 10.10 cmake install error: Could not find a package configuration file provided by "Qt5Core"

installing on os-x according to the README instructions throws errors about not finding Qt5Core ... help appreciated thx

$ sudo cmake -DSC_PATH= /Users/erikparr/SuperCollider

CMake Warning at QtCollider/CMakeLists.txt:5 (find_package):
By not providing "FindQt5Core.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Qt5Core", but
CMake did not find one.

Could not find a package configuration file provided by "Qt5Core" with any
of the following names:

Qt5CoreConfig.cmake
qt5core-config.cmake

Add the installation prefix of "Qt5Core" to CMAKE_PREFIX_PATH or set
"Qt5Core_DIR" to a directory containing one of the above files. If
"Qt5Core" provides a separate development package or SDK, be sure it has
been installed.
Call Stack (most recent call first):
lang/CMakeLists.txt:174 (include)

CMake Warning at QtCollider/CMakeLists.txt:6 (find_package):
By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"Qt5Widgets", but CMake did not find one.

Could not find a package configuration file provided by "Qt5Widgets" with
any of the following names:

Qt5WidgetsConfig.cmake
qt5widgets-config.cmake

etc etc etc...

PV_Freeze frequently hangs in supernova

Ubuntu 14.04. I'm building everything from source -- SC3.8, sc3-plugins at commit e059ac0 (Fri Oct 16, "Merge pull request #40 from sonoro1234/libmodify").

The following code causes supernova to hang, within the first few iterations of the pattern.

(
SynthDef(\freeze, { |gate = 1|
	var sig = BrownNoise.ar(0.05),
	freeze = Rand(0.0, 1.999).trunc(1.0),
	fft = FFT(LocalBuf(256), sig),
	eg = Linen.kr(gate, 0.01, 1, 0.01, doneAction: 2);
	fft = PV_Freeze(fft, freeze);
	sig = IFFT(fft);
	Out.ar(0, (sig * eg).dup);
}).add;
)

p = Pbind(\instrument, \freeze, \dur, 2, \sustain, 1.5).play;

Running supernova within gdb locates one suspicious thread (abbreviated here -- the rest looks normal). I ran several tests in gdb, and whenever it hangs, there is always a thread like this.

Thread 19 (Thread 0x7fffdc17e700 (LWP 11271)):
#0  0x00007fffe691ae48 in PV_Freeze_next ()
   from /usr/local/lib/SuperCollider/plugins/JoshPVUGens_supernova.so
#1  0x0000000000423f63 in nova::sc_synth::perform (this=<optimized out>)
    at /home/dlm/share/sc-hjh.git/server/supernova/server/../sc/sc_synth.hpp:97
#2  0x000000000042402f in operator() (index=0 '\000', 
    this=this@entry=0x7fffed617868)
    at /home/dlm/share/sc-hjh.git/server/supernova/server/dsp_thread_queue_node.hpp:50
#3  nova::dsp_queue_node<nova::rt_pool_allocator<void*> >::operator() (
    this=this@entry=0x7fffed617868, thread_index=thread_index@entry=0 '\000')
    at /home/dlm/share/sc-hjh.git/server/supernova/server/dsp_thread_queue_node.hpp:81
#4  0x0000000000424265 in run (thread_index=<optimized out>, interpreter=..., 
    this=0x7fffed617860)
    at /home/dlm/share/sc-hjh.git/server/supernova/./dsp_thread_queue/dsp_thread_queue.hpp:147
#5  nova::dsp_queue_interpreter<nova::dsp_queue_node<nova::rt_pool_allocator<void*> >, nova::rt_pool_allocator<void*> >::run_next_item (
    this=this@entry=0x7ffffff71838, index=index@entry=0 '\000')
    at /home/dlm/share/sc-hjh.git/server/supernova/./dsp_thread_queue/dsp_thread_queue.hpp:624

Other permutations:

  • PV_Freeze vs scysnth - no hang
  • PV_MagFreeze vs supernova - no hang

So it's only the combination of PV_Freeze and supernova that is the problem.

I need to use supernova because I'm running a ton of oscillators and parallel processing is cutting DSP time roughly in half. PV_Freeze is the sound I want -- in this case, I like the brutal repetition of grains -- but for the concert in a week and a half, I will have to compromise and use PV_MagFreeze instead, just to be sure the performance doesn't crash and burn.

I might guess that this happens when freeze > 0 in the first calculation block -- but I just tried to come up with an example of that, and then the problem stopped happening. So... I don't know.

Licensing question: Re-consider the sc3 plugins license?

Hi,

for the Debian package, I have gone through the sc3 plugins tarball and tried to identify all licenses used in it. This is the result:

http://anonscm.debian.org/cgit/pkg-multimedia/supercollider-sc3-plugins.git/tree/debian/copyright

The findings are:

  • SuperCollider itself is GPL-3.0+
  • the SC3 plugins default license is GPL-2.0+
  • some SC3 plugins are GPL-3.0+ in reference to SuperCollider
  • most SC3 plugins are GPL-2.0+, possibly in reference to the earlier version of SuperCollider
  • some SC3 plugins are LGPL-2.1+
  • there are some Boost, BSD and MIT licensed files in there, too.

While none of this is really a problem, I'd humbly suggest to consolidate the licenses to GPL-3.0+ where possible, in accord with SuperCollider itself.

Supernova versions of plugins don't get copied/installed on OS X

I'm building SC3-plugins on OSX 10.9 and I've set supernova=ON.

After running "make install" everything builds fine and in my build folder I get "SC3plugins", as well as "source" folders. While the "source" folder does include both regular and supernova plugins, "SC3plugins" (where everything else is) contains only regular ones.

Also, on my system supernova does not find plugins outside its own plugins folder in the SuperCollider.app/Contents/Resources/plugins, is there maybe connection between that and this bug?

VBAP Ugens 3D config, azimuth = -90 and spread = 1 causes NANs

a = VBAPSpeakerArray.new(3, [
                    [ -25.400967366, 0 ],
                    [ 25.9660516833, 0 ],
                    [ -67.0576274588, 0 ],
                    [ 66.6879780945, 0 ],
                    [ -107.4110491464, 0 ],
                    [ 107.3832377266, 0 ],
                    [ -146.2172414806, 0 ],
                    [ 146.1054525865, 0 ],
                    [ -20.4495476108, 17.8750032812 ],
                    [ 20.571247071, 17.8150833255 ],
                    [ -65.6744247609, 24.0287030727 ],
                    [ 65.6416496995, 23.9189613576 ],
                    [ -108.1204280324, 24.7878302634 ],
                    [ 108.1462414292, 24.906009848 ],
                    [ -155.454155974, 23.6313179834 ],
                    [ 155.6036500106, 23.5605201117 ],
                    [ -27.5218854663, 52.7448792263 ],
                    [ 28.2311587404, 52.8541958285 ],
                    [ -74.594892688, 57.9362142825 ],
                    [ 73.451059145, 59.0965878748 ],
                    [ -113.1577815608, 57.1078901345 ],
                    [ 110.9030667368, 56.4426902381 ],
                    [ -151.3671810066, 54.2142657891 ],
                    [ 152.046597927, 52.8541958285 ],
                    [ -28.0372821602, -50.4062940572 ],
                    [ 28.0372821602, -50.4062940572 ],
                    [ -77.6309384741, -52.9029151782 ],
                    [ 77.1957339347, -53.8362268718 ],
                    [ -116.4957697362, -51.38202567 ],
                    [ 116.7749248886, -51.6531568981 ],
                    [ -159.9660768355, -50.2322714936 ],
                    [ 157.4926118991, -49.7580403359 ]
                ]); // zig zag partial dome

b = Buffer.sendCollection(s, a.getSetsAndMatrices);

(
// pan around the circle up and down
x = {
var source;
source = PinkNoise.ar(0.2);
VBAP.ar(32, source, b.bufnum, -90, 0, 1);
}.play;
)

trace on they synth:

unit 45 VBAP
in 0.0105448 0 -90 0 1
out nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan

Some bhob ugens fail in unit test

Migrated from core (original at supercollider/supercollider#887)

a TestFilterUGens:test_time_invariance - NestedAllpassC.ar is time invariant when delayed by 1 sample(s).
16 of 4410 items in array failed to match. Displaying arrays from index of first failure (1587) onwards:
FloatArray[ -0.23038358986378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...etc...
! =
0

a TestFilterUGens:test_time_invariance - NestedAllpassC.ar is time invariant when delayed by 64 sample(s).
16 of 4410 items in array failed to match. Displaying arrays from index of first failure (1650) onwards:
FloatArray[ -0.23038358986378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...etc...
! =
0

a TestFilterUGens:test_time_invariance - DoubleNestedAllpassL.ar is time invariant when delayed by 64 sample(s).
175 of 4410 items in array failed to match. Displaying arrays from index of first failure (2006) onwards:
FloatArray[ -9.1525726020336e-07, -2.7474015951157e-06, 3.6619603633881e-06, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...etc...
! =
0

a TestFilterUGens:test_time_invariance - DoubleNestedAllpassC.ar is time invariant when delayed by 1 sample(s).
907 of 4410 items in array failed to match. Displaying arrays from index of first failure (972) onwards:
FloatArray[ 0.050404109060764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...etc...
! =
0

a TestFilterUGens:test_time_invariance - DoubleNestedAllpassC.ar is time invariant when delayed by 64 sample(s).
911 of 4410 items in array failed to match. Displaying arrays from index of first failure (1034) onwards:
FloatArray[ -0.0048005161806941, 0.050404109060764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...etc...
! =
0

a TestFilterUGens:test_time_invariance - Streson.ar is time invariant when delayed by 1 sample(s).
514 of 4410 items in array failed to match. Displaying arrays from index of first failure (132) onwards:
FloatArray[ -5.3718686103821e-06, 6.556510925293e-07, -5.9604644775391e-08, 7.4505805969238e-09, -9.3132257461548e-10, 1.1641532182693e-10, -1.4551915228367e-11, 1.3642420526594e-12, -1.7053025658242e-13, 1.4210854715202e-14, -1.7763568394003e-15, 2.2204460492503e-16, -2.7755575615629e-17, 2.6020852139652e-18, -3.2526065174565e-19, 4.0657581468206e-20, -5.0821976835258e-21, 6.3527471044073e-22, -7.9409338805091e-23, 8.2718061255303e-24, -8.2718061255303e-25, 1.0339757656913e-25, -9.6935228033558e-27, 1.2116...etc...
! =
0

build failed

I'm trying to install this on Arch Linux. I have SC 3.7.1 installed from git (supercollider-git). But when I try to install the plugins I get the following error (truncated).

[ 17%] Building CXX object source/CMakeFiles/OteyPianoUGens_supernova.dir/OteyPianoUGens/OteyPiano.cpp.o In file included from /tmp/pacaurtmp-dabrowsa/sc3-plugins-git/src/sc3-plugins/source/OteyPianoUGens/dwgs.h:8:0, from /tmp/pacaurtmp-dabrowsa/sc3-plugins-git/src/sc3-plugins/source/OteyPianoUGens/piano.h:8, from /tmp/pacaurtmp-dabrowsa/sc3-plugins-git/src/sc3-plugins/source/OteyPianoUGens/OteyPiano.cpp:7: /tmp/pacaurtmp-dabrowsa/sc3-plugins-git/src/sc3-plugins/source/OteyPianoUGens/../DWGUGens/dwglib/DWG.hpp: In member function ‘void TUBE::set_area(float, float)’: /tmp/pacaurtmp-dabrowsa/sc3-plugins-git/src/sc3-plugins/source/OteyPianoUGens/../DWGUGens/dwglib/DWG.hpp:1271:53: error: no matching function for call to ‘min(float, double)’ loss = 1.0 - std::min(lossF/sqrt(a1),1.0);

BlitB3 can "freeze" at low frequencies

The BlitB3 uGen is freezing on Windows 10 (64-bit) using the pre-compiled plug-in library and SC 3.7.1 (also 64-bit).

I'm using the following line of code:

{BlitB3.ar(MouseX.kr(0.01, 10000))}.scope

If I move my mouse to the far left of my screen, the uGen will occasionally stop generating. Sometimes, it will start generating again after a few seconds. I did one test where it took about two minutes to start generating again.

LADSPA: ladspalist utility crashes on certain plugins

LADSPA.listPlugins is supposed to print out all the plug-ins that are installed, with their inputs and outputs. A custom binary, ladspalist, is supposed to handle this, but it seems to choke on some plug-ins. When I boot the server, I see "Found 140 LADSPA plugins" but LADSPA.listPlugins shows only two:

LADSPA
#1913 Fast Lookahead limiter
> k: Input gain (dB) (-20 to 20)
> k: Limit (dB) (-20 to 0)
> k: Release time (s) (0.01 to 2)
< k: Attenuation (dB) (0 to 70)
> a: Input 1
> a: Input 2
< a: Output 1
< a: Output 2
< k: latency

#1905 VyNil (Vinyl Effect)
> k: Year (1900 to 1990)
> k: RPM (33 to 78)
> k: Surface warping (0 to 1)
> k: Crackle (0 to 1)
> k: Wear (0 to 1)
> a: Input L
> a: Input R
< a: Output L
< a: Output R

RESULT = 134

I made a debug build and ran it in gdb. This tells me that TAP Reflector[1] is the problem, and there's a bad pointer.

*** glibc detected *** /usr/local/share/SuperCollider/Extensions/SC3plugins/LadspaUGen/ladspalist: free(): invalid pointer: 0x00007ffff79ca778 ***

(gdb) where
#0  0x00007ffff76480d5 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff764b83b in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff768604e in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007ffff7690846 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007ffff740f957 in delete_descriptor ()
   from /usr/lib/ladspa/tap_reflector.so
#5  0x00007ffff7dee70e in ?? () from /lib64/ld-linux-x86-64.so.2
#6  0x00007ffff7ded3b4 in ?? () from /lib64/ld-linux-x86-64.so.2
#7  0x00007ffff79d1f26 in ?? () from /lib/x86_64-linux-gnu/libdl.so.2
#8  0x00007ffff7de9176 in ?? () from /lib64/ld-linux-x86-64.so.2
#9  0x00007ffff79d252f in ?? () from /lib/x86_64-linux-gnu/libdl.so.2
#10 0x00007ffff79d1fc1 in dlopen () from /lib/x86_64-linux-gnu/libdl.so.2
#11 0x0000000000400fd9 in LADSPADirectoryPluginSearch (
    pcDirectory=0x603030 "/usr/lib/ladspa", 
    fCallbackFunction=0x400c1c <describePluginLibrary>)
    at /home/dlm/share/sc3-plugins/source/LadspaUGen/search.c:65
#12 0x000000000040113d in LADSPAPluginSearch (
    fCallbackFunction=0x400c1c <describePluginLibrary>)
    at /home/dlm/share/sc3-plugins/source/LadspaUGen/search.c:120
#13 0x0000000000400e99 in main (iArgc=1, ppcArgv=0x7fffffffe058)
    at /home/dlm/share/sc3-plugins/source/LadspaUGen/ladspalist.c:54

Ubuntu 12.04, TAP plugins come from the standard package repository (v. 0.7.1-2fakesync1).

[1] http://tap-plugins.sourceforge.net/ladspa/reflector.html

ANN: sc3-plugins now available in Debian sid

Dear SuperCollider team and users,

The supercollider-sc3-plugins source package has recently been accepted to the Debian archive. It compiles to these packages:

The package is patched to allow building on all platforms that are supported by Debian's supercollider package.

Now is the time to review and test this package and report problems with it, especially on hardware that isn't x86 or ARM.

I'd also be grateful to hear your opinions on the packaging (e.g. the layout of the packages' contents) from you as a user.

This Debian package will later show up in future releases of Ubuntu's Universe repository and possibly in Raspbian, as well, so there is an incentive to get it right...

The packaging was done as part of an effort to package Sonic Pi, which depends on SuperCollider and the SC3 plugins.

While it is my intention to maintain both the supercollider-sc3-plugins and sonic-pi packages in Debian for the time being, I would welcome at least one more developer willing to help with packaging it correctly for the SC3 plugins users.

Thank you.

(Thanks to Debian developer @petterreinholdtsen for his continuous help on this and to the several SuperCollider developers for accepting packaging related patches and responding to my questions here.)

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.