summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Holzer <mholzer@gentoo.org>2003-12-18 23:10:40 +0000
committerMartin Holzer <mholzer@gentoo.org>2003-12-18 23:10:40 +0000
commit07d2988c785a0ddc9c4dfd5231d08203673d114f (patch)
tree84242168e6536cc90edce721ea03a5a580aad01d /media-sound/audacity
parentcleanup (diff)
downloadhistorical-07d2988c785a0ddc9c4dfd5231d08203673d114f.tar.gz
historical-07d2988c785a0ddc9c4dfd5231d08203673d114f.tar.bz2
historical-07d2988c785a0ddc9c4dfd5231d08203673d114f.zip
cleanup
Diffstat (limited to 'media-sound/audacity')
-rw-r--r--media-sound/audacity/Manifest5
-rw-r--r--media-sound/audacity/files/audacity-src-1.1.0-phonograph.patch199
-rw-r--r--media-sound/audacity/files/audacity-src-1.1.0-timestretch.patch599
-rw-r--r--media-sound/audacity/files/id3lib-3.8.0-gcc3.patch97
-rw-r--r--media-sound/audacity/files/mono_mp3_export.patch150
5 files changed, 0 insertions, 1050 deletions
diff --git a/media-sound/audacity/Manifest b/media-sound/audacity/Manifest
index 206d7daedce9..d7f04630f865 100644
--- a/media-sound/audacity/Manifest
+++ b/media-sound/audacity/Manifest
@@ -1,9 +1,4 @@
MD5 bf3f6434c87df998d331decbd97f2617 ChangeLog 3541
MD5 5f8d028a16df282d4bef4395296c1ca9 audacity-1.1.3.ebuild 1297
-MD5 c151b63a0eca16e885c23226c03d28f0 files/audacity-1.0.0-gcc31.patch 2153
-MD5 f779279f19d249c6d735b28e72c30c6b files/audacity-src-1.1.0-phonograph.patch 5137
-MD5 f34b93cc26c85c6789d21fb94b213e09 files/audacity-src-1.1.0-timestretch.patch 19316
MD5 d1064c1800175d5fb3113f74785568f6 files/basecfg-1.1.1 35
MD5 cb2f75d37538e9688fe397cf178f57ad files/digest-audacity-1.1.3 68
-MD5 21b2333db59cc116a7e3c96563fe9ccd files/id3lib-3.8.0-gcc3.patch 2707
-MD5 8f5051d60b802ecf74497bc2ec4bb32e files/mono_mp3_export.patch 6261
diff --git a/media-sound/audacity/files/audacity-src-1.1.0-phonograph.patch b/media-sound/audacity/files/audacity-src-1.1.0-phonograph.patch
deleted file mode 100644
index 4f2f6fa64efa..000000000000
--- a/media-sound/audacity/files/audacity-src-1.1.0-phonograph.patch
+++ /dev/null
@@ -1,199 +0,0 @@
-# Audacity 1.1.0 Phonograph Patch
-#
-# By Doug Hoyte
-#
-# This patch adds an effect "Phonograph", which creates pops and crackles
-# that sound somewhat like a 33 1/3 LP in the selected audio
-#
-# Apply like so:
-#
-# cd audacity-1.1.0/
-# patch -p1 < /tmp/audacity-src-1.1.0-phonograph.patch
-#
-# Replace /tmp/ with wherever you put the patch, obviously.
-# configure, make, and enjoy.
-#
-#
-#
-diff -urNB audacity-src-1.1.0/src/Makefile.in audacity-src-1.1.0-phonograph/src/Makefile.in
---- audacity-src-1.1.0/src/Makefile.in Wed Jun 5 00:45:54 2002
-+++ audacity-src-1.1.0-phonograph/src/Makefile.in Fri Aug 9 16:32:29 2002
-@@ -76,6 +76,7 @@
- $(OBJDIR)/effects/Invert.o \
- $(OBJDIR)/effects/NoiseRemoval.o \
- $(OBJDIR)/effects/Phaser.o \
-+ $(OBJDIR)/effects/Phonograph.o \
- $(OBJDIR)/effects/Reverse.o \
- $(OBJDIR)/effects/Wahwah.o \
- $(OBJDIR)/export/Export.o \
-diff -urNB audacity-src-1.1.0/src/effects/LoadEffects.cpp audacity-src-1.1.0-phonograph/src/effects/LoadEffects.cpp
---- audacity-src-1.1.0/src/effects/LoadEffects.cpp Wed Jun 5 00:45:54 2002
-+++ audacity-src-1.1.0-phonograph/src/effects/LoadEffects.cpp Fri Aug 9 16:33:33 2002
-@@ -21,6 +21,7 @@
- #include "Invert.h"
- #include "NoiseRemoval.h"
- #include "Phaser.h"
-+#include "Phonograph.h"
- #include "Reverse.h"
- #include "Wahwah.h"
-
-@@ -52,6 +53,7 @@
- Effect::RegisterEffect(new EffectInvert(), false);
- Effect::RegisterEffect(new EffectNoiseRemoval(), false);
- Effect::RegisterEffect(new EffectPhaser(), false);
-+ Effect::RegisterEffect(new EffectPhonograph(), false);
- Effect::RegisterEffect(new EffectReverse(), false);
- Effect::RegisterEffect(new EffectWahwah(), false);
-
-diff -urNB audacity-src-1.1.0/src/effects/Phonograph.cpp audacity-src-1.1.0-phonograph/src/effects/Phonograph.cpp
---- audacity-src-1.1.0/src/effects/Phonograph.cpp Wed Dec 31 16:00:00 1969
-+++ audacity-src-1.1.0-phonograph/src/effects/Phonograph.cpp Fri Aug 9 16:31:04 2002
-@@ -0,0 +1,89 @@
-+/**********************************************************************
-+
-+ Audacity: A Digital Audio Editor
-+
-+ Phonograph.cpp
-+
-+ Doug Hoyte
-+
-+ This class gives the selection the good ol' fashion vibe of a
-+ 33 1/3 LP.
-+
-+**********************************************************************/
-+
-+#include <stdlib.h>
-+
-+
-+#include "Phonograph.h"
-+#include "../WaveTrack.h"
-+
-+//
-+// EffectPhonograph
-+//
-+
-+EffectPhonograph::EffectPhonograph()
-+{
-+}
-+
-+bool EffectPhonograph::Process()
-+{
-+ TrackListIterator iter(mWaveTracks);
-+ VTrack *t = iter.First();
-+ int count = 0;
-+ while(t) {
-+ sampleCount start, len;
-+ GetSamples((WaveTrack *)t, &start, &len);
-+ bool success = ProcessOne(count, (WaveTrack *)t, start, len);
-+
-+ if (!success)
-+ return false;
-+
-+ t = iter.Next();
-+ count++;
-+ }
-+
-+ return true;
-+}
-+
-+bool EffectPhonograph::ProcessOne(int count, WaveTrack *t,
-+ sampleCount start, sampleCount len)
-+{
-+ sampleCount base = start;
-+ float *buf = new float[len];
-+
-+ int j,next,tpwidth=0;
-+ float tpheight,tpoff;
-+
-+
-+ srand(time(NULL));
-+
-+ t->Get(buf, base, len);
-+
-+ next = 5500+(int) (7500.0*rand()/(RAND_MAX+1.0));
-+ for (int i = 0; i < len; i++) {
-+
-+ next--;
-+ if(next <= 0) {
-+ next = 5500+(int) (7500.0*rand()/(RAND_MAX+1.0));
-+ tpheight = (0.2*rand()/(RAND_MAX+1.0));
-+ tpwidth = 7+(int) (50.0*rand()/(RAND_MAX+1.0));
-+
-+ if (next%2 == 0) tpheight *= -1;
-+
-+ for (j = 0; j < tpwidth; j++) {
-+ tpoff = (0.1*rand()/(RAND_MAX+1.0));
-+ tpoff *= tpheight;
-+ if (i+j < len) buf[i+j] += tpheight + tpoff;
-+ }
-+
-+ }
-+
-+
-+ }
-+
-+ t->Set(buf, base, len);
-+
-+ delete[] buf;
-+
-+ return true;
-+}
-diff -urNB audacity-src-1.1.0/src/effects/Phonograph.h audacity-src-1.1.0-phonograph/src/effects/Phonograph.h
---- audacity-src-1.1.0/src/effects/Phonograph.h Wed Dec 31 16:00:00 1969
-+++ audacity-src-1.1.0-phonograph/src/effects/Phonograph.h Fri Aug 9 16:31:04 2002
-@@ -0,0 +1,55 @@
-+/**********************************************************************
-+
-+ Audacity: A Digital Audio Editor
-+
-+ Phonograph.h
-+
-+ Doug Hoyte
-+
-+ This class gives the selection the good ol' fashion vibe of a
-+ 33 1/3 LP.
-+
-+**********************************************************************/
-+
-+#ifndef __AUDACITY_EFFECT_PHONOGRAPH__
-+#define __AUDACITY_EFFECT_PHONOGRAPH__
-+
-+#include <wx/checkbox.h>
-+#include <wx/button.h>
-+#include <wx/dialog.h>
-+#include <wx/stattext.h>
-+#include <wx/slider.h>
-+#include <wx/textctrl.h>
-+#include <wx/sizer.h>
-+#include <wx/intl.h>
-+
-+#include "Effect.h"
-+
-+#define __UNINITIALIZED__ (-1)
-+
-+class WaveTrack;
-+
-+class EffectPhonograph:public Effect {
-+
-+ public:
-+ EffectPhonograph();
-+
-+ virtual wxString GetEffectName() {
-+ return wxString(_("Phonograph"));
-+ }
-+
-+ virtual wxString GetEffectAction() {
-+ return wxString(_("\"Phonographing\""));
-+ }
-+
-+ virtual bool Process();
-+
-+ private:
-+ bool ProcessOne(int count, WaveTrack * t,
-+ sampleCount start, sampleCount len);
-+
-+ private:
-+
-+};
-+
-+#endif
diff --git a/media-sound/audacity/files/audacity-src-1.1.0-timestretch.patch b/media-sound/audacity/files/audacity-src-1.1.0-timestretch.patch
deleted file mode 100644
index d32bda37477a..000000000000
--- a/media-sound/audacity/files/audacity-src-1.1.0-timestretch.patch
+++ /dev/null
@@ -1,599 +0,0 @@
-# Audacity 1.1.0 TimeStretch Patch
-#
-# By Doug Hoyte
-#
-# Some code (smsPitchScale.cpp) is
-# COPYRIGHT 1999 Stephan M. Sprenger <sms@dspdimension.com>
-#
-#
-# This patch adds an effect that can "Stretch" the time of a selected
-# sample. It makes it longer or shorter depending on a ratio given.
-#
-# Also included is the experimental "Pitch Scaling" that will keep a
-# sample at the same pitch, even after being stretched.
-#
-#
-# Limitations:
-# - The GUI sucks. Ideally, I'd like it to be one window that has a slide
-# bar and a checkbox. Also, it would show you the length of the selected
-# sample (in seconds) and you could choose the desired length in seconds
-# or via the ratio. Unfortunatley, my wxWindows skills suck...
-# - After being stretched, the current selection should be the new audio,
-# not where the old audio was. This isn't a problem with other effects
-# because they don't change length. I wasn't sure how to change the
-# selection boundaries, so I just left it.
-# - The Pitch Scale code is SLOOOW.
-# - Sometimes the Pitch Scale code leaves a tiny bit of garbage at the
-# beginning of a clip.
-# - The Pitch Scale code degrades the quality of the sample somewhat.
-#
-#
-# Apply like so:
-#
-# cd audacity-1.1.0/
-# patch -p1 < /tmp/audacity-src-1.1.0-timestretch.patch
-#
-# Replace /tmp/ with wherever you put the patch, obviously.
-# configure, make, and enjoy.
-#
-#
-#
-diff -urNb audacity-src-1.1.0/src/Makefile.in audacity-src-1.1.0-timestretch/src/Makefile.in
---- audacity-src-1.1.0/src/Makefile.in Wed Jun 5 00:45:54 2002
-+++ audacity-src-1.1.0-timestretch/src/Makefile.in Sat Aug 10 01:16:52 2002
-@@ -77,6 +77,8 @@
- $(OBJDIR)/effects/NoiseRemoval.o \
- $(OBJDIR)/effects/Phaser.o \
- $(OBJDIR)/effects/Reverse.o \
-+ $(OBJDIR)/effects/smsPitchScale.o \
-+ $(OBJDIR)/effects/TimeStretch.o \
- $(OBJDIR)/effects/Wahwah.o \
- $(OBJDIR)/export/Export.o \
- $(OBJDIR)/export/ExportMP3.o \
-diff -urNb audacity-src-1.1.0/src/effects/LoadEffects.cpp audacity-src-1.1.0-timestretch/src/effects/LoadEffects.cpp
---- audacity-src-1.1.0/src/effects/LoadEffects.cpp Wed Jun 5 00:45:54 2002
-+++ audacity-src-1.1.0-timestretch/src/effects/LoadEffects.cpp Sat Aug 10 01:17:56 2002
-@@ -22,6 +22,7 @@
- #include "NoiseRemoval.h"
- #include "Phaser.h"
- #include "Reverse.h"
-+#include "TimeStretch.h"
- #include "Wahwah.h"
-
- #ifdef USE_WAVELET
-@@ -53,6 +54,7 @@
- Effect::RegisterEffect(new EffectNoiseRemoval(), false);
- Effect::RegisterEffect(new EffectPhaser(), false);
- Effect::RegisterEffect(new EffectReverse(), false);
-+ Effect::RegisterEffect(new EffectTimeStretch(), false);
- Effect::RegisterEffect(new EffectWahwah(), false);
-
- #ifdef USE_WAVELET
-diff -urNb audacity-src-1.1.0/src/effects/TimeStretch.cpp audacity-src-1.1.0-timestretch/src/effects/TimeStretch.cpp
---- audacity-src-1.1.0/src/effects/TimeStretch.cpp Wed Dec 31 16:00:00 1969
-+++ audacity-src-1.1.0-timestretch/src/effects/TimeStretch.cpp Sat Aug 10 01:17:12 2002
-@@ -0,0 +1,137 @@
-+/**********************************************************************
-+
-+ Audacity: A Digital Audio Editor
-+
-+ TimeStretch.cpp
-+
-+ Doug Hoyte
-+
-+ This class is able to stretch a selection, making it take up more or
-+ less time.
-+
-+**********************************************************************/
-+
-+
-+#include <wx/generic/textdlgg.h>
-+#include <wx/intl.h>
-+
-+#include "TimeStretch.h"
-+#include "smsPitchScale.h"
-+#include "../WaveTrack.h"
-+
-+//
-+// EffectTimeStretch
-+//
-+
-+EffectTimeStretch::EffectTimeStretch()
-+{
-+ ratio = 1.0;
-+ pitchscale = false;
-+}
-+
-+
-+bool EffectTimeStretch::PromptUser()
-+{
-+ wxString temp;
-+ wxString title = _("TimeStretch by Doug Hoyte");
-+ wxString caption = _("Ratio (new length/orig length): ");
-+ wxString default_value = wxString::Format("%f", ratio);
-+
-+ ratio = 1.0;
-+ pitchscale = false;
-+
-+ temp = wxGetTextFromUser(caption, title,
-+ default_value, mParent, -1, -1, TRUE);
-+ if (temp == "")
-+ return false;
-+ while (sscanf((const char *) temp, "%f", &ratio) < 0) {
-+ caption = _("Please enter a positive number for the ratio: ");
-+ temp = wxGetTextFromUser(caption, title,
-+ default_value, mParent, -1, -1, TRUE);
-+ if (temp == "")
-+ return false;
-+ }
-+
-+ caption = _("Do you want pitch scaling (EXPERIMENTAL)? (y/n): ");
-+ default_value = wxString::Format("n");
-+ temp = wxGetTextFromUser(caption, title,
-+ default_value, mParent, -1, -1, TRUE);
-+ if (temp == "")
-+ return false;
-+ while (temp != "n" && temp != "y") {
-+ caption = _("Please enter y or n for the pitch scaling: ");
-+ temp = wxGetTextFromUser(caption, title,
-+ default_value, mParent, -1, -1, TRUE);
-+ if (temp == "")
-+ return false;
-+ }
-+
-+ if (temp == "y") pitchscale = true;
-+ else pitchscale = false;
-+
-+
-+ return true;
-+}
-+
-+
-+
-+bool EffectTimeStretch::Process()
-+{
-+ TrackListIterator iter(mWaveTracks);
-+ VTrack *t = iter.First();
-+ int count = 0;
-+ while(t) {
-+ sampleCount start, len;
-+ GetSamples((WaveTrack *)t, &start, &len);
-+ bool success = ProcessOne(count, (WaveTrack *)t, start, len);
-+
-+ if (!success)
-+ return false;
-+
-+ t = iter.Next();
-+ count++;
-+ }
-+
-+ return true;
-+}
-+
-+
-+
-+bool EffectTimeStretch::ProcessOne(int count, WaveTrack *t,
-+ sampleCount base, sampleCount len)
-+{
-+ int newlen=(int) (len*ratio) + 1;
-+ double basesecs=0;
-+ float *inbuf = new float[len];
-+ float *outbuf = new float[newlen];
-+ int i,nextloc,currloc=0;
-+
-+
-+ if (ratio == 1) goto bail;
-+
-+ basesecs = base / (t->GetRate());
-+
-+ t->Get(inbuf, base, len);
-+
-+ for (i=0; i<len-1; i++) {
-+ if (i%10000 == 0) TrackProgress(count, 2*i/(double)len);
-+ nextloc = (int) (((float)i+1) * ratio);
-+ for (; currloc < nextloc; currloc++) outbuf[currloc] = inbuf[i];
-+ outbuf[nextloc] = inbuf[i+1];
-+ }
-+
-+ if (ratio > 1) t->InsertSilence(basesecs, (newlen-len)/(t->GetRate()) );
-+ if (ratio < 1) t->Clear(basesecs, basesecs+((len-newlen) / (t->GetRate())) );
-+
-+
-+ if (pitchscale == true) smsPitchScale(ratio, newlen, 2048, 4, t->GetRate(), outbuf, outbuf);
-+
-+ t->Set(outbuf, base, newlen);
-+
-+ bail:
-+
-+ delete[] inbuf;
-+ delete[] outbuf;
-+
-+ return true;
-+}
-diff -urNb audacity-src-1.1.0/src/effects/TimeStretch.h audacity-src-1.1.0-timestretch/src/effects/TimeStretch.h
---- audacity-src-1.1.0/src/effects/TimeStretch.h Wed Dec 31 16:00:00 1969
-+++ audacity-src-1.1.0-timestretch/src/effects/TimeStretch.h Sat Aug 10 01:17:12 2002
-@@ -0,0 +1,62 @@
-+/**********************************************************************
-+
-+ Audacity: A Digital Audio Editor
-+
-+ TimeStretch.h
-+
-+ Doug Hoyte
-+
-+ This class is able to stretch a selection, making it take up more or
-+ less time.
-+
-+**********************************************************************/
-+
-+#ifndef __AUDACITY_EFFECT_TIMESTRETCH__
-+#define __AUDACITY_EFFECT_TIMESTRETCH__
-+
-+class wxString;
-+
-+#include <wx/checkbox.h>
-+#include <wx/button.h>
-+#include <wx/dialog.h>
-+#include <wx/stattext.h>
-+#include <wx/slider.h>
-+#include <wx/textctrl.h>
-+#include <wx/sizer.h>
-+#include <wx/intl.h>
-+
-+#include "Effect.h"
-+#include "smsPitchScale.h"
-+
-+
-+
-+#define __UNINITIALIZED__ (-1)
-+
-+class WaveTrack;
-+
-+class EffectTimeStretch:public Effect {
-+
-+ public:
-+ EffectTimeStretch();
-+
-+ virtual wxString GetEffectName() {
-+ return wxString(_("TimeStretch"));
-+ }
-+
-+ virtual wxString GetEffectAction() {
-+ return wxString(_("Stretching Time"));
-+ }
-+
-+ virtual bool PromptUser();
-+
-+ virtual bool Process();
-+
-+ private:
-+ bool ProcessOne(int count, WaveTrack * t, sampleCount start, sampleCount len);
-+
-+
-+ float ratio;
-+ bool pitchscale;
-+};
-+
-+#endif
-diff -urNb audacity-src-1.1.0/src/effects/smsPitchScale.cpp audacity-src-1.1.0-timestretch/src/effects/smsPitchScale.cpp
---- audacity-src-1.1.0/src/effects/smsPitchScale.cpp Wed Dec 31 16:00:00 1969
-+++ audacity-src-1.1.0-timestretch/src/effects/smsPitchScale.cpp Sat Aug 10 01:17:18 2002
-@@ -0,0 +1,280 @@
-+/****************************************************************************
-+*
-+* NAME: smsPitchScale.cpp
-+* VERSION: 1.01
-+* HOME URL: http://www.dspdimension.com
-+* KNOWN BUGS: none
-+*
-+* SYNOPSIS: Routine for doing pitch scaling while maintaining
-+* duration using the Short Time Fourier Transform.
-+*
-+* DESCRIPTION: The routine takes a pitchScale factor value which is between 0.5
-+* (one octave down) and 2. (one octave up). A value of exactly 1 does not change
-+* the pitch. numSampsToProcess tells the routine how many samples in indata[0...
-+* numSampsToProcess-1] should be pitch scaled and moved to outdata[0 ...
-+* numSampsToProcess-1]. The two buffers can be identical (ie. it can process the
-+* data in-place). fftFrameSize defines the FFT frame size used for the
-+* processing. Typical values are 1024, 2048 and 4096. It may be any value <=
-+* MAX_FFT_FRAME_LENGTH but it MUST be a power of 2. osamp is the STFT
-+* oversampling factor which also determines the overlap between adjacent STFT
-+* frames. It should at least be 4 for moderate scaling ratios. A value of 32 is
-+* recommended for best quality. sampleRate takes the sample rate for the signal
-+* in unit Hz, ie. 44100 for 44.1 kHz audio. The data passed to the routine in
-+* indata[] should be in the range [-1.0, 1.0), which is also the output range
-+* for the data.
-+*
-+* COPYRIGHT 1999 Stephan M. Sprenger <sms@dspdimension.com>
-+*
-+* The Wide Open License (WOL)
-+*
-+* Permission to use, copy, modify, distribute and sell this software and its
-+* documentation for any purpose is hereby granted without fee, provided that
-+* the above copyright notice and this license appear in all source copies.
-+* THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF
-+* ANY KIND. See http://www.dspguru.com/wol.htm for more information.
-+*
-+*****************************************************************************/
-+
-+#include <string.h>
-+#include <math.h>
-+
-+#include "smsPitchScale.h"
-+
-+
-+void smsPitchScale(float pitchScale, long numSampsToProcess, long fftFrameSize, long osamp, float sampleRate, float *indata, float *outdata)
-+/*
-+ Routine smsPitchScale(). See top of file for explanation
-+ Purpose: doing pitch scaling while maintaining duration using the Short
-+ Time Fourier Transform.
-+ Author: (c)1999 Stephan M. Sprenger <sms@dspdimension.com>
-+*/
-+{
-+
-+ static float gInFIFO[MAX_FRAME_LENGTH];
-+ static float gOutFIFO[MAX_FRAME_LENGTH];
-+ static float gFFTworksp[2*MAX_FRAME_LENGTH];
-+ static float gLastPhase[MAX_FRAME_LENGTH/2];
-+ static float gSumPhase[MAX_FRAME_LENGTH/2];
-+ static float gOutputAccum[2*MAX_FRAME_LENGTH];
-+ static float gAnaFreq[MAX_FRAME_LENGTH];
-+ static float gAnaMagn[MAX_FRAME_LENGTH];
-+ static float gSynFreq[MAX_FRAME_LENGTH];
-+ static float gSynMagn[MAX_FRAME_LENGTH];
-+ static long gRover = false, gInit = false;
-+ double magn, phase, tmp, window, real, imag;
-+ double freqPerBin, expct, fadeZoneLen;
-+ long i,k, qpd, index, inFifoLatency, stepSize, fftFrameSize2;
-+
-+ /* set up some handy variables */
-+ fadeZoneLen = fftFrameSize/2;
-+ fftFrameSize2 = fftFrameSize/2;
-+ stepSize = fftFrameSize/osamp;
-+ freqPerBin = sampleRate/(double)fftFrameSize;
-+ expct = 2.*M_PI*(double)stepSize/(double)fftFrameSize;
-+ inFifoLatency = fftFrameSize-stepSize;
-+ if (gRover == false) gRover = inFifoLatency;
-+
-+ /* initialize our static arrays */
-+ if (gInit == false) {
-+ memset(gInFIFO, 0, MAX_FRAME_LENGTH*sizeof(float));
-+ memset(gOutFIFO, 0, MAX_FRAME_LENGTH*sizeof(float));
-+ memset(gFFTworksp, 0, 2*MAX_FRAME_LENGTH*sizeof(float));
-+ memset(gLastPhase, 0, MAX_FRAME_LENGTH*sizeof(float)/2);
-+ memset(gSumPhase, 0, MAX_FRAME_LENGTH*sizeof(float)/2);
-+ memset(gOutputAccum, 0, 2*MAX_FRAME_LENGTH*sizeof(float));
-+ memset(gAnaFreq, 0, MAX_FRAME_LENGTH*sizeof(float));
-+ memset(gAnaMagn, 0, MAX_FRAME_LENGTH*sizeof(float));
-+ gInit = true;
-+ }
-+
-+ /* main processing loop */
-+ for (i = 0; i < numSampsToProcess; i++){
-+
-+ /* As long as we have not yet collected enough data just read in */
-+ gInFIFO[gRover] = indata[i];
-+ outdata[i] = gOutFIFO[gRover-inFifoLatency];
-+ gRover++;
-+
-+ /* now we have enough data for processing */
-+ if (gRover >= fftFrameSize) {
-+ gRover = inFifoLatency;
-+
-+ /* do windowing and re,im interleave */
-+ for (k = 0; k < fftFrameSize;k++) {
-+ window = -.5*cos(2.*M_PI*(double)k/(double)fftFrameSize)+.5;
-+ gFFTworksp[2*k] = gInFIFO[k] * window;
-+ gFFTworksp[2*k+1] = 0.;
-+ }
-+
-+
-+ /* ***************** ANALYSIS ******************* */
-+ /* do transform */
-+ smsFft(gFFTworksp, fftFrameSize, -1);
-+
-+ /* this is the analysis step */
-+ for (k = 0; k <= fftFrameSize2; k++) {
-+
-+ /* de-interlace FFT buffer */
-+ real = gFFTworksp[2*k];
-+ imag = gFFTworksp[2*k+1];
-+
-+ /* compute magnitude and phase */
-+ magn = 2.*sqrt(real*real + imag*imag);
-+ phase = atan2(imag,real);
-+
-+ /* compute phase difference */
-+ tmp = phase - gLastPhase[k];
-+ gLastPhase[k] = phase;
-+
-+ /* subtract expected phase difference */
-+ tmp -= (double)k*expct;
-+
-+ /* map delta phase into +/- Pi interval */
-+ qpd = (long int) (tmp/M_PI);
-+ if (qpd >= 0) qpd += qpd&1;
-+ else qpd -= qpd&1;
-+ tmp -= M_PI*(double)qpd;
-+
-+ /* get deviation from bin frequency from the +/- Pi interval */
-+ tmp = osamp*tmp/(2.*M_PI);
-+
-+ /* compute the k-th partials' true frequency */
-+ tmp = (double)k*freqPerBin + tmp*freqPerBin;
-+
-+ /* store magnitude and true frequency in analysis arrays */
-+ gAnaMagn[k] = magn;
-+ gAnaFreq[k] = tmp;
-+
-+ }
-+
-+
-+
-+ /* ***************** PROCESSING ******************* */
-+ /* this does the actual pitch scaling */
-+ memset(gSynMagn, 0, fftFrameSize*sizeof(float));
-+ memset(gSynFreq, 0, fftFrameSize*sizeof(float));
-+ for (k = 0; k <= fftFrameSize2; k++) {
-+ index = (long int) (k/pitchScale);
-+ if (index <= fftFrameSize2) {
-+ /* new bin overrides existing if magnitude is higher */
-+ if (gAnaMagn[index] > gSynMagn[k]) {
-+ gSynMagn[k] = gAnaMagn[index];
-+ gSynFreq[k] = gAnaFreq[index] * pitchScale;
-+ }
-+ /* fill empty bins with nearest neighbour */
-+ if ((gSynFreq[k] == 0.) && (k > 0)) {
-+ gSynFreq[k] = gSynFreq[k-1];
-+ gSynMagn[k] = gSynMagn[k-1];
-+ }
-+ }
-+ }
-+
-+
-+ /* ***************** SYNTHESIS ******************* */
-+ /* this is the synthesis step */
-+ for (k = 0; k <= fftFrameSize2; k++) {
-+
-+ /* get magnitude and true frequency from synthesis arrays */
-+ magn = gSynMagn[k];
-+ tmp = gSynFreq[k];
-+
-+ /* subtract bin mid frequency */
-+ tmp -= (double)k*freqPerBin;
-+
-+ /* get bin deviation from freq deviation */
-+ tmp /= freqPerBin;
-+
-+ /* take osamp into account */
-+ tmp = 2.*M_PI*tmp/osamp;
-+
-+ /* add the overlap phase advance back in */
-+ tmp += (double)k*expct;
-+
-+ /* accumulate delta phase to get bin phase */
-+ gSumPhase[k] += tmp;
-+ phase = gSumPhase[k];
-+
-+ /* get real and imag part and re-interleave */
-+ gFFTworksp[2*k] = magn*cos(phase);
-+ gFFTworksp[2*k+1] = magn*sin(phase);
-+ }
-+
-+ /* zero negative frequencies */
-+ for (k = fftFrameSize+2; k < 2*fftFrameSize; k++) gFFTworksp[k] = 0.;
-+
-+ /* do inverse transform */
-+ smsFft(gFFTworksp, fftFrameSize, 1);
-+
-+ /* do windowing and add to output accumulator */
-+ for(k=0; k < fftFrameSize; k++) {
-+ window = -.5*cos(2.*M_PI*(double)k/(double)fftFrameSize)+.5;
-+ gOutputAccum[k] += 2.*window*gFFTworksp[2*k]/(fftFrameSize2*osamp);
-+ }
-+ for (k = 0; k < stepSize; k++) gOutFIFO[k] = gOutputAccum[k];
-+
-+ /* shift accumulator */
-+ memmove(gOutputAccum, gOutputAccum+stepSize, fftFrameSize*sizeof(float));
-+
-+ /* move input FIFO */
-+ for (k = 0; k < inFifoLatency; k++) gInFIFO[k] = gInFIFO[k+stepSize];
-+ }
-+ }
-+}
-+
-+
-+
-+void smsFft(float *fftBuffer, long fftFrameSize, long sign)
-+/*
-+ FFT routine, (C)1996 S.M.Sprenger. Sign = -1 is FFT, 1 is iFFT (inverse)
-+ Fills fftBuffer[0...2*fftFrameSize-1] with the Fourier transform of the
-+ time domain data in fftBuffer[0...2*fftFrameSize-1]. The FFT array takes
-+ and returns the cosine and sine parts in an interleaved manner, ie.
-+ fftBuffer[0] = cosPart[0], fftBuffer[1] = sinPart[0], asf. fftFrameSize
-+ must be a power of 2. It expects a complex input signal (see footnote 2),
-+ ie. when working with 'common' audio signals our input signal has to be
-+ passed as {in[0],0.,in[1],0.,in[2],0.,...} asf. In that case, the transform
-+ of the frequencies of interest is in fftBuffer[0...fftFrameSize].
-+*/
-+{
-+ float wr, wi, arg, *p1, *p2, temp;
-+ float tr, ti, ur, ui, *p1r, *p1i, *p2r, *p2i;
-+ long i, bitm, j, le, le2, k;
-+
-+ for (i = 2; i < 2*fftFrameSize-2; i += 2) {
-+ for (bitm = 2, j = 0; bitm < 2*fftFrameSize; bitm <<= 1) {
-+ if (i & bitm) j++;
-+ j <<= 1;
-+ }
-+ if (i < j) {
-+ p1 = fftBuffer+i; p2 = fftBuffer+j;
-+ temp = *p1; *(p1++) = *p2;
-+ *(p2++) = temp; temp = *p1;
-+ *p1 = *p2; *p2 = temp;
-+ }
-+ }
-+ for (k = 0, le = 2; k < log(fftFrameSize)/log(2.); k++) {
-+ le <<= 1;
-+ le2 = le>>1;
-+ ur = 1.0;
-+ ui = 0.0;
-+ arg = M_PI / (le2>>1);
-+ wr = cos(arg);
-+ wi = sign*sin(arg);
-+ for (j = 0; j < le2; j += 2) {
-+ p1r = fftBuffer+j; p1i = p1r+1;
-+ p2r = p1r+le2; p2i = p2r+1;
-+ for (i = j; i < 2*fftFrameSize; i += le) {
-+ tr = *p2r * ur - *p2i * ui;
-+ ti = *p2r * ui + *p2i * ur;
-+ *p2r = *p1r - tr; *p2i = *p1i - ti;
-+ *p1r += tr; *p1i += ti;
-+ p1r += le; p1i += le;
-+ p2r += le; p2i += le;
-+ }
-+ tr = ur*wr - ui*wi;
-+ ui = ur*wi + ui*wr;
-+ ur = tr;
-+ }
-+ }
-+}
-+
-diff -urNb audacity-src-1.1.0/src/effects/smsPitchScale.h audacity-src-1.1.0-timestretch/src/effects/smsPitchScale.h
---- audacity-src-1.1.0/src/effects/smsPitchScale.h Wed Dec 31 16:00:00 1969
-+++ audacity-src-1.1.0-timestretch/src/effects/smsPitchScale.h Sat Aug 10 01:17:18 2002
-@@ -0,0 +1,33 @@
-+/**********************************************************************
-+
-+ Audacity: A Digital Audio Editor
-+
-+ smsPitchScale.cpp
-+
-+ Doug Hoyte
-+
-+ These functions are used by the TimeStretch class in order to provide
-+ pitch scaling. Parts of these functions may have been modified by me.
-+
-+ smsPitchScale.cpp and smsPitchScale.h are...
-+
-+* COPYRIGHT 1999 Stephan M. Sprenger <sms@dspdimension.com>
-+*
-+* The Wide Open License (WOL)
-+*
-+* Permission to use, copy, modify, distribute and sell this software and its
-+* documentation for any purpose is hereby granted without fee, provided that
-+* the above copyright notice and this license appear in all source copies.
-+* THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF
-+* ANY KIND. See http://www.dspguru.com/wol.htm for more information.
-+*
-+*****************************************************************************/
-+
-+
-+#define M_PI 3.14159265358979323846
-+#define MAX_FRAME_LENGTH 8192
-+
-+void smsFft(float *fftBuffer, long fftFrameSize, long sign);
-+
-+void smsPitchScale(float pitchScale, long numSampsToProcess, long fftFrameSize,
-+long osamp, float sampleRate, float *indata, float *outdata);
diff --git a/media-sound/audacity/files/id3lib-3.8.0-gcc3.patch b/media-sound/audacity/files/id3lib-3.8.0-gcc3.patch
deleted file mode 100644
index 12c8bc5ab37a..000000000000
--- a/media-sound/audacity/files/id3lib-3.8.0-gcc3.patch
+++ /dev/null
@@ -1,97 +0,0 @@
---- include/id3/id3lib_strings.h.orig 2002-08-21 16:41:11.000000000 -0600
-+++ include/id3/id3lib_strings.h 2002-08-21 16:40:32.000000000 -0600
-@@ -30,6 +30,94 @@
-
- #include <string>
-
-+#if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000))
-+namespace std
-+{
-+ template<>
-+ struct char_traits<unsigned char>
-+ {
-+ typedef unsigned char char_type;
-+ // Unsigned as wint_t in unsigned.
-+ typedef unsigned long int_type;
-+ typedef streampos pos_type;
-+ typedef streamoff off_type;
-+ typedef mbstate_t state_type;
-+
-+ static void
-+ assign(char_type& __c1, const char_type& __c2)
-+ { __c1 = __c2; }
-+
-+ static bool
-+ eq(const char_type& __c1, const char_type& __c2)
-+ { return __c1 == __c2; }
-+
-+ static bool
-+ lt(const char_type& __c1, const char_type& __c2)
-+ { return __c1 < __c2; }
-+
-+ static int
-+ compare(const char_type* __s1, const char_type* __s2, size_t __n)
-+ {
-+ for (size_t __i = 0; __i < __n; ++__i)
-+ if (!eq(__s1[__i], __s2[__i]))
-+ return lt(__s1[__i], __s2[__i]) ? -1 : 1;
-+ return 0;
-+ }
-+
-+ static size_t
-+ length(const char_type* __s)
-+ {
-+ const char_type* __p = __s;
-+ while (__p)
-+ ++__p;
-+ return (__p - __s);
-+ }
-+
-+ static const char_type*
-+ find(const char_type* __s, size_t __n, const char_type& __a)
-+ {
-+ for (const char_type* __p = __s; size_t(__p - __s) < __n; ++__p)
-+ if (*__p == __a) return __p;
-+ return 0;
-+ }
-+
-+ static char_type*
-+ move(char_type* __s1, const char_type* __s2, size_t __n)
-+ { return (char_type*) memmove(__s1, __s2, __n * sizeof(char_type)); }
-+
-+ static char_type*
-+ copy(char_type* __s1, const char_type* __s2, size_t __n)
-+ { return (char_type*) memcpy(__s1, __s2, __n * sizeof(char_type)); }
-+
-+ static char_type*
-+ assign(char_type* __s, size_t __n, char_type __a)
-+ {
-+ for (char_type* __p = __s; __p < __s + __n; ++__p)
-+ assign(*__p, __a);
-+ return __s;
-+ }
-+
-+ static char_type
-+ to_char_type(const int_type& __c)
-+ { return char_type(); }
-+
-+ static int_type
-+ to_int_type(const char_type& __c) { return int_type(); }
-+
-+ static bool
-+ eq_int_type(const int_type& __c1, const int_type& __c2)
-+ { return __c1 == __c2; }
-+
-+ static int_type
-+ eof() { return static_cast<int_type>(-1); }
-+
-+ static int_type
-+ not_eof(const int_type& __c)
-+ { return eq_int_type(__c, eof()) ? int_type(0) : __c; }
-+ };
-+} // namespace std
-+#endif
-+
- namespace dami
- {
- typedef std::basic_string<char> String;
diff --git a/media-sound/audacity/files/mono_mp3_export.patch b/media-sound/audacity/files/mono_mp3_export.patch
deleted file mode 100644
index 18bed1aeeb09..000000000000
--- a/media-sound/audacity/files/mono_mp3_export.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-diff -ru audacity-src-1.1.1-3/src/export/ExportMP3.cpp /var/tmp/portage/audacity-1.1.1/work/audacity-src-1.1.1-3/src/export/ExportMP3.cpp
---- audacity-src-1.1.1-3/src/export/ExportMP3.cpp 2002-11-11 00:58:21.000000000 -0600
-+++ /var/tmp/portage/audacity-1.1.1/work/audacity-src-1.1.1-3/src/export/ExportMP3.cpp 2003-01-15 00:30:29.000000000 -0600
-@@ -190,6 +190,7 @@
- /* function pointers to the symbols we get from the library */
- lame_init_t* lame_init;
- lame_init_params_t* lame_init_params;
-+ lame_encode_buffer_t* lame_encode_buffer;
- lame_encode_buffer_interleaved_t* lame_encode_buffer_interleaved;
- lame_encode_flush_t* lame_encode_flush;
- lame_close_t* lame_close;
-@@ -259,6 +260,10 @@
- "get_lame_version");
- lame_init_params =
- (lame_init_params_t *) wxDllLoader::GetSymbol(libHandle, "lame_init_params");
-+
-+ lame_encode_buffer =
-+ (lame_encode_buffer_t *) wxDllLoader::GetSymbol(libHandle,
-+ "lame_encode_buffer");
- lame_encode_buffer_interleaved =
- (lame_encode_buffer_interleaved_t *) wxDllLoader::GetSymbol(libHandle,
- "lame_encode_buffer_interleaved");
-@@ -294,6 +299,7 @@
- if (!lame_init ||
- !get_lame_version ||
- !lame_init_params ||
-+ !lame_encode_buffer ||
- !lame_encode_buffer_interleaved ||
- !lame_encode_flush ||
- !lame_close ||
-@@ -346,6 +352,22 @@
- mOutBufferSize);
- }
-
-+
-+
-+ int EncodeBufferMono(short int inbuffer[], unsigned char outbuffer[]) {
-+ if(!mEncoding) return -1;
-+
-+ return lame_encode_buffer(mGF, inbuffer,inbuffer, mSamplesPerChunk,
-+ outbuffer, mOutBufferSize);
-+ }
-+
-+ int EncodeRemainderMono(short int inbuffer[], int nSamples,
-+ unsigned char outbuffer[]) {
-+ return lame_encode_buffer(mGF, inbuffer, inbuffer, nSamples, outbuffer,
-+ mOutBufferSize);
-+ }
-+
-+
- int FinishStream(unsigned char outbuffer[]) {
- mEncoding = false;
- int result = lame_encode_flush(mGF, outbuffer, mOutBufferSize);
-@@ -425,6 +447,7 @@
- /* function pointers to the symbols we get from the library */
- lame_init_t* lame_init;
- lame_init_params_t* lame_init_params;
-+ lame_encode_buffer_t* lame_encode_buffer;
- lame_encode_buffer_interleaved_t* lame_encode_buffer_interleaved;
- lame_encode_flush_t* lame_encode_flush;
- lame_close_t* lame_close;
-@@ -556,6 +579,10 @@
- FindSymbol(connID, name, &mainAddr, &symClass);
- lame_encode_buffer_interleaved = NewMachOFromCFM(mainAddr);
-
-+ MakePString(name, "lame_encode_buffer");
-+ FindSymbol(connID, name, &mainAddr, &symClass);
-+ lame_encode_buffer = NewMachOFromCFM(mainAddr);
-+
- MakePString(name, "lame_encode_flush");
- FindSymbol(connID, name, &mainAddr, &symClass);
- lame_encode_flush = NewMachOFromCFM(mainAddr);
-@@ -594,6 +621,7 @@
- if (!lame_init ||
- !get_lame_version ||
- !lame_init_params ||
-+ !lame_encode_buffer ||
- !lame_encode_buffer_interleaved ||
- !lame_encode_flush ||
- !lame_close ||
-@@ -636,7 +664,7 @@
- int EncodeBuffer(short int inbuffer[], unsigned char outbuffer[]) {
- if(!mEncoding) return -1;
-
-- return lame_encode_buffer_interleaved(mGF, inbuffer, mSamplesPerChunk,
-+ return lame_encode_buffer_interleaved(mGF, inbuffer, inbuffer, mSamplesPerChunk,
- outbuffer, mOutBufferSize);
- }
-
-@@ -646,6 +674,19 @@
- mOutBufferSize);
- }
-
-+ int EncodeBufferMono(short int inbuffer[], unsigned char outbuffer[]) {
-+ if(!mEncoding) return -1;
-+
-+ return lame_encode_buffer(mGF, inbuffer, inbuffer, mSamplesPerChunk,
-+ outbuffer, mOutBufferSize);
-+ }
-+
-+ int EncodeRemainderMono(short int inbuffer[], int nSamples,
-+ unsigned char outbuffer[]) {
-+ return lame_encode_buffer(mGF, inbuffer, inbuffer , inbuffer, nSamples, outbuffer,
-+ mOutBufferSize);
-+ }
-+
- int FinishStream(unsigned char outbuffer[]) {
- mEncoding = false;
- int result = lame_encode_flush(mGF, outbuffer, mOutBufferSize);
-@@ -1285,9 +1326,22 @@
- short *mixed = (short *)mixer->GetBuffer();
-
- if(lastFrame)
-- bytes = GetMP3Exporter()->EncodeRemainder(mixed, numSamples, buffer);
-- else
-- bytes = GetMP3Exporter()->EncodeBuffer(mixed, buffer);
-+
-+ if (stereo) {
-+ bytes = GetMP3Exporter()->EncodeRemainder(mixed, numSamples , buffer);
-+ }
-+ else{
-+ bytes = GetMP3Exporter()->EncodeRemainderMono(mixed, numSamples , buffer);
-+ }
-+ else {
-+
-+ if (stereo) {
-+ bytes = GetMP3Exporter()->EncodeBuffer(mixed, buffer);
-+ }
-+ else {
-+ bytes = GetMP3Exporter()->EncodeBufferMono(mixed, buffer);
-+ }
-+ }
-
- outFile.Write(buffer, bytes);
-
-diff -ru audacity-src-1.1.1-3/src/export/ExportMP3.h /var/tmp/portage/audacity-1.1.1/work/audacity-src-1.1.1-3/src/export/ExportMP3.h
---- audacity-src-1.1.1-3/src/export/ExportMP3.h 2002-11-11 00:58:21.000000000 -0600
-+++ /var/tmp/portage/audacity-1.1.1/work/audacity-src-1.1.1-3/src/export/ExportMP3.h 2003-01-15 00:30:29.000000000 -0600
-@@ -38,6 +38,11 @@
- virtual int EncodeBuffer(short int inbuffer[], unsigned char outbuffer[]) = 0;
- virtual int EncodeRemainder(short int inbuffer[], int nSamples,
- unsigned char outbuffer[]) = 0;
-+
-+ virtual int EncodeBufferMono(short int inbuffer[], unsigned char outbuffer[]) = 0;
-+ virtual int EncodeRemainderMono(short int inbuffer[], int nSamples,
-+ unsigned char outbuffer[]) = 0;
-+
- virtual int FinishStream(unsigned char outbuffer[]) = 0;
- virtual void CancelEncoding() = 0;
-