rpms/armstrong/devel armstrong-29f9f6e28626.diff, NONE, 1.1 armstrong-57a562c38b47.diff, NONE, 1.1 armstrong-a8789ff6ae37.diff, NONE, 1.1 armstrong.spec, 1.9, 1.10

Orcan Ogetbil oget at fedoraproject.org
Sat May 29 22:33:14 UTC 2010


Author: oget

Update of /cvs/pkgs/rpms/armstrong/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv14231

Modified Files:
	armstrong.spec 
Added Files:
	armstrong-29f9f6e28626.diff armstrong-57a562c38b47.diff 
	armstrong-a8789ff6ae37.diff 
Log Message:
* Fri Mar 05 2010 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-11
- Fix stack smashing in 32 bit systems RHBZ#508779
- More lunar fixes
- Superfm fix
- New lunar note plugin


armstrong-29f9f6e28626.diff:
 envelope.cpp       |    2 ++
 zephod_superfm.cpp |    6 ++++--
 2 files changed, 6 insertions(+), 2 deletions(-)

--- NEW FILE armstrong-29f9f6e28626.diff ---
# HG changeset patch -- Bitbucket.org
# Project Armstrong
# URL http://bitbucket.org/paniq/armstrong/overview
# User tzhau
# Date 1244759320 -7200
# Node ID 29f9f6e28626113918e07bb46cb6a7735ee3731a
# Parent  617eef7ebbe4f1d7abcd4dce58335af991ddda08
Superfm fix (thanks bitbucket)

--- a/src/plugins/lunar/fx/zephod_superfm/zephod_superfm.cpp
+++ b/src/plugins/lunar/fx/zephod_superfm/zephod_superfm.cpp
@@ -203,10 +203,10 @@ public:
 	return -1.0;
     case 2: 
       // Saw wave.
-      return (float)phi;
+      return (float)((phi - 0.5) * 2.0);
     case 3: 
       // Inverted saw wave.
-      return (float)-phi;
+      return (float)((0.5 - phi) * 2.0);
     default:
       // Silence.
       return 0.0;
@@ -303,6 +303,8 @@ public:
 	} else {
 	  // Note on - set freq, reset envelopes.
 	  Voices[t].freq = ((float)*tracks[t].note / float(SAMPLING_RATE * 2));
+	  Voices[t].VCA.stop();
+	  Voices[t].ENV.stop();
 	  Voices[t].VCA.reset();
 	  Voices[t].ENV.reset();
 	}

