GitHub | 1 Jul 2012 12:44

[supercollider/supercollider] 168887: supernova: don't wake helper threads, unless we ha...

  Branch: refs/heads/master
  Home:   https://github.com/supercollider/supercollider
  Commit: 1688870c59dfe91d66037baf32616e9635641419
      https://github.com/supercollider/supercollider/commit/1688870c59dfe91d66037baf32616e9635641419
  Author: Tim Blechmann <tim@...>
  Date:   2012-07-01 (Sun, 01 Jul 2012)

  Changed paths:
    M server/supernova/dsp_thread_queue/dsp_thread_queue.hpp
    M server/supernova/server/dependency_graph_generator.hpp
    M server/supernova/server/group.hpp

  Log Message:
  -----------
  supernova: don't wake helper threads, unless we have parallel groups

Signed-off-by: Tim Blechmann <tim@...>

Tim Blechmann | 1 Jul 2012 12:59
Favicon
Gravatar

supernova/c++11

hi,

i'm planning to use some c++11 language features in supernova ... mainly
ones that are available in gcc-4.6 and clang++-3.1. this means that it
won't compile with older compilers, most notably gcc-4.2 which seems to
be still used on osx.

however i am not sure about the state of supernova on osx, as for some
reason, the dsp helper threads do not gain real-time scheduling
permissions ... at least that was the state during the symposium ... the
code may need a pair of eyes of someone who is more familiar with osx
and maybe even has a machine to test.

tim

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

felix | 1 Jul 2012 13:06
Favicon

Re: [supercollider/supercollider] 5fe187: Change wording in MIDI related help files.


thank you

that is a perfectly appropriate description


..
.
In mainstream English, the infinitive "to deprecate" means, simply, "to strongly disapprove of (something)". It derives from the Latin verb deprecare, meaning "to ward off (a disaster) by prayer".



On Sat, Jun 30, 2012 at 4:07 PM, GitHub <noreply-9UaJU3cA/F/QT0dZR+AlfA@public.gmane.org> wrote:
  Branch: refs/heads/master
  Home:   https://github.com/supercollider/supercollider
  Commit: 5fe1875aa8faf1a124eb095209c151cd7e67c304
      https://github.com/supercollider/supercollider/commit/5fe1875aa8faf1a124eb095209c151cd7e67c304
  Author: Scott Wilson <i <at> scottwilson.ca>
  Date:   2012-06-30 (Sat, 30 Jun 2012)

  Changed paths:
    M HelpSource/Classes/BendResponder.schelp
    M HelpSource/Classes/CCResponder.schelp
    M HelpSource/Classes/MIDIFunc.schelp
    M HelpSource/Classes/MIDIResponder.schelp
    M HelpSource/Classes/MIDIdef.schelp
    M HelpSource/Classes/NoteOffResponder.schelp
    M HelpSource/Classes/NoteOnResponder.schelp
    M HelpSource/Classes/ProgramChangeResponder.schelp
    M HelpSource/Classes/TouchResponder.schelp

  Log Message:
  -----------
  Change wording in MIDI related help files.

Signed-off-by: Scott Wilson <i <at> scottwilson.ca>




Nick Collins | 1 Jul 2012 14:52
Picon

SF.net sc3-plugins Git: sc3-plugins branch, master, updated. 3.5-22-g6c447e7

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "sc3-plugins".

The branch, master has been updated
       via  6c447e789a125c4a7a39e71b2e6bde1f3396bf57 (commit)
      from  7d36252a73bf0a167c094684393100733a5b4500 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 6c447e789a125c4a7a39e71b2e6bde1f3396bf57
Author: Nick Collins <clicksonnil@...>
Date:   Sat Jun 30 16:27:32 2012 +0100

    Added SCMIRUGens with accompanying help files and alteration to CMakeLists file

diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index eeedbff..4e8155f 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
 <at>  <at>  -92,6 +92,7  <at>  <at>  set(PLUGIN_DIRS
     MdaUGens
     RFWUGens
     RMEQSuiteUGens
+    SCMIRUGens
     SLUGens
     SummerUGens
     TagSystemUGens
diff --git a/source/SCMIRUGens/Chromagram.cpp b/source/SCMIRUGens/Chromagram.cpp
new file mode 100644
index 0000000..2a58f51
--- /dev/null
+++ b/source/SCMIRUGens/Chromagram.cpp
 <at>  <at>  -0,0 +1,332  <at>  <at> 
+/*
+ *  Created by Nicholas Collins on 13/08/2010.
+ *  Copyright 2010 Nicholas M Collins. All rights reserved.
+ */
+
+//#define SC_DARWIN
+#include "SC_PlugIn.h"
+#include "FFT_UGens.h"
+
+
+InterfaceTable *ft; 
+
+
+
+struct Chromagram : public Unit  
+{
+	int fftsize_; 
+	float chromanorm_; //for normalisation
+	int numdivisions_; 
+	int tuningbase_; 
+	int octaves_; 
+	//int integrateflag_; 
+	//float integrationconstant_; 
+
+	
+	int numindices_; 
+	int * indexdata_; 
+	float * indexweights_; 
+	float * fftpower_; 
+	float * chroma_;
+
+	
+};
+
+
+
+
+extern "C" {  
+	
+	void Chromagram_next_k(Chromagram *unit, int inNumSamples);
+	void Chromagram_Ctor(Chromagram* unit);
+	void Chromagram_Dtor(Chromagram* unit);
+
+}
+
+
+
+
+
+void Chromagram_Ctor( Chromagram* unit ) {
+	
+	int i, j; 
+	
+	double sr = unit->mWorld->mFullRate.mSampleRate; //never trust SAMPLERATE, gives UGens output
rate, not audio rate
+	float nyquist = sr*0.5; 
+	unit->fftsize_ = ZIN0(1);
+	
+
+	float freqperbin = sr / unit->fftsize_; 
+	
+	
+	int divisions = ZIN0(2); 
+	float tuningbase = ZIN0(3); 
+	int octaves = ZIN0(4);  
+	
+	if (octaves<1) octaves = 1; 
+	
+	float nyminusonebin = nyquist-freqperbin; 
+	
+	//must have room for at least one octave of divisions
+	if ((tuningbase<0.0) || (tuningbase>(nyminusonebin*0.5))) {
+		
+		tuningbase = 32.703195662575 ; //C at MIDI note 24
+		
+	}
+	
+	unit->tuningbase_ = tuningbase; 
+	
+	//if octaves can't fit within available fft bins, have to cut short
+	float topfreq = tuningbase * pow(2.0,octaves); 
+	
+	//printf("checks  %d %f %d %f %f %f \n", divisions, tuningbase, octaves, sr, nyminusonebin, topfreq);
+	
+	//if can't fit all octaves into Nyquist  
+	if (topfreq >= (nyminusonebin)) {
+		
+		octaves = (int) (log2(nyminusonebin/tuningbase)); 
+		
+	}
+	
+	unit->octaves_ = octaves; 
+	
+	//should include number of octaves as divisor too
+	unit->chromanorm_ = 1.0/((float)unit->fftsize_ * octaves); 
+	
+	
+	//unit->integrateflag_ = ZIN0(5);  
+	//unit->integrationconstant_ = ZIN0(6);  
+	
+	int totaldivisions = octaves * divisions; 
+	
+	unit->numindices_ = 2*totaldivisions; 
+	int * indexdata = (int *)RTAlloc(unit->mWorld, sizeof(int)*unit->numindices_); 
+	float * weightdata = (float *) RTAlloc(unit->mWorld, sizeof(float)*unit->numindices_);
+	
+	unit->indexdata_ = indexdata; 
+	unit->indexweights_ = weightdata; 
+	
+	//work out indices of fft bins corresponding to chroma positions, from basefreq up
+	//avoid lots of pow calls by working out cumulative ratios as go
+	
+	float ratio = pow(2.0,1.0/divisions); 
+	
+	//float rationow= 1.0; 
+	
+	float octavenow = 1.0; 
+	
+	float temp = 1.0f/freqperbin; 
+	
+	int indexnow; 
+	
+	for ( j=0; j<octaves; ++j) {
+		
+		float freqnow= tuningbase * octavenow; 
+	
+		indexnow = 2*j*divisions; 
+			
+		for ( i=0; i<divisions; ++i) {
+			
+			//express as fft bins
+			float binpos = freqnow * temp; 
+			
+			int lower = (int) binpos; 
+			float interp = binpos- lower; 
+			int upper = lower+1; 
+			
+			//linear interpolation
+			indexdata[indexnow] = lower; 
+			weightdata[indexnow] = 1.0 - interp; 
+			
+			//printf("lower oct %d div %d value: %d %f \n",j, i, indexdata[indexnow], weightdata[indexnow]); 
+			
+			++indexnow; 
+	
+			indexdata[indexnow] = upper; 
+			weightdata[indexnow] = interp; 
+			
+			
+			//printf("upper oct %d div %d value: %d %f \n",j, i, indexdata[indexnow], weightdata[indexnow]); 
+			
+			++indexnow; 
+	
+			freqnow *= ratio;
+			
+		}
+			
+		octavenow *= 2.0; 
+			
+	}
+
+	//would depend if taking harmonics as well as pure bin evidence
+	//int highestbin = 
+	//unit->fftpower_ = RTAlloc(unit->mWorld, sizeof(float)*highestbin); 
+	
+	//for now only need to calculate as go, no need for intermediate storage
+	unit->chroma_ = (float*)RTAlloc(unit->mWorld, sizeof(float)*divisions);
+
+	SETCALC(Chromagram_next_k);
+	
+	//in case of later interpolation, first output must be set to zero
+	for ( i=0; i<divisions; ++i) {
+		
+		unit->chroma_[i] = 0.0; 
+		
+		ZOUT0(i) = 0.f;
+	
+	}
+	
+	unit->numdivisions_ = divisions; 
+
+}
+
+void Chromagram_Dtor(Chromagram *unit)
+{
+	
+	RTFree(unit->mWorld, unit->indexdata_);
+	RTFree(unit->mWorld, unit->indexweights_);
+	RTFree(unit->mWorld, unit->chroma_);
+	
+}
+
+
+//NEXT: destructor then next function using octaves and divisions slots, with appropriate power calc
from fft data as go 
+
+
+void Chromagram_next_k( Chromagram *unit, int inNumSamples ) {
+	
+	int i, j; 
+	
+	int divisions = unit->numdivisions_; 
+	float * chroma =  unit->chroma_; 
+	int octaves = unit->octaves_; 
+	
+	//float *input = IN(0); 
+	
+	//int numSamples = unit->mWorld->mFullRate.mBufLength;
+
+	//if input is legitimate buffer number: 
+	
+	float fbufnum = ZIN0(0);
+	
+	//next FFT bufffer ready, update
+	//assuming at this point that buffer precalculated for any resampling
+	if (fbufnum > -0.01f) {
+		
+		int ibufnum = (uint32)fbufnum; 
+		
+		World *world = unit->mWorld;
+		SndBuf *buf; 
+		
+		if (ibufnum >= world->mNumSndBufs) {
+			int localBufNum = ibufnum - world->mNumSndBufs;
+			Graph *parent = unit->mParent;
+			if(localBufNum <= parent->localBufNum) {
+				buf = parent->mLocalSndBufs + localBufNum;
+			} else {
+				buf = world->mSndBufs;
+			}
+		} else {
+			buf = world->mSndBufs + ibufnum;
+		}
+		
+		//make sure in real and imag form
+		//SCComplexBuf * complexbuf = ToComplexApx(buf);  
+		
+		float * data= (float *)ToComplexApx(buf);
+		
+		//float * data= buf->data;
+		
+		//int numindices= unit->numindices_; 
+		
+		int * indexdata= unit->indexdata_; 
+		float * indexweights= unit->indexweights_; 
+		
+		float real, imag; 
+		int index, indexnow; //index2, 
+		float weight1, intensity1, weight2, intensity2; 
+		
+		
+		float norm = unit->chromanorm_; 
+		
+		//reset chroma unless keeping previous via leaky integration
+		if((int)(ZIN0(5)) > 0) {
+		
+			float integration  = ZIN0(6);  
+			
+			if (integration>0.999999999f) {
+				integration = 0.999999999f;
+			}
+			
+			for ( i=0; i<divisions; ++i) {
+				chroma[i] *= integration; 
+			}
+			
+			
+			
+		} else {
+			
+		for ( i=0; i<divisions; ++i) {
+			chroma[i] = 0.0; 
+		}
+			
+		}
+		
+		//for (int j=0; j< numindices; j+=2) {
+//		
+//					
+//			
+//		}
+//		
+		
+		for ( j=0; j<octaves; ++j) {
+			
+			indexnow = 2*j*divisions; 
+			
+			for ( i=0; i<divisions; ++i) {
+	
+				index = 2*indexdata[indexnow]; 
+				real= data[index];			
+				imag= data[index+1];
+				intensity1 = (real*real) + (imag*imag);  
+				weight1= indexweights[indexnow]; 
+				
+				index+=2; 
+				real= data[index];			
+				imag= data[index+1];
+				intensity2 = (real*real) + (imag*imag);  
+				weight2= indexweights[indexnow+1]; 
+				
+				
+				chroma[i] += (norm*(weight1*intensity1 + weight2*intensity2)); 
+				
+				indexnow+=2; 
+			}
+			
+		}
+		
+
+	}
+	
+
+	for (i=0; i<divisions; ++i)
+		ZOUT0(i) = chroma[i];
+	
+	
+}
+
+
+PluginLoad(Chromagram) {
+	
+	init_SCComplex(inTable);
+	
+	ft = inTable;
+
+	DefineDtorCantAliasUnit(Chromagram);
+		
+}
+
+
+
+
+
diff --git a/source/SCMIRUGens/FeatureSave.cpp b/source/SCMIRUGens/FeatureSave.cpp
new file mode 100644
index 0000000..3b20373
--- /dev/null
+++ b/source/SCMIRUGens/FeatureSave.cpp
 <at>  <at>  -0,0 +1,213  <at>  <at> 
+/*
+	SuperCollider real time audio synthesis system
+ Copyright (c) 2002 James McCartney. All rights reserved.
+	http://www.audiosynth.com
+ 
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ 
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+
+#include "SC_PlugIn.h"
+
+#include "stdio.h"
+
+InterfaceTable *ft; 
+
+
+struct FeatureSave : public Unit    
+{
+ 
+	int frameswritten_; 
+	int numfeatures_; 
+	//char * filename_;
+	int fileready_; 
+	
+	//open file data
+	FILE *fp;
+	
+};
+
+extern "C" {  
+	
+	void FeatureSave_next(FeatureSave *unit, int inNumSamples);
+	void FeatureSave_Ctor(FeatureSave* unit);
+	//void FeatureSave_Dtor(FeatureSave* unit);
+
+}
+
+
+void FeatureSaveUnitCmdFunc (Unit *unit, struct sc_msg_iter *args); 
+void FeatureSaveUnitCmdFunc2 (Unit *unit, struct sc_msg_iter *args); 
+
+
+
+//will need to create in NRT mode
+
+void FeatureSave_Ctor(FeatureSave* unit) {
+	
+	unit->frameswritten_ = 0; 
+	unit->fileready_ = 0; 
+	unit->numfeatures_ = IN0(0); 
+	
+	//printf("FeatureSave: numfeatures %d \n",unit->numfeatures_); 
+	
+	
+	DefineUnitCmd("FeatureSave","createfile",FeatureSaveUnitCmdFunc);
+	DefineUnitCmd("FeatureSave","closefile",FeatureSaveUnitCmdFunc2);
+	
+	
+	//printf("FeatureSave sanity check: unit pointer %p \n",unit->mUnitDef); 
+	
+	
+	//mCmds undefined here 
+	//unit->mUnitDef->mCmds; 
+	
+	
+	SETCALC(FeatureSave_next); 
+	
+}
+
+
+
+void FeatureSave_next(FeatureSave *unit, int inNumSamples) {
+
+	float trig = IN0(1); //trigger input
+
+	//if trigger and file open 
+
+	//printf("%f %d %d %d \n",trig, unit->fileready_, unit->numfeatures_, trig>(-0.01f));
+	//printf("FeatureSave:next sanity check: unit pointer %p \n",unit->mUnitDef); 
+	
+	if((trig>(-0.01f)) && (unit->fileready_==1)) {
+		
+		//printf("%f %d \n",trig, unit->fileready_); 
+		
+		//write to file
+		
+		for (int i=0; i<unit->numfeatures_; ++i) {
+		
+			float featureval = IN0(i+2);  
+			//printf("%d %f trig %f \n",i, featureval, trig); 
+			
+			//printf("featureval %f %d \n",featureval, unit->fileready_);
+			
+			
+			fwrite(&featureval, sizeof(float),1, unit->fp);
+			
+		}
+		
+		
+		++unit->frameswritten_; 
+		
+	}
+	
+	
+}
+
+
+
+void FeatureSaveUnitCmdFunc (Unit *unit, struct sc_msg_iter *args) {
+	
+	FeatureSave * fsave = (FeatureSave*) unit; 
+	
+	//message type:
+	//int cmdtype = args->geti();
+	 
+	
+	const char * stringarg = args->gets();
+	
+	//printf("got here at least %s\n",stringarg);
+	
+	//strcpy(fsave->filename_, stringarg);  
+	
+	//create file for writing 
+	//won't push to NRT thread for now since assuming only using this UGen in NRT mode to start with
+	
+	//fsave->fp = fopen(fsave->filename_, "wb");
+	fsave->fp = fopen(stringarg, "wb+");
+
+	//dummy header data for now
+	fwrite(&fsave->frameswritten_, sizeof(int),1, fsave->fp);
+	
+	fwrite(&fsave->numfeatures_, sizeof(int),1, fsave->fp);
+		
+	fsave->fileready_ = 1; 
+	
+}
+
+
+
+void FeatureSaveUnitCmdFunc2 (Unit *unit, struct sc_msg_iter *args) {
+	
+	FeatureSave * fsave = (FeatureSave*) unit; 
+	
+	//message type:
+	//int cmdtype = args->geti();
+	
+	fsave->fileready_ = 0; 
+	
+	//printf("ever called? %d \n", fsave->frameswritten_);
+	
+	//finalise header data: 
+	
+	//back to start
+	//rewind(fsave->fp); 
+	
+	fseek(fsave->fp, 0, SEEK_SET);
+	
+	//int testval = 64; 
+	//fwrite(&testval, sizeof(int),1, fsave->fp);
+	
+	fwrite(&fsave->frameswritten_, sizeof(int),1, fsave->fp);
+	
+//	int test; 
+//	fread(&test, sizeof(int),1, fsave->fp);
+//	printf("ever called 2? %d \n", test);
+//	
+//	
+//	fseek(fsave->fp, 0, SEEK_END);
+	
+	//close file
+	fclose(fsave->fp); 
+	
+	
+}
+
+PluginLoad(FeatureSave) {
+	
+	//FILE * testfile = fopen("blah", "wb");
+//	
+//	int numelements = 1000; 
+//	
+//	fwrite(&numelements, sizeof(int),1, testfile);
+//	
+//	for (int i=0; i<numelements; ++i) {
+//		float now = i*0.67; 
+//		fwrite(&now, sizeof(int),1, testfile);
+//	
+//	}
+//
+//	fclose(testfile); 
+	
+	
+	ft = inTable;
+	
+	DefineSimpleUnit(FeatureSave); 
+	
+}
+
+
+
+
diff --git a/source/SCMIRUGens/SensoryDissonance.cpp b/source/SCMIRUGens/SensoryDissonance.cpp
new file mode 100644
index 0000000..05b7bba
--- /dev/null
+++ b/source/SCMIRUGens/SensoryDissonance.cpp
 <at>  <at>  -0,0 +1,327  <at>  <at> 
+/*
+ *  Created by Nicholas Collins on 13/08/2010.
+ *  Copyright 2010 Nicholas M Collins. All rights reserved.
+ */
+
+//William A. Sethares method (see e.g., Consonance-Based Spectral Mappings, CMJ 22(1): 56-72, 1998). 
+//this is the harmonic dissonance method, looking for peaks in spectrum, and looking at proximity of
peaks as indicating potential dissonance
+//An alternative roughness formulation is a multiband filterbank with amplitude modulation detection
in each band looking for rates of 15-100Hz or so 
+
+//outputs dissonance measure
+//could also output number of detected peaks as an interesting auxilliary noisiness measure (could get
average dissonnance per peak from that, though not especially meaingful in itself?)
+
+
+//#define SC_DARWIN
+#include "SC_PlugIn.h"
+#include "FFT_UGens.h"
+
+
+InterfaceTable *ft; 
+
+
+struct SensoryDissonance : public Unit  
+{
+	int fftsize_; 
+	int topbin_; 
+	int frequencyperbin_; 
+	
+	float dissonance_; 
+
+	int maxnumpeaks_; 
+	float peakthreshold_; 
+	
+	float * peakfreqs_;
+	float * peakamps_; 
+	
+	float norm_; 
+	int clamp_; 
+	
+	int initfftsize_; 
+};
+
+
+
+
+extern "C" {  
+	
+	void SensoryDissonance_next_k(SensoryDissonance *unit, int inNumSamples);
+	void SensoryDissonance_Ctor(SensoryDissonance* unit);
+	void SensoryDissonance_Dtor(SensoryDissonance* unit);
+
+}
+
+
+
+
+
+void SensoryDissonance_Ctor( SensoryDissonance* unit ) {
+	
+	//int i, j; 
+	
+	unit->initfftsize_ = 0; //must defer this till have a buffer to check
+	
+	unit->maxnumpeaks_ = ZIN0(1); //100; 
+	unit->peakthreshold_ = ZIN0(2);
+	unit->peakfreqs_ = (float *)RTAlloc(unit->mWorld, sizeof(float)*unit->maxnumpeaks_); 
+	unit->peakamps_ = (float *)RTAlloc(unit->mWorld, sizeof(float)*unit->maxnumpeaks_);
+	
+	unit->norm_ = ZIN0(3); //0.01/unit->maxnumpeaks_; //unit->fftsize_; 
+	
+	unit->clamp_ = ZIN0(4); 
+	
+	SETCALC(SensoryDissonance_next_k);
+
+
+}
+
+void SensoryDissonance_Dtor(SensoryDissonance *unit)
+{
+	
+	RTFree(unit->mWorld, unit->peakfreqs_);
+	RTFree(unit->mWorld, unit->peakamps_);
+	
+}
+
+
+//NEXT: destructor then next function using octaves and divisions slots, with appropriate power calc
from fft data as go 
+
+
+void SensoryDissonance_next_k( SensoryDissonance *unit, int inNumSamples ) {
+	
+	//int i, j; 
+	
+	//float *input = IN(0); 
+	
+	//int numSamples = unit->mWorld->mFullRate.mBufLength;
+
+	//if input is legitimate buffer number: 
+	float fbufnum = ZIN0(0);
+	
+	//next FFT bufffer ready, update
+	//assuming at this point that buffer precalculated for any resampling
+	if (fbufnum > -0.01f) {
+		
+		int ibufnum = (uint32)fbufnum; 
+		
+		World *world = unit->mWorld;
+		SndBuf *buf; 
+		
+		if (ibufnum >= world->mNumSndBufs) {
+			int localBufNum = ibufnum - world->mNumSndBufs;
+			Graph *parent = unit->mParent;
+			if(localBufNum <= parent->localBufNum) {
+				buf = parent->mLocalSndBufs + localBufNum;
+			} else {
+				buf = world->mSndBufs;
+			}
+		} else {
+			buf = world->mSndBufs + ibufnum;
+		}
+		
+		
+		if(unit->initfftsize_ ==0) {
+	
+			double sr = unit->mWorld->mFullRate.mSampleRate; //never trust SAMPLERATE, gives UGens output
rate, not audio rate
+			//float nyquist = sr*0.5; 
+			
+			unit->fftsize_ = buf->frames; //ZIN0(1);
+			//printf("check fftsize %d \n",unit->fftsize_);
+			unit->topbin_= unit->fftsize_*0.25; 
+			
+			unit->frequencyperbin_ = sr / unit->fftsize_; 
+			
+			unit->initfftsize_ = 1; 
+		}
+		
+		//make sure in real and imag form
+		//SCComplexBuf * complexbuf = ToComplexApx(buf);  
+		
+		float * data= (float *)ToComplexApx(buf);
+		
+		//float * data= buf->data;
+		
+		//int numindices= unit->numindices_; 
+		
+		float * peakfreqs= unit->peakfreqs_; 
+		float * peakamps= unit->peakamps_; 
+		
+		float real, imag; 
+		int index; 
+		
+		int numpeaks = 0; 
+		int maxnumpeaks = unit->maxnumpeaks_; 
+		
+		float intensity; 
+		float position; 
+		
+		float threshold = unit->peakthreshold_; 
+		
+		//create powerspectrum
+		
+		float prev=0.0, now=0.0, next=0.0; 
+		
+		float frequencyperbin = unit->frequencyperbin_; 
+		
+		//float totalpeakpower = 0.0f; 
+		float temp1, refinement; 
+		
+		for (int j=1; j<=unit->topbin_; ++j) {
+				
+				index = 2*j; 
+				real= data[index];			
+				imag= data[index+1];
+				intensity = (real*real) + (imag*imag);  
+//				
+				
+			
+			next= intensity; 
+			
+			if(j>=3) {
+			
+				//hunt for peaks
+				
+				//look for peak by scoring within +-3
+				//assume peak must be centrally greater than 60dB say
+				
+				//powertest_
+				//minpeakdB_ was 60
+				
+				if (now>threshold)  {
+					
+					//y1= powerspectrum_[i-1];
+					//				//y2= valuenow;
+					//				y3= powerspectrum_[i+1];
+					//				
+					if ((now>prev) && (now>next)) {
+						
+						//second peak condition; sum of second differences must be positive
+						//NCfloat testsum= (valuenow - powerspectrum_[i-2]) + (valuenow - powerspectrum_[i+2]);
+						
+						//if (testsum>0.0) {
+						
+						//refine estimate of peak using quadratic function
+						//see workbook 28th Jan 2010
+						
+						temp1= prev+next-(2*now);  					
+						
+						if (fabs(temp1)>0.00001) {
+							position=(prev-next)/(2*temp1);
+							
+							//running quadratic formula
+							refinement = (0.5*temp1*(position*position)) + (0.5*(next-prev)*position) + now;
+							//refinement= y2 -  (((y3-y1)^2)/(8*temp1));
+							
+						} else {
+							//degenerate straight line case; shouldn't occur
+							//since require greater than for peak, not equality
+							
+							position=0.0; //may as well take centre
+							
+							//bettervalue= max([y1,y2,y3]); %straight line through them, find max
+							
+							refinement= now; //must be max for else would have picked another one in previous calculation! %max([y1,y2,y3]);
+							
+						}
+						
+						//correct??????????????????????????????
+						peakfreqs[numpeaks] = (j-1+position)*frequencyperbin; //frequencyconversion; 
+						//printf("peakfrequencies %d is %f from i %d position %f freqperbin %f \n",
numpeaks_,peakfrequencies_[numpeaks_],i, position, frequencyperbin_); 
+						
+						peakamps[numpeaks] = sqrt(refinement); //Sethares formula requires amplitudes  
+						//totalpeakpower += refinement; 
+						
+						//cout << " peak " << numpeaks_ << " " << peakfrequencies_[numpeaks_] << " " << refinement << " " ; 
+						
+						++numpeaks; 
+						
+						//}
+						
+					}
+					
+				}
+				
+				//test against maxnumberpeaks_
+				if ( numpeaks == maxnumpeaks )
+					break;
+				
+				
+				
+			}
+			
+			prev = now; now=next; 
+			
+			
+					
+			
+			
+			
+			
+		}
+		
+		
+		//now have list of peaks: calculate total dissonance: 
+		
+		//iterate through peaks, matching each to min of next 10, and no more than octave, using Sethares p. 58
CMJ article
+		
+		float dissonancesum = 0.0; 
+		
+		float f1, v1, f2, v2; 
+		float d; 
+		float diff; //, minf; 
+		float s, a, b; 
+		float octave; 
+		
+		for (int i=0; i<(numpeaks-1); ++i) {
+			
+			f1 = peakfreqs[i]; 
+			v1 = peakamps[i]; 
+			s = 0.24f/(0.21f*f1+19.f); //constant needed as denominator in formula
+			a = -3.5f*s; 
+			b= -5.75f*s; 
+			
+			octave = 2.0f*f1; 
+			
+			for (int k=i+1; k<sc_min(i+20,numpeaks); ++k) {
+					
+				f2 = peakfreqs[k]; 
+				v2 = peakamps[k]; 
+				
+				if(f2>octave) break; //shortcut escape if separated by more than an octave
+				
+				diff = f2-f1; //no need for fabs, f2>f1
+				//minf =  //always f1 lower
+				
+				
+				
+				d = v1*v2*(exp(a*diff) - exp(b*diff));
+				
+				dissonancesum += d; 
+			}
+			
+		}
+		
+		unit->dissonance_ = sc_min(unit->clamp_,dissonancesum*unit->norm_); //numpeaks;
//dissonancesum;  //divide by fftsize as compensation for amplitudes via FFT
+
+	}
+	
+
+	//ZOUT0(i) = unit->dissonance_;
+	ZOUT0(0) = unit->dissonance_;
+	
+}
+
+
+PluginLoad(SensoryDissonance) {
+	
+	init_SCComplex(inTable);
+	
+	ft = inTable;
+
+	DefineDtorCantAliasUnit(SensoryDissonance);
+		
+}
+
+
+
+
+
diff --git a/source/SCMIRUGens/sc/Classes/Chromagram.sc b/source/SCMIRUGens/sc/Classes/Chromagram.sc
new file mode 100644
index 0000000..77e9de5
--- /dev/null
+++ b/source/SCMIRUGens/sc/Classes/Chromagram.sc
 <at>  <at>  -0,0 +1,13  <at>  <at> 
+Chromagram : MultiOutUGen {	
+
+	*kr {
+		arg fft, fftsize=2048, n=12, tuningbase=32.703195662575, octaves=8, integrationflag=0, coeff=0.9;
+		^this.multiNew('control', fft, fftsize, n, tuningbase, octaves, integrationflag, coeff);
+	}
+	
+	init { arg ... theInputs;
+		inputs = theInputs;
+
+		^this.initOutputs(theInputs[2], rate);
+	}
+}
diff --git a/source/SCMIRUGens/sc/Classes/FeatureSave.sc b/source/SCMIRUGens/sc/Classes/FeatureSave.sc
new file mode 100644
index 0000000..15e8586
--- /dev/null
+++ b/source/SCMIRUGens/sc/Classes/FeatureSave.sc
 <at>  <at>  -0,0 +1,10  <at>  <at> 
+FeatureSave : UGen {
+
+	*kr {arg features, trig; 
+		 
+		 
+		^this.multiNewList(['control', features.size.max(1), trig] ++ features.asArray)
+	}	
+	
+}
+
diff --git a/source/SCMIRUGens/sc/Classes/SensoryDissonance.sc b/source/SCMIRUGens/sc/Classes/SensoryDissonance.sc
new file mode 100644
index 0000000..5fc6927
--- /dev/null
+++ b/source/SCMIRUGens/sc/Classes/SensoryDissonance.sc
 <at>  <at>  -0,0 +1,11  <at>  <at> 
+SensoryDissonance : UGen {	
+
+	*kr {
+		arg fft, maxpeaks=100, peakthreshold=0.1, norm, clamp=1.0;
+		
+		norm = norm ?? {0.01/maxpeaks};
+		
+		^this.multiNew('control', fft, maxpeaks, peakthreshold, norm, clamp);
+	}
+	
+}
diff --git a/source/SCMIRUGens/sc/HelpSource/Classes/Chromagram.schelp b/source/SCMIRUGens/sc/HelpSource/Classes/Chromagram.schelp
new file mode 100644
index 0000000..fbc5bc7
--- /dev/null
+++ b/source/SCMIRUGens/sc/HelpSource/Classes/Chromagram.schelp
 <at>  <at>  -0,0 +1,135  <at>  <at> 