--- a/src/plugins/lunar/fx/zephod_superfm/envelope.cpp
+++ b/src/plugins/lunar/fx/zephod_superfm/envelope.cpp
@@ -3,6 +3,8 @@
 envelope::envelope() {
   envcoef=0;
   suscounter=0;
+  stop();
+  reset();
 }
 
 envelope::~envelope() {

armstrong-57a562c38b47.diff:
 lunar.cpp |   12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

--- NEW FILE armstrong-57a562c38b47.diff ---
# HG changeset patch -- Bitbucket.org
# Project Armstrong
# URL http://bitbucket.org/paniq/armstrong/overview/
# User mental at bede
# Date 1240218357 14400
# Node ID 57a562c38b47dfc421b407938311cd3a1e41d558
# Parent  b66ffb24e75874e9db416f9875aeaa3221da63b3
fix buffer overrun (it happens on my system)

--- a/src/plugins/lunar/lunar.cpp
+++ b/src/plugins/lunar/lunar.cpp
@@ -1471,15 +1471,13 @@ struct dspplugincollection : zzub::plugi
 		char modulename[MAX_PATH];
 		GetModuleFileName(g_hModule, modulename, MAX_PATH);
 		*strrchr(modulename,'\\') = '\0';
-		strcat(modulename, "\\..\\lunar\\fx");
-		enumerate_plugins(modulename);
+		std::string modulepath = modulename;
+		modulepath.append("\\..\\lunar\\fx");
 #else
-		char modulepath[PATH_MAX];
-		strncpy(modulepath, ZZUB_LIB_DIR_PATH, PATH_MAX);
-		modulepath[PATH_MAX] = '\0';
-		strcat(modulepath, "/../lunar/fx");
-		enumerate_plugins(modulepath);
+		std::string modulepath = ZZUB_LIB_DIR_PATH;
+		modulepath.append("/../lunar/fx");
 #endif
+		enumerate_plugins(modulepath.c_str());
 		
 		this->factory = factory;
 		for (std::list<dspplugin::info*>::iterator i = infos.begin(); i != infos.end(); ++i) {

armstrong-a8789ff6ae37.diff:
 filter/filter.cpp   |  220 +++++++++++++++++++++++++++++++++++++++++-----------
 filter/filter.h     |    8 +
 filter/manifest.xml |  151 +++++++++++++++++------------------
 note/manifest.xml   |   66 +++++++++++++++
 note/note.cpp       |  103 ++++++++++++++++++++++++
 note/note.h         |   92 +++++++++++++++++++++
 6 files changed, 518 insertions(+), 122 deletions(-)

--- NEW FILE armstrong-a8789ff6ae37.diff ---
diff -rupN armstrong.old/src/plugins/lunar/fx/filter/filter.cpp armstrong/src/plugins/lunar/fx/filter/filter.cpp
--- armstrong.old/src/plugins/lunar/fx/filter/filter.cpp	2009-01-09 16:17:45.000000000 -0500
+++ armstrong/src/plugins/lunar/fx/filter/filter.cpp	2010-05-08 03:48:01.000000000 -0400
@@ -2,55 +2,187 @@
 #include "filter.h"
 #include <lunar/fx.hpp>
 #include <lunar/dsp.h>
-#include "svf.h"
 
-class filter : public lunar::fx<filter> {
+class Lag {
+private:
+  float *output;
+  float val, increment;
+  int counter;
+
+  inline float next() {
+    if (counter > 0) {
+      counter -= 1;
+      return val += increment;
+    } else {
+      return val;
+    }
+  }
 public:
+  Lag(int n) {
+    this->val = 0.0;
+    counter = 0;
+    output = new float[n];
+  }
+
+  ~Lag() {
+    delete output;
+  }
+
+  void set_val(float target, int delay) {
+    if (delay == 0) {
+      val = target;
+    }
+    else {
+      counter = delay;
+      increment = (target - val) / (float)delay;
+    }
+  }
+
+  inline float get_val() {
+    return val;
+  }
+
+  float *get_output() {
+    return output;
+  }
+
+  void process(int n, int fs) {
+    for (int i = 0; i < n; i++) {
+      output[i] = next();
+    }
+  }
+};
 
-	float l_ftype, l_freq, l_res;
+class Svf {
+private:
+  float low, high, band, notch;
+  float *input, *output, *cutoff, *x, *y;
+  float q;
+public:
+  Svf(int n) {
+    output = new float[n];
+    low = high = band = 0.0;
+  }
+
+  ~Svf() {
+    delete output;
+  }
+
+  void set_input(float *input) {
+    this->input = input;
+  }
+
+  void set_cutoff(float *cutoff) {
+    this->cutoff = cutoff;
+  }
+
+  void set_x(float *x) {
+    this->x = x;
+  }
+
+  void set_y(float *y) {
+    this->y = y;
+  }
+
+  void set_q(float reso) {
+    this->q = sqrt(1.0 - atan(sqrt(reso * 100.0)) * 2.0 / M_PI);
+  }
+
+  float *get_output() {
+    return output;
+  }
+  
+  void process(int n, int fs) {
+    float scale, f, pair1, pair2;
+    scale = sqrt(q);
+    for (int i = 0; i < n; i++) {
+      f = cutoff[i] / (float)fs * 2.0;
+      for (int j = 0; j < 2; j++) {
+	low = low + f * band;
+	high = scale * input[i] - low - q * band;
+	band = f * high + band;
+	notch = high + low;
+      }
+      pair1 = low * y[i] + high * (1.0 - y[i]);
+      pair2 = band * y[i] + notch * (1.0 - y[i]);
+      output[i] = pair2 * x[i] + pair1 * (1.0 - x[i]);
+    }
+  }
+};
+
+class filter : public lunar::fx<filter> {
+public:
 
-	svf fk1;
-	svf fk2;
+  float l_ftype, l_freq, l_res, l_x, l_y;
+  int inertia;
 
-	void update_filters() {
-		fk1.setup(transport->samples_per_second, l_freq, l_res, 0);
-		fk2.setup(transport->samples_per_second, l_freq, l_res, 0);
-	}
-
-	void init() {
-	}
-
-	void exit() {
-	}
-
-	void process_events() {
-		int update = 0;
-		
-		if (globals->ftype) {
-			l_ftype = *globals->ftype;
-			update = 1;
-		}
-		if (globals->freq) {
-			l_freq = *globals->freq;
-			update = 1;
-		}
-		if (globals->res) {
-			l_res = *globals->res;
-			update = 1;
-		}
-		if (update)
-			update_filters();
-	}
-
-	void process_stereo(float *inL, float *inR, float *outL, float *outR, int n) {
-		dsp_copy(inL, outL, n);
-		dsp_copy(inR, outR, n);
-		fk1.process(outL, n, int(l_ftype));
-		fk2.process(outR, n, int(l_ftype));
-		dsp_clip(outL, n, 1); // signal may never exceed -1..1
-		dsp_clip(outR, n, 1);
-		
-	}
+  Lag *lag_cutoff, *lag_x, *lag_y;
+  Svf *fleft, *fright;
+    
+  void init() {
+    int n = transport->samples_per_tick;
+    lag_cutoff = new Lag(n);
+    lag_x = new Lag(n);
+    lag_y = new Lag(n);
+    fleft = new Svf(n);
+    fright = new Svf(n);
+  }
+  
+  void exit() {
+    delete lag_cutoff;
+    delete lag_x;
+    delete lag_y;
+    delete fleft;
+    delete fright;
+  }
+
+  void process_events() {
+    if (globals->freq) {
+      l_freq = *globals->freq;
+      lag_cutoff->set_val(l_freq, inertia * transport->samples_per_tick);
+    }
+    if (globals->res) {
+      l_res = *globals->res;
+      fleft->set_q(l_res);
+      fright->set_q(l_res);
+    }
+    if (globals->x) {
+      l_x = *globals->x;
+      lag_x->set_val(l_x, inertia * transport->samples_per_tick);
+    }
+    if (globals->y) {
+      l_y = *globals->y;
+      lag_y->set_val(l_y, inertia * transport->samples_per_tick);
+    }
+    if (globals->inertia) {
+      inertia = *globals->inertia;
+    }
+  }
+  
+  void process_stereo(float *inL, float *inR, float *outL, float *outR, int n) {
+    int fs;
+    fs = transport->samples_per_second;
+    fleft->set_input(inL);
+    fright->set_input(inR);
+    fleft->set_cutoff(lag_cutoff->get_output());
+    fright->set_cutoff(lag_cutoff->get_output());
+    fleft->set_x(lag_x->get_output());
+    fright->set_x(lag_x->get_output());
+    fleft->set_y(lag_y->get_output());
+    fright->set_y(lag_y->get_output());
+    lag_cutoff->process(n, fs);
+    lag_x->process(n, fs);
+    lag_y->process(n, fs);
+    fleft->process(n, fs);
+    fright->process(n, fs);
+    float *templ, *tempr;
+    templ = fleft->get_output();
+    tempr = fright->get_output();
+    dsp_copy(templ, outL, n);
+    dsp_copy(tempr, outR, n);
+    dsp_clip(outL, n, 1);
+    dsp_clip(outR, n, 1);
+  }
 };
 
 lunar_fx *new_fx() { return new filter(); }
diff -rupN armstrong.old/src/plugins/lunar/fx/filter/filter.h armstrong/src/plugins/lunar/fx/filter/filter.h
--- armstrong.old/src/plugins/lunar/fx/filter/filter.h	2009-01-09 16:17:45.000000000 -0500
+++ armstrong/src/plugins/lunar/fx/filter/filter.h	2010-05-08 03:48:01.000000000 -0400
@@ -7,14 +7,18 @@ extern "C" {
 typedef struct _lunar_attributes {
 } lunar_attributes_t;
 typedef struct _lunar_globals {
-	float *ftype;
 	float *freq;
 	float *res;
+	float *x;
+	float *y;
+	float *inertia;
 } lunar_globals_t;
 typedef struct _lunar_global_values {
-	float ftype;
 	float freq;
 	float res;
+	float x;
+	float y;
+	float inertia;
 } lunar_global_values_t;
 typedef struct _lunar_track {
 } lunar_track_t;
diff -rupN armstrong.old/src/plugins/lunar/fx/filter/manifest.xml armstrong/src/plugins/lunar/fx/filter/manifest.xml
--- armstrong.old/src/plugins/lunar/fx/filter/manifest.xml	2009-01-09 16:17:45.000000000 -0500
+++ armstrong/src/plugins/lunar/fx/filter/manifest.xml	2010-05-08 03:49:36.000000000 -0400
@@ -1,79 +1,78 @@
 <?xml version="1.0" encoding="utf-8"?>
 <zzub>
-	<plugin
-		uri="@trac.zeitherrschaft.org/aldrin/lunar/effect/filter;1"
-		name="Lunar Filter"
-		shortname="Filter"
-		type="effect"
-		description="An SVF filter effect (2pass)."
-		author="Leonard Ritter"
-		email="contact at leonard-ritter+com">
-		<parameters>
-			<valuenamegroup>
-				<valuenames id="ftypes">
-					<alias value="0" name="Notch"/>
-					<alias value="1" name="Low Pass"/>
-					<alias value="2" name="High Pass"/>
-					<alias value="3" name="Band Pass"/>
-					<alias value="4" name="Peak"/>
-				</valuenames>
-			</valuenamegroup>
-			<global>
-				<parameter
-					id="ftype"
-					name="Type"
-					description="Type of filter (0 = notch, 1 = low, 2 = high, 3 = band, 4 = peak)"
-					type="byte"
-					minvalue="0"
-					maxvalue="4"
-					defvalue="1"
-					valuenames="ftypes"
-					state="true"/>
-				<parameter
-					id="freq"
-					name="Cutoff (Hz)"
-					description="Cutoff frequency of filter"
-					type="float"
-					logarithmic="true"
-					power="0.7"
-					minvalue="10"
-					maxvalue="20000"
-					defvalue="20000"
-					precision="1"
-					state="true"/>
-				<parameter
-					id="res"
-					name="Resonance"
-					description="Resonance of filter"
-					type="float"
-					minvalue="0"
-					maxvalue="0.99"
-					defvalue="0"
-					precision="0.01"
-					state="true"/>
-				<!-- <parameter
-					id="dist"
-					name="Distortion"
-					description="Distortion of filter"
-					type="float"
-					minvalue="0"
-					maxvalue="0.1"
-					defvalue="0"
-					precision="0.01"
-					state="true"/> -->
-			</global>
-			<track>
-			</track>
-		</parameters>
-		<files>
-			<file ref="filter.cpp"/>
-			<file ref="filter.h"/>
-			<file ref="svf.h"/>
-		</files>
-		<modules>
-			<module id="filter">
-				<source language="c++" ref="filter.cpp" fxdef="filter.h"/>
-			</module>
-		</modules>
-	</plugin>
+  <plugin
+     uri="@trac.zeitherrschaft.org/aldrin/lunar/effect/filter;1"
+     name="Lunar Filter"
+     shortname="Filter"
+     type="effect"
+     description="An SVF filter effect (2pass)."
+     author="Leonard Ritter"
+     email="contact at leonard-ritter+com">
+    <parameters>
+      <global>
+	<parameter
+	      id="freq"
+	      name="Cutoff (Hz)"
+	      description="Cutoff frequency of filter"
+	      type="float"
+	      logarithmic="true"
+	      power="0.7"
+	      minvalue="20"
+	      maxvalue="20000"
+	      defvalue="20000"
+	      precision="1"
+	      state="true"/>
+	<parameter
+	      id="res"
+	      name="Resonance"
+	      description="Resonance of filter"
+	      type="float"
+	      minvalue="0"
+	      maxvalue="1"
+	      defvalue="0"
+	      precision="0.01"
+	      state="true"/>
+	<parameter
+	      id="x"
+	      name="X"
+	      description="State morph X parameter"
+	      type="float"
+	      minvalue="0"
+	      maxvalue="1"
+	      defvalue="0"
+	      precision="0.01"
+	      state="true"/>
+	<parameter
+	      id="y"
+	      name="Y"
+	      description="State morph Y parameter"
+	      type="float"
+	      minvalue="0"
+	      maxvalue="1"
+	      defvalue="0"
+	      precision="0.01"
+	      state="true"/>
+	<parameter
+	      id="inertia"
+	      name="Inertia (ticks)"
+	      description="Cutoff change inertia"
+	      type="byte"
+	      minvalue="0"
+	      maxvalue="16"
+	      defvalue="1"
+	      state="true"/>
+      </global>
+      <track>
+      </track>
+    </parameters>
+    <files>
+      <file ref="filter.cpp"/>
+      <file ref="filter.h"/>
+    </files>
+    <modules>
+      <module id="filter">
+	<source language="c++" ref="filter.cpp" fxdef="filter.h"/>
+      </module>
+    </modules>
+  </plugin>
 </zzub>
diff -rupN armstrong.old/src/plugins/lunar/fx/note/manifest.xml armstrong/src/plugins/lunar/fx/note/manifest.xml
--- armstrong.old/src/plugins/lunar/fx/note/manifest.xml	1969-12-31 19:00:00.000000000 -0500
+++ armstrong/src/plugins/lunar/fx/note/manifest.xml	2010-05-08 03:48:01.000000000 -0400
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<zzub>
+	<plugin
+		uri="@trac.zeitherrschaft.org/aldrin/lunar/controller/note;1"
+		name="Lunar Note BETA" shortname="Note" description="A controller which sends note values to machines"
+		type="controller"
+    mintracks="1" maxtracks="16"
+		author="zoner" email="zon3r at yahoo.com">
+		<parameters>
+			<valuenamegroup>
+			</valuenamegroup>
+			<global>
+      </global>
+			<track> 
+        <parameter id="note" description="Note" type="note"/>
+        <parameter id="effect" description="Effect" type="float" minvalue="0" maxvalue="1" defvalue="0" precision="0.001" state="true"/>
+        
+			</track>
+			<controller>
+				<parameter id="note01" name="Note 01" description="Note" type="midinote"/>
+        <parameter id="effect01" name="Effect 01" description="Effect" type="float"/>
+        <parameter id="note02" name="Note 02" description="Note" type="midinote"/>
+        <parameter id="effect02" name="Effect 02" description="Effect" type="float"/>
+        <parameter id="note03" name="Note 03" description="Note" type="midinote"/>
+        <parameter id="effect03" name="Effect 03" description="Effect" type="float"/>
+        <parameter id="note04" name="Note 04" description="Note" type="midinote"/>
+        <parameter id="effect04" name="Effect 04" description="Effect" type="float"/>
+        <parameter id="note05" name="Note 05" description="Note" type="midinote"/>
+        <parameter id="effect05" name="Effect 05" description="Effect" type="float"/>
+        <parameter id="note06" name="Note 06" description="Note" type="midinote"/>
+        <parameter id="effect06" name="Effect 06" description="Effect" type="float"/>
+        <parameter id="note07" name="Note 07" description="Note" type="midinote"/>
+        <parameter id="effect07" name="Effect 07" description="Effect" type="float"/>
+        <parameter id="note08" name="Note 08" description="Note" type="midinote"/>
+        <parameter id="effect08" name="Effect 08" description="Effect" type="float"/>
+        <parameter id="note09" name="Note 09" description="Note" type="midinote"/>
+        <parameter id="effect09" name="Effect 09" description="Effect" type="float"/>
+        <parameter id="note10" name="Note 10" description="Note" type="midinote"/>
+        <parameter id="effect10" name="Effect 10" description="Effect" type="float"/>
+        <parameter id="note11" name="Note 11" description="Note" type="midinote"/>
+        <parameter id="effect11" name="Effect 11" description="Effect" type="float"/>
+        <parameter id="note12" name="Note 12" description="Note" type="midinote"/>
+        <parameter id="effect12" name="Effect 12" description="Effect" type="float"/>
+        <parameter id="note13" name="Note 13" description="Note" type="midinote"/>
+        <parameter id="effect13" name="Effect 13" description="Effect" type="float"/>
+        <parameter id="note14" name="Note 14" description="Note" type="midinote"/>
+        <parameter id="effect14" name="Effect 14" description="Effect" type="float"/>
+        <parameter id="note15" name="Note 15" description="Note" type="midinote"/>
+        <parameter id="effect15" name="Effect 15" description="Effect" type="float"/>
+        <parameter id="note16" name="Note 16" description="Note" type="midinote"/>
+        <parameter id="effect16" name="Effect 16" description="Effect" type="float"/>
+      </controller>
+		</parameters>
+		<attributes>
+		</attributes>
+		<files>
+			<file ref="note.cpp"/>
+			<file ref="note.h"/>
+		</files>
+		<modules>
+			<module id="note">
+				<source language="c++" ref="note.cpp" fxdef="note.h"/>
+			</module>
+		</modules>
+	</plugin>
+</zzub>
diff -rupN armstrong.old/src/plugins/lunar/fx/note/note.cpp armstrong/src/plugins/lunar/fx/note/note.cpp
--- armstrong.old/src/plugins/lunar/fx/note/note.cpp	1969-12-31 19:00:00.000000000 -0500
+++ armstrong/src/plugins/lunar/fx/note/note.cpp	2010-05-08 03:48:01.000000000 -0400
@@ -0,0 +1,103 @@
+/*
+*
+*	Lunar Note BETA
+*
+*/
+
+#include "note.h"
+#include <lunar/fx.hpp>
+
+#define MAX_TRACKS 16
+
+class note : public lunar::fx<note> {
+public:
+
+	struct trackdat {
+		float note;
+		float effect;
+		float **cmap_note;
+		float **cmap_effect;
+	};
+
+	trackdat trackd[MAX_TRACKS];
+
+	int translate_note(float value) const {
+		int midinote;
+
+		midinote = (int)((log(value / 440.0f) / log(2.0f)) * 12.0f + 57.5f);
+		midinote = ((midinote / 12) << 4) | ((midinote % 12) + 1);
+		return 12 * (midinote >> 4) + (midinote & 0xf) - 1;
+	}
+
+	void init() {
+		
+		// Map controller placeholders to local variables for iterative convenience
+
+		trackd[0].cmap_note = &(controllers->note01);
+		trackd[0].cmap_effect = &(controllers->effect01);
+		trackd[1].cmap_note = &(controllers->note02);
+		trackd[1].cmap_effect = &(controllers->effect02);
+		trackd[2].cmap_note = &(controllers->note03);
+		trackd[2].cmap_effect = &(controllers->effect03);
+		trackd[3].cmap_note = &(controllers->note04);
+		trackd[3].cmap_effect = &(controllers->effect04);
+		trackd[4].cmap_note = &(controllers->note05);
+		trackd[4].cmap_effect = &(controllers->effect05);
+		trackd[5].cmap_note = &(controllers->note06);
+		trackd[5].cmap_effect = &(controllers->effect06);
+		trackd[6].cmap_note = &(controllers->note07);
+		trackd[6].cmap_effect = &(controllers->effect07);
+		trackd[7].cmap_note = &(controllers->note08);
+		trackd[7].cmap_effect = &(controllers->effect08);
+		trackd[8].cmap_note = &(controllers->note09);
+		trackd[8].cmap_effect = &(controllers->effect09);
+		trackd[9].cmap_note = &(controllers->note10);
+		trackd[9].cmap_effect = &(controllers->effect10);
+		trackd[10].cmap_note = &(controllers->note11);
+		trackd[10].cmap_effect = &(controllers->effect11);
+		trackd[11].cmap_note = &(controllers->note12);
+		trackd[11].cmap_effect = &(controllers->effect12);
+		trackd[12].cmap_note = &(controllers->note13);
+		trackd[12].cmap_effect = &(controllers->effect13);
+		trackd[13].cmap_note = &(controllers->note14);
+		trackd[13].cmap_effect = &(controllers->effect14);
+		trackd[14].cmap_note = &(controllers->note15);
+		trackd[14].cmap_effect = &(controllers->effect15);
+		trackd[15].cmap_note = &(controllers->note16);
+		trackd[15].cmap_effect = &(controllers->effect16);
+	}
+
+	void exit() {
+		delete this;
+	}
+
+	void process_events() {
+		int t;
+
+		for(t = 0; t < track_count; t++) {
+			if(tracks[t].note) {
+				if (*tracks[t].note != 0)
+					trackd[t].note = float(translate_note(*(tracks[t].note)));
+				else
+					trackd[t].note = 0;
+			}
+			if(tracks[t].effect) {
+				trackd[t].effect = float(*tracks[t].effect);
+			}
+		}
+	}
+
+	void process_controller_events() {
+		int t;
+		for(t = 0; t < track_count; t++) {
+			*(trackd[t].cmap_note) = (tracks[t].note) ? &trackd[t].note : 0;
+			*(trackd[t].cmap_effect) = (tracks[t].effect) ? &trackd[t].effect : 0;
+		}
+	}
+	
+	void process_stereo(float *inL, float *inR, float *outL, float *outR, int n) {
+	}
+
+};
+
+lunar_fx *new_fx() { return new note(); }
diff -rupN armstrong.old/src/plugins/lunar/fx/note/note.h armstrong/src/plugins/lunar/fx/note/note.h
--- armstrong.old/src/plugins/lunar/fx/note/note.h	1969-12-31 19:00:00.000000000 -0500
+++ armstrong/src/plugins/lunar/fx/note/note.h	2010-05-08 03:48:01.000000000 -0400
@@ -0,0 +1,92 @@
+#if !defined(LUNAR_PLUGIN_LOCALS_H)
+#define LUNAR_PLUGIN_LOCALS_H
+#define LUNAR_USE_LOCALS
+#if defined(__cplusplus)
+extern "C" {
+#endif // __cplusplus
+typedef struct _lunar_attributes {
+} lunar_attributes_t;
+typedef struct _lunar_globals {
+} lunar_globals_t;
+typedef struct _lunar_global_values {
+} lunar_global_values_t;
+typedef struct _lunar_track {
+	float *note;
+	float *effect;
+} lunar_track_t;
+typedef struct _lunar_track_values {
+	float note;
+	float effect;
+} lunar_track_values_t;
+typedef struct _lunar_controllers {
+	float *note01;
+	float *effect01;
+	float *note02;
+	float *effect02;
+	float *note03;
+	float *effect03;
+	float *note04;
+	float *effect04;
+	float *note05;
+	float *effect05;
+	float *note06;
+	float *effect06;
+	float *note07;
+	float *effect07;
+	float *note08;
+	float *effect08;
+	float *note09;
+	float *effect09;
+	float *note10;
+	float *effect10;
+	float *note11;
+	float *effect11;
+	float *note12;
+	float *effect12;
+	float *note13;
+	float *effect13;
+	float *note14;
+	float *effect14;
+	float *note15;
+	float *effect15;
+	float *note16;
+	float *effect16;
+} lunar_controllers_t;
+typedef struct _lunar_controller_values {
+	float note01;
+	float effect01;
+	float note02;
+	float effect02;
+	float note03;
+	float effect03;
+	float note04;
+	float effect04;
+	float note05;
+	float effect05;
+	float note06;
+	float effect06;
+	float note07;
+	float effect07;
+	float note08;
+	float effect08;
+	float note09;
+	float effect09;
+	float note10;
+	float effect10;
+	float note11;
+	float effect11;
+	float note12;
+	float effect12;
+	float note13;
+	float effect13;
+	float note14;
+	float effect14;
+	float note15;
+	float effect15;
+	float note16;
+	float effect16;
+} lunar_controller_values_t;
+#if defined(__cplusplus)
+}
+#endif // __cplusplus
+#endif // LUNAR_PLUGIN_LOCALS_H


Index: armstrong.spec
===================================================================
RCS file: /cvs/pkgs/rpms/armstrong/devel/armstrong.spec,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -p -r1.9 -r1.10
--- armstrong.spec	13 Feb 2010 17:06:05 -0000	1.9
+++ armstrong.spec	29 May 2010 22:33:14 -0000	1.10
@@ -2,7 +2,7 @@
 
 Name:           armstrong
 Version:        0.2.6
-Release:        10%{?dist}
+Release:        11%{?dist}
 Summary:        Powerful music sequencing library
 Group:          System Environment/Libraries
 # src/plugins/Geonik is GPL+
@@ -67,8 +67,15 @@ Patch8:         armstrong-conflict-names
 # Repair lunar support
 # http://bitbucket.org/paniq/armstrong/issue/15/lunar-does-not-work
 Patch9:         armstrong.git-0625ca6e4a4ebf9b6182334f027ed9d79734e28b.patch
-
-
+# More lunar fixes. From upstream trunk. Fixes RHBZ#508779
+# http://bitbucket.org/paniq/armstrong/changeset/57a562c38b47/
+Patch10:        armstrong-57a562c38b47.diff
+# superfm fix
+# http://www.bitbucket.org/paniq/armstrong/changeset/29f9f6e28626
+Patch11:        armstrong-29f9f6e28626.diff
+# new lunar note plugin
+# http://www.bitbucket.org/paniq/armstrong/changeset/a8789ff6ae37
+Patch12:        armstrong-a8789ff6ae37.diff
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:  alsa-lib-devel
@@ -138,7 +145,9 @@ Python scripts.
 %patch7 -p1 -b .symbols
 %patch8 -p1 -b .conflict
 %patch9 -p1 -b .lunarrepair
-
+%patch10 -p1 -b .lunarstacksmashing
+%patch11 -p1 -b .superfm
+%patch12 -p1 -b .lunarnote
 # To build against portmidi >=184
 %if 0%{fedora} > 12
 sed -i '/porttime/d' src/libzzub/SConscript
@@ -180,8 +189,6 @@ done
 scons configure \
         PREFIX=%{_prefix} \
         LIBDIR=/%{_lib} \
-        CCFLAGS="%{optflags}" \
-        CXXFLAGS="%{optflags}" \
         optflags="%{optflags}" \
 %ifarch %{ix86}
         SSE="true" \
@@ -306,6 +313,12 @@ rm -rf $RPM_BUILD_ROOT
 %{python_sitelib}/*
 
 %changelog
+* Fri Mar 05 2010 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-11
+- Fix stack smashing in 32 bit systems RHBZ#508779
+- More lunar fixes
+- Superfm fix
+- New lunar note plugin
+
 * Sat Feb 13 2010 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-10
 - Link against rtaudio-4.0.7
 - Repair lunar support



More information about the scm-commits mailing list