+class:: Chromagram
+summary:: Octave chroma band based representation of energy in a signal; Chromagram for nTET tuning
systems with any base reference
+related:: Classes/SensoryDissonance
+categories:: UGens>Analysis
+keyword:: Chroma, pitch class, equal temperament, filter bank 
+
+Description::
+
+A chromagram, measuring the energy at particular chroma within an nTET tuning system. 
+
+
+Possible extension:  
+TODO: tritave and other non-standard octaves 
+TODO: Could have arbitrary tuning systems if precalculated the exact fft bin + interpolation data. 
+TODO: chroma as energy independent, relative to total fft energy in polled bins or whole spectrum?
+
+
+classmethods::
+
+method::kr
+
+
+argument::fft 
+input fft chain, that is, from an FFT UGen
+argument::fftsize
+FFT size, required for initialisation 
+argument::n
+Equal divisions of an octave, e.g. n=12 is 12TET, 12 steps in an octave
+argument::tuningbase
+Base frequency or tuning; will correspong to index 0 in results (conventionally, this would be a 'C' in
12TET, but its an arbitrary reference)
+argument::octaves
+Number of octaves considered from tuning base up
+argument::integrationflag
+Whether to integrate from frame to frame, off by default
+argument::coeff
+Coefficient of integration
+
+Examples::
+
+code::
+
+
+(
+{
+
+var in, fft, chroma;
+
+//in = SinOsc.ar(440,0,0.1); 
+in= SoundIn.ar; 
+
+fft = FFT(LocalBuf(2048), in);
+
+chroma=Chromagram.kr(fft);
+
+chroma.poll; 
+
+Out.ar(0,Pan2.ar(in)); 
+}.play
+)
+
+
+
+//n TET display 
+
+n= 12; //19, 24
+
+(
+x = {
+
+var in, fft, chroma;
+
+//in = SinOsc.ar(440,0,0.1); 
+in= SoundIn.ar; 
+
+fft = FFT(LocalBuf(2048), in);
+
+chroma=Chromagram.kr(fft, 2048, n);
+
+//chroma=Chromagram.kr(fft, 2048, n, 36.midicps, 7, 1, 0.9);
+
+Out.kr(0,chroma); 
+}.play; 
+
+c= Bus.new('control', 0, n); 
+
+)
+
+
+
+//poll coefficients snapshot
+c.getn(n,{arg val; {val.plot;}.defer}); 
+
+
+
+//Continuous graphical display of Chromagram values; free routine before closing window
+
+(
+var ms; 
+
+w=Window.new((n.asString)++" chroma coefficients", Rect(200,400,n*20+50,300));
+
+ms= MultiSliderView.new(w, Rect(10,10,n*20,280));
+
+ms.value_(Array.fill(n,0.0));
+ms.valueThumbSize_(20.0);
+ms.indexThumbSize_(20.0);
+ms.gap_(0);
+
+w.front;
+
+r= {
+
+inf.do{
+
+c.getn(n,{arg val; {ms.value_(val)}.defer}); 
+
+0.04.wait; //25 frames per second
+};
+
+}.fork;
+
+w.onClose = {
+r.stop;
+c.free;
+x.free;
+}; 
+
+)
+
+
+
+b.free;
+
+
+::
diff --git a/source/SCMIRUGens/sc/HelpSource/Classes/FeatureSave.schelp b/source/SCMIRUGens/sc/HelpSource/Classes/FeatureSave.schelp
new file mode 100644
index 0000000..e3a1169
--- /dev/null
+++ b/source/SCMIRUGens/sc/HelpSource/Classes/FeatureSave.schelp
 <at>  <at>  -0,0 +1,38  <at>  <at> 
+class:: FeatureSave
+summary:: Storing feature data from UGens in NRT mode
+categories:: UGens>Analysis
+keyword:: NRT mode, feature data
+
+Description::
+
+Create files of feature data from analysis UGens in NRT mode.
+
+
+classmethods::
+
+method::kr
+
+argument::features 
+input feature array for sampling on triggers
+argument::trig
+Trigger input, one stored feature vector at each trigger. Note that trig must be at least (-0.01) to
trigger, to allow bufnums of 0 to act as a trigger when driving things from FFT analysis
+
+Examples::
+
+code::
+
+//Should really only do this in NRT, but does work if low load in RT 
+(
+a = {
+	
+~featuresave = FeatureSave.kr(SinOsc.kr,Impulse.kr(10)-0.5);  
+	
+}.play		 
+)
+
+s.sendMsg("/u_cmd", a.nodeID, ~featuresave.synthIndex, "createfile", "testfile2.data")
+
+s.sendMsg("/u_cmd", a.nodeID, ~featuresave.synthIndex, "closefile")
+
+
+::
diff --git a/source/SCMIRUGens/sc/HelpSource/Classes/SensoryDissonance.schelp b/source/SCMIRUGens/sc/HelpSource/Classes/SensoryDissonance.schelp
new file mode 100644
index 0000000..21784ba
--- /dev/null
+++ b/source/SCMIRUGens/sc/HelpSource/Classes/SensoryDissonance.schelp
 <at>  <at>  -0,0 +1,77  <at>  <at> 
+class:: SensoryDissonance
+summary:: Perceptual feature modeling sensory dissonance
+related:: Classes/Chromagram
+categories:: UGens>Analysis
+keyword:: psychoacoustic measure, sensory dissonance
+
+Description::
+
+Sensory Dissonance model, measuring roughness between pairs of prominent spectral peaks. Follows the
algorithm in William A. Sethares (1998) Consonance-Based Spectral Mappings. CMJ 22(1): 56-72. 
+
+In usual use, you probably won't care about the other arguments; just pass an FFT in, assuming FFT size 2048
by default. 
+
+
+classmethods::
+
+method::kr
+
+
+argument::fft
+input fft chain, that is, from an FFT UGen
+argument::maxpeaks
+Maximum number of spectral peaks detected; cannot be modulated, initialisation only. 
+argument::peakthreshold
+Minimum spectral power detection threshold for a peak 
+argument::norm
+Normalisation factor. Calculated for you in the UGen class if you don't provide one, but you can
experiment here. In combination with the next argument and maxpeaks, allows you to have alternative
range outputs if you so desire. 
+argument::clamp
+Clamps very high dissonances, in default mode will end up with sensory dissonance measure in range 0.0 to 1.0
+
+Examples::
+
+code::
+
+
+(
+{
+
+var in, fft, dissonance;
+
+//in = SinOsc.ar(MouseX.kr(100,1000),0,0.1);
+//in = Mix(SinOsc.ar([440,MouseX.kr(440,880)],0,0.1));  
+in= SoundIn.ar; 
+
+fft = FFT(LocalBuf(2048), in);
+
+dissonance=SensoryDissonance.kr(fft);
+
+dissonance.poll; 
+
+Out.ar(0,Pan2.ar(0.1*Blip.ar(100,(dissonance.sqrt)*200))); 
+}.play
+)
+
+
+
+//different fftsize, max num peaks, own normalisation, avoid clamping by setting high value (more CPU
cost) 
+(
+{
+
+var in, fft, dissonance;
+
+//in = SinOsc.ar(MouseX.kr(100,1000),0,0.1);
+//in = Mix(SinOsc.ar([440,MouseX.kr(440,880)],0,0.1));  
+in= SoundIn.ar; 
+
+fft = FFT(LocalBuf(4096), in);
+
+dissonance=SensoryDissonance.kr(fft,500,1.0,1.0,999999);
+
+dissonance.poll; 
+
+Out.ar(0,SinOsc.ar(dissonance*0.1,0,0.1)); 
+}.play
+)
+
+
+::
-----------------------------------------------------------------------

Summary of changes:
 source/CMakeLists.txt                              |    1 +
 source/SCMIRUGens/Chromagram.cpp                   |  332 ++++++++++++++++++++
 source/SCMIRUGens/FeatureSave.cpp                  |  213 +++++++++++++
 source/SCMIRUGens/SensoryDissonance.cpp            |  327 +++++++++++++++++++
 source/SCMIRUGens/sc/Classes/Chromagram.sc         |   13 +
 source/SCMIRUGens/sc/Classes/FeatureSave.sc        |   10 +
 source/SCMIRUGens/sc/Classes/SensoryDissonance.sc  |   11 +
 .../sc/HelpSource/Classes/Chromagram.schelp        |  135 ++++++++
 .../sc/HelpSource/Classes/FeatureSave.schelp       |   38 +++
 .../sc/HelpSource/Classes/SensoryDissonance.schelp |   77 +++++
 10 files changed, 1157 insertions(+), 0 deletions(-)
 create mode 100644 source/SCMIRUGens/Chromagram.cpp
 create mode 100644 source/SCMIRUGens/FeatureSave.cpp
 create mode 100644 source/SCMIRUGens/SensoryDissonance.cpp
 create mode 100644 source/SCMIRUGens/sc/Classes/Chromagram.sc
 create mode 100644 source/SCMIRUGens/sc/Classes/FeatureSave.sc
 create mode 100644 source/SCMIRUGens/sc/Classes/SensoryDissonance.sc
 create mode 100644 source/SCMIRUGens/sc/HelpSource/Classes/Chromagram.schelp
 create mode 100644 source/SCMIRUGens/sc/HelpSource/Classes/FeatureSave.schelp
 create mode 100644 source/SCMIRUGens/sc/HelpSource/Classes/SensoryDissonance.schelp

hooks/post-receive
--

-- 
sc3-plugins

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

yvan volochine | 1 Jul 2012 17:14

Re: [osx] Error installing 3.6 (fixup_bundle)

On 06/27/2012 10:19 AM, yvan volochine wrote:
> hello.
>
> it's been a long time I didn't try to build on my bloated osx machine
> (10.5.8).
> with latest git it just built fine but `make install' failed:
>
> http://pastie.org/4158836

sorry to bump this but I'd really appreciate some hints on that one.
I hope I don't miss the obvious though...

thanks
y

--

-- 
http://yvanvolochine.com
http://soundcloud.com/yvanvolochine
http://vimeo.com/yv

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

GitHub | 1 Jul 2012 18:00

[supercollider/supercollider] 880320: external libraries: update boost to v1.50

  Branch: refs/heads/master
  Home:   https://github.com/supercollider/supercollider
  Commit: 8803209cca4a91a80a882da77ab06b9f4ddc31ba
      https://github.com/supercollider/supercollider/commit/8803209cca4a91a80a882da77ab06b9f4ddc31ba
  Author: Tim Blechmann <tim@...>
  Date:   2012-07-01 (Sun, 01 Jul 2012)

  Changed paths:
    M external_libraries/CMakeLists.txt
    M external_libraries/boost/boost/algorithm/string/find.hpp
    M external_libraries/boost/boost/array.hpp
    M external_libraries/boost/boost/asio/detail/config.hpp
    M external_libraries/boost/boost/asio/detail/epoll_reactor.hpp
    M external_libraries/boost/boost/asio/detail/impl/epoll_reactor.ipp
    M external_libraries/boost/boost/asio/detail/impl/strand_service.ipp
    M external_libraries/boost/boost/asio/detail/impl/task_io_service.ipp
    M external_libraries/boost/boost/asio/detail/task_io_service.hpp
    M external_libraries/boost/boost/asio/detail/win_iocp_io_service.hpp
    M external_libraries/boost/boost/asio/version.hpp
    M external_libraries/boost/boost/asio/windows/basic_object_handle.hpp
    A external_libraries/boost/boost/chrono/ceil.hpp
    A external_libraries/boost/boost/chrono/chrono.hpp
    A external_libraries/boost/boost/chrono/clock_string.hpp
    A external_libraries/boost/boost/chrono/config.hpp
    A external_libraries/boost/boost/chrono/detail/inlined/chrono.hpp
    A external_libraries/boost/boost/chrono/detail/inlined/mac/chrono.hpp
    A external_libraries/boost/boost/chrono/detail/inlined/posix/chrono.hpp
    A external_libraries/boost/boost/chrono/detail/inlined/win/chrono.hpp
    A external_libraries/boost/boost/chrono/detail/is_evenly_divisible_by.hpp
    A external_libraries/boost/boost/chrono/detail/static_assert.hpp
    A external_libraries/boost/boost/chrono/detail/system.hpp
    A external_libraries/boost/boost/chrono/duration.hpp
    A external_libraries/boost/boost/chrono/system_clocks.hpp
    A external_libraries/boost/boost/chrono/time_point.hpp
    M external_libraries/boost/boost/concept_check.hpp
    M external_libraries/boost/boost/config/compiler/borland.hpp
    M external_libraries/boost/boost/config/compiler/clang.hpp
    M external_libraries/boost/boost/config/compiler/codegear.hpp
    M external_libraries/boost/boost/config/compiler/common_edg.hpp
    M external_libraries/boost/boost/config/compiler/cray.hpp
    M external_libraries/boost/boost/config/compiler/digitalmars.hpp
    M external_libraries/boost/boost/config/compiler/gcc.hpp
    M external_libraries/boost/boost/config/compiler/gcc_xml.hpp
    M external_libraries/boost/boost/config/compiler/hp_acc.hpp
    M external_libraries/boost/boost/config/compiler/intel.hpp
    M external_libraries/boost/boost/config/compiler/metrowerks.hpp
    M external_libraries/boost/boost/config/compiler/mpw.hpp
    M external_libraries/boost/boost/config/compiler/pathscale.hpp
    M external_libraries/boost/boost/config/compiler/pgi.hpp
    M external_libraries/boost/boost/config/compiler/sunpro_cc.hpp
    M external_libraries/boost/boost/config/compiler/vacpp.hpp
    M external_libraries/boost/boost/config/compiler/visualc.hpp
    M external_libraries/boost/boost/config/stdlib/dinkumware.hpp
    M external_libraries/boost/boost/config/stdlib/libcomo.hpp
    M external_libraries/boost/boost/config/stdlib/libcpp.hpp
    M external_libraries/boost/boost/config/stdlib/libstdcpp3.hpp
    M external_libraries/boost/boost/config/stdlib/modena.hpp
    M external_libraries/boost/boost/config/stdlib/msl.hpp
    M external_libraries/boost/boost/config/stdlib/roguewave.hpp
    M external_libraries/boost/boost/config/stdlib/sgi.hpp
    M external_libraries/boost/boost/config/stdlib/stlport.hpp
    M external_libraries/boost/boost/config/stdlib/vacpp.hpp
    M external_libraries/boost/boost/config/suffix.hpp
    R external_libraries/boost/boost/container/allocator/allocator_traits.hpp
    R external_libraries/boost/boost/container/allocator/memory_util.hpp
    A external_libraries/boost/boost/container/allocator_traits.hpp
    M external_libraries/boost/boost/container/container_fwd.hpp
    M external_libraries/boost/boost/container/detail/advanced_insert_int.hpp
    M external_libraries/boost/boost/container/detail/algorithms.hpp
    M external_libraries/boost/boost/container/detail/allocation_type.hpp
    M external_libraries/boost/boost/container/detail/config_begin.hpp
    M external_libraries/boost/boost/container/detail/config_end.hpp
    M external_libraries/boost/boost/container/detail/destroyers.hpp
    M external_libraries/boost/boost/container/detail/iterators.hpp
    A external_libraries/boost/boost/container/detail/memory_util.hpp
    M external_libraries/boost/boost/container/detail/mpl.hpp
    M external_libraries/boost/boost/container/detail/multiallocation_chain.hpp
    A external_libraries/boost/boost/container/detail/pair.hpp
    M external_libraries/boost/boost/container/detail/preprocessor.hpp
    M external_libraries/boost/boost/container/detail/stored_ref.hpp
    M external_libraries/boost/boost/container/detail/transform_iterator.hpp
    M external_libraries/boost/boost/container/detail/type_traits.hpp
    M external_libraries/boost/boost/container/detail/utilities.hpp
    M external_libraries/boost/boost/container/detail/value_init.hpp
    M external_libraries/boost/boost/container/detail/variadic_templates_tools.hpp
    M external_libraries/boost/boost/container/detail/version_type.hpp
    M external_libraries/boost/boost/container/detail/workaround.hpp
    A external_libraries/boost/boost/container/scoped_allocator.hpp
    M external_libraries/boost/boost/container/vector.hpp
    M external_libraries/boost/boost/date_time/c_time.hpp
    M external_libraries/boost/boost/date_time/date_formatting.hpp
    M external_libraries/boost/boost/date_time/filetime_functions.hpp
    M external_libraries/boost/boost/date_time/gregorian_calendar.ipp
    M external_libraries/boost/boost/date_time/strings_from_facet.hpp
    M external_libraries/boost/boost/date_time/time_facet.hpp
    M external_libraries/boost/boost/detail/container_fwd.hpp
    R external_libraries/boost/boost/detail/lightweight_main.hpp
    R external_libraries/boost/boost/detail/lightweight_test.hpp
    M external_libraries/boost/boost/detail/scoped_enum_emulation.hpp
    A external_libraries/boost/boost/detail/utf8_codecvt_facet.ipp
    A external_libraries/boost/boost/detail/win/GetLastError.hpp
    A external_libraries/boost/boost/detail/win/basic_types.hpp
    A external_libraries/boost/boost/detail/win/time.hpp
    A external_libraries/boost/boost/detail/win/timers.hpp
    M external_libraries/boost/boost/exception/detail/attribute_noreturn.hpp
    M external_libraries/boost/boost/exception/detail/error_info_impl.hpp
    M external_libraries/boost/boost/exception/detail/exception_ptr.hpp
    M external_libraries/boost/boost/exception/exception.hpp
    M external_libraries/boost/boost/exception/info.hpp
    M external_libraries/boost/boost/filesystem.hpp
    M external_libraries/boost/boost/filesystem/config.hpp
    M external_libraries/boost/boost/filesystem/convenience.hpp
    R external_libraries/boost/boost/filesystem/fstream.hpp
    M external_libraries/boost/boost/filesystem/operations.hpp
    M external_libraries/boost/boost/filesystem/path.hpp
    A external_libraries/boost/boost/filesystem/path_traits.hpp
    R external_libraries/boost/boost/filesystem/v2/config.hpp
    R external_libraries/boost/boost/filesystem/v2/convenience.hpp
    R external_libraries/boost/boost/filesystem/v2/fstream.hpp
    R external_libraries/boost/boost/filesystem/v2/operations.hpp
    R external_libraries/boost/boost/filesystem/v2/path.hpp
    R external_libraries/boost/boost/filesystem/v3/config.hpp
    R external_libraries/boost/boost/filesystem/v3/convenience.hpp
    R external_libraries/boost/boost/filesystem/v3/fstream.hpp
    R external_libraries/boost/boost/filesystem/v3/operations.hpp
    R external_libraries/boost/boost/filesystem/v3/path.hpp
    R external_libraries/boost/boost/filesystem/v3/path_traits.hpp
    M external_libraries/boost/boost/foreach.hpp
    M external_libraries/boost/boost/foreach_fwd.hpp
    A external_libraries/boost/boost/functional/hash/detail/container_fwd_0x.hpp
    M external_libraries/boost/boost/functional/hash/detail/hash_float.hpp
    M external_libraries/boost/boost/functional/hash/extensions.hpp
    M external_libraries/boost/boost/fusion/container/list/detail/at_impl.hpp
    M external_libraries/boost/boost/fusion/container/vector/detail/at_impl.hpp
    M external_libraries/boost/boost/fusion/container/vector/detail/deref_impl.hpp
    M external_libraries/boost/boost/fusion/support/detail/access.hpp
    R external_libraries/boost/boost/implicit_cast.hpp
    M external_libraries/boost/boost/integer.hpp
    M external_libraries/boost/boost/integer_traits.hpp
    M external_libraries/boost/boost/interprocess/allocators/allocator.hpp
    M external_libraries/boost/boost/interprocess/allocators/detail/allocator_common.hpp
    M external_libraries/boost/boost/interprocess/detail/atomic.hpp
    M external_libraries/boost/boost/interprocess/detail/config_begin.hpp
    M external_libraries/boost/boost/interprocess/detail/in_place_interface.hpp
    A external_libraries/boost/boost/interprocess/detail/intermodule_singleton_common.hpp
    A external_libraries/boost/boost/interprocess/detail/managed_global_memory.hpp
    M external_libraries/boost/boost/interprocess/detail/managed_memory_impl.hpp
    M external_libraries/boost/boost/interprocess/detail/managed_open_or_create_impl.hpp
    M external_libraries/boost/boost/interprocess/detail/math_functions.hpp
    M external_libraries/boost/boost/interprocess/detail/min_max.hpp
    M external_libraries/boost/boost/interprocess/detail/mpl.hpp
    M external_libraries/boost/boost/interprocess/detail/named_proxy.hpp
    M external_libraries/boost/boost/interprocess/detail/os_file_functions.hpp
    M external_libraries/boost/boost/interprocess/detail/os_thread_functions.hpp
    M external_libraries/boost/boost/interprocess/detail/posix_time_types_wrk.hpp
    M external_libraries/boost/boost/interprocess/detail/preprocessor.hpp
    M external_libraries/boost/boost/interprocess/detail/segment_manager_helper.hpp
    M external_libraries/boost/boost/interprocess/detail/tmp_dir_helpers.hpp
    M external_libraries/boost/boost/interprocess/detail/transform_iterator.hpp
    M external_libraries/boost/boost/interprocess/detail/type_traits.hpp
    M external_libraries/boost/boost/interprocess/detail/utilities.hpp
    M external_libraries/boost/boost/interprocess/detail/variadic_templates_tools.hpp
    M external_libraries/boost/boost/interprocess/detail/win32_api.hpp
    A external_libraries/boost/boost/interprocess/detail/windows_intermodule_singleton.hpp
    M external_libraries/boost/boost/interprocess/detail/workaround.hpp
    M external_libraries/boost/boost/interprocess/errors.hpp
    M external_libraries/boost/boost/interprocess/indexes/iset_index.hpp
    M external_libraries/boost/boost/interprocess/interprocess_fwd.hpp
    M external_libraries/boost/boost/interprocess/managed_shared_memory.hpp
    M external_libraries/boost/boost/interprocess/mapped_region.hpp
    M external_libraries/boost/boost/interprocess/mem_algo/detail/mem_algo_common.hpp
    M external_libraries/boost/boost/interprocess/mem_algo/rbtree_best_fit.hpp
    M external_libraries/boost/boost/interprocess/offset_ptr.hpp
    M external_libraries/boost/boost/interprocess/segment_manager.hpp
    M external_libraries/boost/boost/interprocess/shared_memory_object.hpp
    M external_libraries/boost/boost/interprocess/smart_ptr/deleter.hpp
    M external_libraries/boost/boost/interprocess/streams/bufferstream.hpp
    M external_libraries/boost/boost/interprocess/sync/interprocess_mutex.hpp
    M external_libraries/boost/boost/interprocess/sync/interprocess_recursive_mutex.hpp
    M external_libraries/boost/boost/interprocess/sync/mutex_family.hpp
    M external_libraries/boost/boost/interprocess/sync/posix/mutex.hpp
    M external_libraries/boost/boost/interprocess/sync/posix/pthread_helpers.hpp
    M external_libraries/boost/boost/interprocess/sync/posix/recursive_mutex.hpp
    M external_libraries/boost/boost/interprocess/sync/scoped_lock.hpp
    M external_libraries/boost/boost/interprocess/sync/spin/mutex.hpp
    M external_libraries/boost/boost/interprocess/sync/spin/recursive_mutex.hpp
    A external_libraries/boost/boost/interprocess/sync/windows/mutex.hpp
    A external_libraries/boost/boost/interprocess/sync/windows/recursive_mutex.hpp
    A external_libraries/boost/boost/interprocess/sync/windows/sync_utils.hpp
    A external_libraries/boost/boost/interprocess/sync/windows/winapi_mutex_wrapper.hpp
    A external_libraries/boost/boost/interprocess/sync/windows/winapi_semaphore_wrapper.hpp
    A external_libraries/boost/boost/interprocess/windows_shared_memory.hpp
    M external_libraries/boost/boost/intrusive/bs_set_hook.hpp
    M external_libraries/boost/boost/intrusive/circular_list_algorithms.hpp
    M external_libraries/boost/boost/intrusive/circular_slist_algorithms.hpp
    M external_libraries/boost/boost/intrusive/detail/assert.hpp
    M external_libraries/boost/boost/intrusive/detail/common_slist_algorithms.hpp
    M external_libraries/boost/boost/intrusive/detail/config_begin.hpp
    M external_libraries/boost/boost/intrusive/detail/function_detector.hpp
    M external_libraries/boost/boost/intrusive/detail/generic_hook.hpp
    M external_libraries/boost/boost/intrusive/detail/has_member_function_callable_with.hpp
    M external_libraries/boost/boost/intrusive/detail/hashtable_node.hpp
    M external_libraries/boost/boost/intrusive/detail/list_node.hpp
    M external_libraries/boost/boost/intrusive/detail/memory_util.hpp
    M external_libraries/boost/boost/intrusive/detail/mpl.hpp
    M external_libraries/boost/boost/intrusive/detail/parent_from_member.hpp
    M external_libraries/boost/boost/intrusive/detail/preprocessor.hpp
    M external_libraries/boost/boost/intrusive/detail/rbtree_node.hpp
    M external_libraries/boost/boost/intrusive/detail/slist_node.hpp
    M external_libraries/boost/boost/intrusive/detail/transform_iterator.hpp
    M external_libraries/boost/boost/intrusive/detail/tree_algorithms.hpp
    M external_libraries/boost/boost/intrusive/detail/tree_node.hpp
    M external_libraries/boost/boost/intrusive/detail/utilities.hpp
    M external_libraries/boost/boost/intrusive/hashtable.hpp
    M external_libraries/boost/boost/intrusive/linear_slist_algorithms.hpp
    M external_libraries/boost/boost/intrusive/link_mode.hpp
    M external_libraries/boost/boost/intrusive/list.hpp
    M external_libraries/boost/boost/intrusive/list_hook.hpp
    M external_libraries/boost/boost/intrusive/options.hpp
    M external_libraries/boost/boost/intrusive/pointer_plus_bits.hpp
    M external_libraries/boost/boost/intrusive/pointer_traits.hpp
    M external_libraries/boost/boost/intrusive/rbtree.hpp
    M external_libraries/boost/boost/intrusive/rbtree_algorithms.hpp
    M external_libraries/boost/boost/intrusive/set.hpp
    M external_libraries/boost/boost/intrusive/set_hook.hpp
    M external_libraries/boost/boost/intrusive/slist.hpp
    M external_libraries/boost/boost/intrusive/slist_hook.hpp
    M external_libraries/boost/boost/intrusive/treap.hpp
    M external_libraries/boost/boost/intrusive/treap_algorithms.hpp
    M external_libraries/boost/boost/intrusive/treap_set.hpp
    M external_libraries/boost/boost/intrusive/trivial_value_traits.hpp
    M external_libraries/boost/boost/intrusive/unordered_set.hpp
    M external_libraries/boost/boost/intrusive/unordered_set_hook.hpp
    R external_libraries/boost/boost/iostreams/categories.hpp
    R external_libraries/boost/boost/iostreams/char_traits.hpp
    R external_libraries/boost/boost/iostreams/checked_operations.hpp
    R external_libraries/boost/boost/iostreams/close.hpp
    R external_libraries/boost/boost/iostreams/concepts.hpp
    R external_libraries/boost/boost/iostreams/constants.hpp
    R external_libraries/boost/boost/iostreams/detail/adapter/concept_adapter.hpp
    R external_libraries/boost/boost/iostreams/detail/adapter/mode_adapter.hpp
    R external_libraries/boost/boost/iostreams/detail/adapter/non_blocking_adapter.hpp
    R external_libraries/boost/boost/iostreams/detail/adapter/output_iterator_adapter.hpp
    R external_libraries/boost/boost/iostreams/detail/adapter/range_adapter.hpp
    R external_libraries/boost/boost/iostreams/detail/bool_trait_def.hpp
    R external_libraries/boost/boost/iostreams/detail/broken_overload_resolution/forward.hpp
    R external_libraries/boost/boost/iostreams/detail/broken_overload_resolution/stream.hpp
    R external_libraries/boost/boost/iostreams/detail/broken_overload_resolution/stream_buffer.hpp
    R external_libraries/boost/boost/iostreams/detail/buffer.hpp
    R external_libraries/boost/boost/iostreams/detail/call_traits.hpp
    R external_libraries/boost/boost/iostreams/detail/char_traits.hpp
    R external_libraries/boost/boost/iostreams/detail/config/codecvt.hpp
    R external_libraries/boost/boost/iostreams/detail/config/disable_warnings.hpp
    R external_libraries/boost/boost/iostreams/detail/config/enable_warnings.hpp
    R external_libraries/boost/boost/iostreams/detail/config/fpos.hpp
    R external_libraries/boost/boost/iostreams/detail/config/gcc.hpp
    R external_libraries/boost/boost/iostreams/detail/config/limits.hpp
    R external_libraries/boost/boost/iostreams/detail/config/overload_resolution.hpp
    R external_libraries/boost/boost/iostreams/detail/config/unreachable_return.hpp
    R external_libraries/boost/boost/iostreams/detail/config/wide_streams.hpp
    R external_libraries/boost/boost/iostreams/detail/default_arg.hpp
    R external_libraries/boost/boost/iostreams/detail/dispatch.hpp
    R external_libraries/boost/boost/iostreams/detail/double_object.hpp
    R external_libraries/boost/boost/iostreams/detail/enable_if_stream.hpp
    R external_libraries/boost/boost/iostreams/detail/error.hpp
    R external_libraries/boost/boost/iostreams/detail/execute.hpp
    R external_libraries/boost/boost/iostreams/detail/forward.hpp
    R external_libraries/boost/boost/iostreams/detail/functional.hpp
    R external_libraries/boost/boost/iostreams/detail/ios.hpp
    R external_libraries/boost/boost/iostreams/detail/iostream.hpp
    R external_libraries/boost/boost/iostreams/detail/is_dereferenceable.hpp
    R external_libraries/boost/boost/iostreams/detail/is_iterator_range.hpp
    R external_libraries/boost/boost/iostreams/detail/optional.hpp
    R external_libraries/boost/boost/iostreams/detail/push.hpp
    R external_libraries/boost/boost/iostreams/detail/push_params.hpp
    R external_libraries/boost/boost/iostreams/detail/resolve.hpp
    R external_libraries/boost/boost/iostreams/detail/select.hpp
    R external_libraries/boost/boost/iostreams/detail/select_by_size.hpp
    R external_libraries/boost/boost/iostreams/detail/streambuf.hpp
    R external_libraries/boost/boost/iostreams/detail/streambuf/direct_streambuf.hpp
    R external_libraries/boost/boost/iostreams/detail/streambuf/indirect_streambuf.hpp
    R external_libraries/boost/boost/iostreams/detail/streambuf/linked_streambuf.hpp
    R external_libraries/boost/boost/iostreams/detail/template_params.hpp
    R external_libraries/boost/boost/iostreams/detail/vc6/close.hpp
    R external_libraries/boost/boost/iostreams/detail/vc6/read.hpp
    R external_libraries/boost/boost/iostreams/detail/vc6/write.hpp
    R external_libraries/boost/boost/iostreams/detail/wrap_unwrap.hpp
    R external_libraries/boost/boost/iostreams/device/array.hpp
    R external_libraries/boost/boost/iostreams/device/null.hpp
    R external_libraries/boost/boost/iostreams/flush.hpp
    R external_libraries/boost/boost/iostreams/get.hpp
    R external_libraries/boost/boost/iostreams/imbue.hpp
    R external_libraries/boost/boost/iostreams/input_sequence.hpp
    R external_libraries/boost/boost/iostreams/operations.hpp
    R external_libraries/boost/boost/iostreams/operations_fwd.hpp
    R external_libraries/boost/boost/iostreams/optimal_buffer_size.hpp
    R external_libraries/boost/boost/iostreams/output_sequence.hpp
    R external_libraries/boost/boost/iostreams/pipeline.hpp
    R external_libraries/boost/boost/iostreams/positioning.hpp
    R external_libraries/boost/boost/iostreams/put.hpp
    R external_libraries/boost/boost/iostreams/read.hpp
    R external_libraries/boost/boost/iostreams/seek.hpp
    R external_libraries/boost/boost/iostreams/stream.hpp
    R external_libraries/boost/boost/iostreams/stream_buffer.hpp
    R external_libraries/boost/boost/iostreams/traits.hpp
    R external_libraries/boost/boost/iostreams/traits_fwd.hpp
    R external_libraries/boost/boost/iostreams/write.hpp
    M external_libraries/boost/boost/iterator/iterator_facade.hpp
    M external_libraries/boost/boost/iterator/transform_iterator.hpp
    M external_libraries/boost/boost/lexical_cast.hpp
    A external_libraries/boost/boost/math/common_factor_rt.hpp
    A external_libraries/boost/boost/math/constants/calculate_constants.hpp
    M external_libraries/boost/boost/math/constants/constants.hpp
    M external_libraries/boost/boost/math/policies/error_handling.hpp
    M external_libraries/boost/boost/math/special_functions.hpp
    M external_libraries/boost/boost/math/special_functions/detail/bessel_i0.hpp
    M external_libraries/boost/boost/math/special_functions/detail/bessel_i1.hpp
    M external_libraries/boost/boost/math/special_functions/detail/bessel_j0.hpp
    M external_libraries/boost/boost/math/special_functions/detail/bessel_j1.hpp
    M external_libraries/boost/boost/math/special_functions/detail/bessel_jy.hpp
    M external_libraries/boost/boost/math/special_functions/detail/bessel_k0.hpp
    M external_libraries/boost/boost/math/special_functions/detail/bessel_k1.hpp
    M external_libraries/boost/boost/math/special_functions/detail/bessel_y0.hpp
    M external_libraries/boost/boost/math/special_functions/detail/bessel_y1.hpp
    M external_libraries/boost/boost/math/special_functions/detail/erf_inv.hpp
    M external_libraries/boost/boost/math/special_functions/detail/iconv.hpp
    M external_libraries/boost/boost/math/special_functions/detail/igamma_large.hpp
    M external_libraries/boost/boost/math/special_functions/detail/lanczos_sse2.hpp
    M external_libraries/boost/boost/math/special_functions/detail/lgamma_small.hpp
    M external_libraries/boost/boost/math/special_functions/digamma.hpp
    M external_libraries/boost/boost/math/special_functions/erf.hpp
    M external_libraries/boost/boost/math/special_functions/expint.hpp
    M external_libraries/boost/boost/math/special_functions/expm1.hpp
    M external_libraries/boost/boost/math/special_functions/gamma.hpp
    A external_libraries/boost/boost/math/special_functions/hankel.hpp
    M external_libraries/boost/boost/math/special_functions/lanczos.hpp
    M external_libraries/boost/boost/math/special_functions/log1p.hpp
    M external_libraries/boost/boost/math/special_functions/math_fwd.hpp
    A external_libraries/boost/boost/math/special_functions/owens_t.hpp
    M external_libraries/boost/boost/math/special_functions/round.hpp
    M external_libraries/boost/boost/math/special_functions/trunc.hpp
    M external_libraries/boost/boost/math/special_functions/zeta.hpp
    M external_libraries/boost/boost/math/tools/big_constant.hpp
    M external_libraries/boost/boost/math/tools/config.hpp
    M external_libraries/boost/boost/math/tools/precision.hpp
    A external_libraries/boost/boost/math_fwd.hpp
    M external_libraries/boost/boost/move/move.hpp
    M external_libraries/boost/boost/numeric/conversion/converter_policies.hpp
    M external_libraries/boost/boost/program_options/detail/cmdline.hpp
    M external_libraries/boost/boost/program_options/detail/config_file.hpp
    M external_libraries/boost/boost/program_options/detail/parsers.hpp
    M external_libraries/boost/boost/program_options/detail/value_semantic.hpp
    M external_libraries/boost/boost/program_options/errors.hpp
    M external_libraries/boost/boost/program_options/options_description.hpp
    M external_libraries/boost/boost/program_options/parsers.hpp
    M external_libraries/boost/boost/program_options/value_semantic.hpp
    M external_libraries/boost/boost/program_options/variables_map.hpp
    M external_libraries/boost/boost/range/algorithm/equal.hpp
    M external_libraries/boost/boost/range/as_literal.hpp
    M external_libraries/boost/boost/range/detail/size_type.hpp
    M external_libraries/boost/boost/range/size.hpp
    M external_libraries/boost/boost/range/size_type.hpp
    A external_libraries/boost/boost/ratio/detail/mpl/abs.hpp
    A external_libraries/boost/boost/ratio/detail/mpl/gcd.hpp
    A external_libraries/boost/boost/ratio/detail/mpl/lcm.hpp
    A external_libraries/boost/boost/ratio/detail/mpl/sign.hpp
    A external_libraries/boost/boost/ratio/detail/overflow_helpers.hpp
    A external_libraries/boost/boost/ratio/mpl/rational_c_tag.hpp
    A external_libraries/boost/boost/ratio/ratio.hpp
    A external_libraries/boost/boost/ratio/ratio_fwd.hpp
    A external_libraries/boost/boost/rational.hpp
    M external_libraries/boost/boost/regex/pending/object_cache.hpp
    M external_libraries/boost/boost/regex/v4/basic_regex_creator.hpp
    M external_libraries/boost/boost/regex/v4/basic_regex_parser.hpp
    M external_libraries/boost/boost/regex/v4/perl_matcher_non_recursive.hpp
    M external_libraries/boost/boost/regex/v4/regex_format.hpp
    M external_libraries/boost/boost/smart_ptr/detail/sp_counted_base.hpp
    R external_libraries/boost/boost/smart_ptr/detail/sp_counted_base_aix.hpp
    A external_libraries/boost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp
    M external_libraries/boost/boost/smart_ptr/detail/spinlock_gcc_arm.hpp
    M external_libraries/boost/boost/system/config.hpp
    R external_libraries/boost/boost/test/included/prg_exec_monitor.hpp
    R external_libraries/boost/boost/test/prg_exec_monitor.hpp
    M external_libraries/boost/boost/thread/barrier.hpp
    A external_libraries/boost/boost/thread/cv_status.hpp
    M external_libraries/boost/boost/thread/detail/config.hpp
    A external_libraries/boost/boost/thread/detail/delete.hpp
    A external_libraries/boost/boost/thread/detail/memory.hpp
    M external_libraries/boost/boost/thread/detail/move.hpp
    M external_libraries/boost/boost/thread/detail/platform.hpp
    M external_libraries/boost/boost/thread/detail/thread.hpp
    M external_libraries/boost/boost/thread/detail/thread_interruption.hpp
    M external_libraries/boost/boost/thread/exceptions.hpp
    M external_libraries/boost/boost/thread/future.hpp
    M external_libraries/boost/boost/thread/locks.hpp
    M external_libraries/boost/boost/thread/once.hpp
    M external_libraries/boost/boost/thread/pthread/condition_variable.hpp
    M external_libraries/boost/boost/thread/pthread/condition_variable_fwd.hpp
    M external_libraries/boost/boost/thread/pthread/mutex.hpp
    M external_libraries/boost/boost/thread/pthread/once.hpp
    M external_libraries/boost/boost/thread/pthread/recursive_mutex.hpp
    M external_libraries/boost/boost/thread/pthread/shared_mutex.hpp
    M external_libraries/boost/boost/thread/pthread/thread_data.hpp
    M external_libraries/boost/boost/thread/shared_mutex.hpp
    M external_libraries/boost/boost/thread/thread.hpp
    A external_libraries/boost/boost/thread/v2/thread.hpp
    M external_libraries/boost/boost/thread/win32/basic_recursive_mutex.hpp
    M external_libraries/boost/boost/thread/win32/basic_timed_mutex.hpp
    M external_libraries/boost/boost/thread/win32/condition_variable.hpp
    M external_libraries/boost/boost/thread/win32/mutex.hpp
    M external_libraries/boost/boost/thread/win32/once.hpp
    M external_libraries/boost/boost/thread/win32/recursive_mutex.hpp
    M external_libraries/boost/boost/thread/win32/shared_mutex.hpp
    M external_libraries/boost/boost/thread/win32/thread_data.hpp
    M external_libraries/boost/boost/thread/xtime.hpp
    M external_libraries/boost/boost/throw_exception.hpp
    M external_libraries/boost/boost/type_traits/intrinsics.hpp
    M external_libraries/boost/boost/unordered/detail/allocator_helpers.hpp
    M external_libraries/boost/boost/unordered/detail/buckets.hpp
    M external_libraries/boost/boost/unordered/detail/emplace_args.hpp
    M external_libraries/boost/boost/unordered/detail/equivalent.hpp
    M external_libraries/boost/boost/unordered/detail/fwd.hpp
    M external_libraries/boost/boost/unordered/detail/table.hpp
    M external_libraries/boost/boost/unordered/detail/unique.hpp
    M external_libraries/boost/boost/unordered/detail/util.hpp
    A external_libraries/boost/boost/unordered/unordered_map.hpp
    A external_libraries/boost/boost/unordered/unordered_map_fwd.hpp
    M external_libraries/boost/boost/unordered/unordered_set.hpp
    M external_libraries/boost/boost/unordered/unordered_set_fwd.hpp
    M external_libraries/boost/boost/utility.hpp
    M external_libraries/boost/boost/utility/declval.hpp
    A external_libraries/boost/boost/utility/identity_type.hpp
    M external_libraries/boost/boost/version.hpp
    R external_libraries/boost/libs/detail/utf8_codecvt_facet.cpp
    A external_libraries/boost/libs/filesystem/src/codecvt_error_category.cpp
    A external_libraries/boost/libs/filesystem/src/operations.cpp
    A external_libraries/boost/libs/filesystem/src/path.cpp
    A external_libraries/boost/libs/filesystem/src/path_traits.cpp
    A external_libraries/boost/libs/filesystem/src/portability.cpp
    A external_libraries/boost/libs/filesystem/src/unique_path.cpp
    A external_libraries/boost/libs/filesystem/src/utf8_codecvt_facet.cpp
    A external_libraries/boost/libs/filesystem/src/windows_file_codecvt.cpp
    A external_libraries/boost/libs/filesystem/src/windows_file_codecvt.hpp
    R external_libraries/boost/libs/filesystem/v2/build/Jamfile.v2
    R external_libraries/boost/libs/filesystem/v2/src/v2_operations.cpp
    R external_libraries/boost/libs/filesystem/v2/src/v2_path.cpp
    R external_libraries/boost/libs/filesystem/v2/src/v2_portability.cpp
    R external_libraries/boost/libs/filesystem/v3/build/Jamfile.v2
    R external_libraries/boost/libs/filesystem/v3/src/codecvt_error_category.cpp
    R external_libraries/boost/libs/filesystem/v3/src/operations.cpp
    R external_libraries/boost/libs/filesystem/v3/src/path.cpp
    R external_libraries/boost/libs/filesystem/v3/src/path_traits.cpp
    R external_libraries/boost/libs/filesystem/v3/src/portability.cpp
    R external_libraries/boost/libs/filesystem/v3/src/unique_path.cpp
    R external_libraries/boost/libs/filesystem/v3/src/utf8_codecvt_facet.cpp
    R external_libraries/boost/libs/filesystem/v3/src/windows_file_codecvt.cpp
    R external_libraries/boost/libs/filesystem/v3/src/windows_file_codecvt.hpp
    M external_libraries/boost/libs/program_options/src/cmdline.cpp
    M external_libraries/boost/libs/program_options/src/config_file.cpp
    M external_libraries/boost/libs/program_options/src/options_description.cpp
    M external_libraries/boost/libs/program_options/src/parsers.cpp
    M external_libraries/boost/libs/program_options/src/utf8_codecvt_facet.cpp
    M external_libraries/boost/libs/program_options/src/value_semantic.cpp
    M external_libraries/boost/libs/program_options/src/variables_map.cpp
    M external_libraries/boost/libs/system/src/error_code.cpp
    A external_libraries/boost/libs/thread/src/future.cpp
    M external_libraries/boost/libs/thread/src/pthread/once.cpp
    M external_libraries/boost/libs/thread/src/pthread/thread.cpp
    M external_libraries/boost/libs/thread/src/pthread/timeconv.inl
    M external_libraries/boost/libs/thread/src/win32/thread.cpp
    M external_libraries/boost/libs/thread/src/win32/timeconv.inl
    M external_libraries/boost/libs/thread/src/win32/tss_pe.cpp
    M external_libraries/threadpool/boost/threadpool/task_adaptors.hpp
    M lang/CMakeLists.txt
    M lang/LangPrimSource/PyrFilePrim.cpp
    M testsuite/supernova/sndfile_backend_test.cpp

  Log Message:
  -----------
  external libraries: update boost to v1.50

Signed-off-by: Tim Blechmann <tim@...>

GitHub | 1 Jul 2012 19:22

[supercollider/supercollider] 4ac5a9: supernova: make use of c++11 language/library

  Branch: refs/heads/topic/supernova_cpp11
  Home:   https://github.com/supercollider/supercollider
  Commit: 4ac5a94b2e1aebba65f2158afeea30ad36fb250f
      https://github.com/supercollider/supercollider/commit/4ac5a94b2e1aebba65f2158afeea30ad36fb250f
  Author: Tim Blechmann <tim@...>
  Date:   2012-07-01 (Sun, 01 Jul 2012)

  Changed paths:
    M server/supernova/CMakeLists.txt
    M server/supernova/audio_backend/cpu_time_info.hpp
    M server/supernova/audio_backend/jack_backend.hpp
    M server/supernova/audio_backend/sndfile_backend.hpp
    M server/supernova/dsp_thread_queue/dsp_thread.hpp
    M server/supernova/dsp_thread_queue/dsp_thread_queue.hpp
    M server/supernova/sc/sc_osc_handler.hpp
    M server/supernova/sc/sc_plugin_interface.cpp
    M server/supernova/sc/sc_plugin_interface.hpp
    M server/supernova/sc/sc_synth_prototype.cpp
    M server/supernova/sc/sc_synth_prototype.hpp
    M server/supernova/sc/sc_synthdef.cpp
    M server/supernova/sc/sc_synthdef.hpp
    M server/supernova/sc/sc_ugen_factory.cpp
    M server/supernova/server/audio_bus_manager.hpp
    M server/supernova/server/buffer_manager.hpp
    M server/supernova/server/dependency_graph_generator.hpp
    M server/supernova/server/dsp_context.cpp
    M server/supernova/server/dsp_context.hpp
    M server/supernova/server/dsp_thread_queue_node.hpp
    M server/supernova/server/group.hpp
    M server/supernova/server/main.cpp
    M server/supernova/server/node_graph.cpp
    M server/supernova/server/node_graph.hpp
    M server/supernova/server/node_types.hpp
    M server/supernova/server/nrt_synthesis.hpp
    M server/supernova/server/server.hpp
    M server/supernova/server/server_args.cpp
    M server/supernova/server/server_args.hpp
    M server/supernova/server/server_scheduler.hpp
    M server/supernova/server/synth.hpp
    M server/supernova/server/synth_prototype.hpp
    M server/supernova/utilities/asynchronous_log.hpp
    M server/supernova/utilities/callback_interpreter.hpp
    M server/supernova/utilities/osc_server.hpp
    M server/supernova/utilities/sized_array.hpp
    M server/supernova/utilities/static_allocator.hpp
    M server/supernova/utilities/static_pool.hpp
    M server/supernova/utilities/time_tag.hpp
    M server/supernova/utilities/tl_allocator.hpp
    M server/supernova/utilities/utils.hpp
    M testsuite/supernova/CMakeLists.txt
    M testsuite/supernova/osc_dispatcher_test.cpp
    M testsuite/supernova/osc_server_test.cpp
    M testsuite/supernova/server_dsp_thread_queue_test.cpp
    M testsuite/supernova/server_dsp_thread_test.cpp
    M testsuite/supernova/server_node_graph_test.cpp
    M testsuite/supernova/server_scheduler_test.cpp
    M testsuite/supernova/server_synth_factory_test.cpp

  Log Message:
  -----------
  supernova: make use of c++11 language/library

Signed-off-by: Tim Blechmann <tim@...>

Josh Parmenter | 1 Jul 2012 19:28

Re: supernova/c++11

clang++ 3.1 is on the current os x dev tools.
Josh

On Jul 1, 2012, at 3:59 AM, Tim Blechmann wrote:

> hi,
> 
> i'm planning to use some c++11 language features in supernova ... mainly
> ones that are available in gcc-4.6 and clang++-3.1. this means that it
> won't compile with older compilers, most notably gcc-4.2 which seems to
> be still used on osx.
> 
> however i am not sure about the state of supernova on osx, as for some
> reason, the dsp helper threads do not gain real-time scheduling
> permissions ... at least that was the state during the symposium ... the
> code may need a pair of eyes of someone who is more familiar with osx
> and maybe even has a machine to test.
> 
> tim
> 
> _______________________________________________
> sc-dev mailing list
> 
> info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
> archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
> search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

******************************************
/* Joshua D. Parmenter
http://www.realizedsound.net/josh/

“Every composer – at all times and in all cases – gives his own interpretation of how modern society is
structured: whether actively or passively, consciously or unconsciously, he makes choices in this
regard. He may be conservative or he may subject himself to continual renewal; or he may strive for a
revolutionary, historical or social palingenesis." - Luigi Nono
*/

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

Josh Parmenter | 1 Jul 2012 19:24

Re: supernova/c++11

Tim - what is your time like later this week? I'd be up for a skype session or chat room meet up to see what we can
figure out.
Josh

On Jul 1, 2012, at 3:59 AM, Tim Blechmann wrote:

> hi,
> 
> i'm planning to use some c++11 language features in supernova ... mainly
> ones that are available in gcc-4.6 and clang++-3.1. this means that it
> won't compile with older compilers, most notably gcc-4.2 which seems to
> be still used on osx.
> 
> however i am not sure about the state of supernova on osx, as for some
> reason, the dsp helper threads do not gain real-time scheduling
> permissions ... at least that was the state during the symposium ... the
> code may need a pair of eyes of someone who is more familiar with osx
> and maybe even has a machine to test.
> 
> tim
> 
> _______________________________________________
> sc-dev mailing list
> 
> info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
> archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
> search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

******************************************
/* Joshua D. Parmenter
http://www.realizedsound.net/josh/

“Every composer – at all times and in all cases – gives his own interpretation of how modern society is
structured: whether actively or passively, consciously or unconsciously, he makes choices in this
regard. He may be conservative or he may subject himself to continual renewal; or he may strive for a
revolutionary, historical or social palingenesis." - Luigi Nono
*/

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

wsnoei | 2 Jul 2012 11:52
Picon

SF.net SVN: quarks:[2335] wslib/wslib-classes/GUI/Extensions/ extGradient-fill.sc

Revision: 2335
          http://quarks.svn.sourceforge.net/quarks/?rev=2335&view=rev
Author:   wsnoei
Date:     2012-07-02 09:52:12 +0000 (Mon, 02 Jul 2012)
Log Message:
-----------
add alpha arg to penFill methods

Modified Paths:
--------------
    wslib/wslib-classes/GUI/Extensions/extGradient-fill.sc

Modified: wslib/wslib-classes/GUI/Extensions/extGradient-fill.sc
===================================================================
--- wslib/wslib-classes/GUI/Extensions/extGradient-fill.sc	2012-06-29 18:01:28 UTC (rev 2334)
+++ wslib/wslib-classes/GUI/Extensions/extGradient-fill.sc	2012-07-02 09:52:12 UTC (rev 2335)
 <at>  <at>  -1,3 +1,13  <at>  <at> 
++ Color {
+	alphaCopy_ { |alpha=1.0| 
+		if( alpha == 1.0 ) { 
+			^this;
+		} { 
+			^this.copy.alpha_(alpha * this.alpha); 
+		};
+	}
+}
+
 + Gradient {
 	fill { |rect|
 		if( direction == \h )
 <at>  <at>  -7,26 +17,29  <at>  <at> 
 				color1, color2 ); };
 		}
 		
-	penFill { |rect|
+	penFill { |rect, alpha=1.0|
 		if( direction == \h )
 			{ ^Pen.fillAxialGradient( rect.left@..., rect.right@...,
-				color1, color2 ); }
+				color1.alphaCopy_(alpha), color2.alphaCopy_(alpha) ); }
 			{ ^Pen.fillAxialGradient( rect.center.x@..., rect.center.x@...,
-				color1, color2 ); };
+				color1.alphaCopy_(alpha), color2.alphaCopy_(alpha) ); };
 		}
 	}
 	
 + Color {
 	fill { Pen.fillColor = this; ^Pen.fill; }
 	
-	penFill { Pen.fillColor = this; ^Pen.fill; }
+	penFill { |rect, alpha=1.0| 
+		Pen.fillColor = this.alphaCopy_( alpha ); 
+		^Pen.fill; 
 	}
+}
 	
 + Function {
-	penFill { |rect| 
+	penFill { |rect, alpha=1.0| 
 		Pen.use({ 
 			Pen.clip; 
-			this.value( rect );
+			this.value( rect, alpha );
 		}) 
 	}
 }

This was sent by the SourceForge.net collaborative development platform, the world's largest Open
Source development site.

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/


Gmane