1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-19 06:07:42 +02:00

Merge branch 'master' into HEAD

This commit is contained in:
Paul Licameli 2016-08-24 14:50:13 -04:00
commit 5ef9b81a94
12 changed files with 29 additions and 28 deletions

View File

@ -42,6 +42,7 @@
#ifndef __AUDACITY_TYPES_H__
#define __AUDACITY_TYPES_H__
#include <algorithm>
#include <wx/string.h>
#include <wx/arrstr.h>

View File

@ -3102,8 +3102,8 @@
EDD94ED9103CB520000873F1 /* ImportExportCommands.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.cpp.cpp; path = ImportExportCommands.cpp; sourceTree = "<group>"; tabWidth = 3; };
EDD94EDA103CB520000873F1 /* ImportExportCommands.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = ImportExportCommands.h; sourceTree = "<group>"; tabWidth = 3; };
EDE325FF168243EF00C19E60 /* vr32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vr32.c; sourceTree = "<group>"; };
EDF3B7AE1588C0D50032D35F /* Paulstretch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Paulstretch.h; path = effects/Paulstretch.h; sourceTree = "<group>"; };
EDF3B7AF1588C0D50032D35F /* Paulstretch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Paulstretch.cpp; path = effects/Paulstretch.cpp; sourceTree = "<group>"; };
EDF3B7AE1588C0D50032D35F /* Paulstretch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Paulstretch.h; sourceTree = "<group>"; };
EDF3B7AF1588C0D50032D35F /* Paulstretch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Paulstretch.cpp; sourceTree = "<group>"; };
EDFCEB9A18894AE600C98E51 /* OpenSaveCommands.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OpenSaveCommands.cpp; sourceTree = "<group>"; };
EDFCEB9B18894AE600C98E51 /* OpenSaveCommands.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenSaveCommands.h; sourceTree = "<group>"; };
EDFCEBA218894B2A00C98E51 /* RealFFTf48x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RealFFTf48x.cpp; sourceTree = "<group>"; };
@ -3874,7 +3874,6 @@
289E75081006D0BD00CEF79B /* MixerBoard.cpp */,
280A8B4519F4403B0091DE70 /* ModuleManager.cpp */,
1790B0AF09883BFD008A330A /* NoteTrack.cpp */,
EDF3B7AF1588C0D50032D35F /* Paulstretch.cpp */,
1790B0B109883BFD008A330A /* PitchName.cpp */,
1790B0B309883BFD008A330A /* PlatformCompatibility.cpp */,
287E207E102561F300BF47A2 /* PluginManager.cpp */,
@ -3966,7 +3965,6 @@
280A8B4619F4403B0091DE70 /* ModuleManager.h */,
1790B0B009883BFD008A330A /* NoteTrack.h */,
280F5C8B1B676699003022C5 /* NumberScale.h */,
EDF3B7AE1588C0D50032D35F /* Paulstretch.h */,
1790B0B209883BFD008A330A /* PitchName.h */,
1790B0B409883BFD008A330A /* PlatformCompatibility.h */,
2803C8B519F35AA000278526 /* PluginManager.h */,
@ -4115,6 +4113,8 @@
1790B03409883BFD008A330A /* nyquist */,
1790B03A09883BFD008A330A /* Phaser.cpp */,
1790B03B09883BFD008A330A /* Phaser.h */,
EDF3B7AF1588C0D50032D35F /* Paulstretch.cpp */,
EDF3B7AE1588C0D50032D35F /* Paulstretch.h */,
28EBA7FA0A78FADE00C8BB1F /* Repair.cpp */,
28EBA7FB0A78FADE00C8BB1F /* Repair.h */,
1790B03E09883BFD008A330A /* Repeat.cpp */,

View File

@ -96,10 +96,10 @@
// Use on-demand importing for FLAC. Has issues with opening projects that
// have not been fully imported in builds without FLAC support, so disabled for
// 2.0 release
#define EXPERIMENTAL_OD_FLAC
//#define EXPERIMENTAL_OD_FLAC
// similarly for FFmpeg:
// Won't build on Fedora 17 or Windows VC++, per http://bugzilla.audacityteam.org/show_bug.cgi?id=539.
#define EXPERIMENTAL_OD_FFMPEG 1
//#define EXPERIMENTAL_OD_FFMPEG 1
// Paul Licameli (PRL) 5 Oct 2014
#define EXPERIMENTAL_SPECTRAL_EDITING

View File

@ -448,7 +448,7 @@ sampleCount Mixer::MixVariableRates(int *channelFlags, WaveTrackCache &cache,
memmove(queue, &queue[*queueStart], (*queueLen) * sampleSize);
*queueStart = 0;
const auto getLen = limitSampleBufferSize(
auto getLen = limitSampleBufferSize(
mQueueMaxLen - *queueLen,
backwards ? *pos - endPos : endPos - *pos
);
@ -476,7 +476,7 @@ sampleCount Mixer::MixVariableRates(int *channelFlags, WaveTrackCache &cache,
*pos += getLen;
}
for (decltype(+getLen) i = 0; i < getLen; i++) {
for (decltype(getLen) i = 0; i < getLen; i++) {
queue[(*queueLen) + i] *= mEnvValues[i];
}

View File

@ -848,12 +848,12 @@ double VoiceKey::TestEnergy (WaveTrack & t, sampleCount start, sampleCount len)
while(len > 0)
{
//Figure out how much to grab
const auto block = limitSampleBufferSize ( t.GetBestBlockSize(s), len );
auto block = limitSampleBufferSize ( t.GetBestBlockSize(s), len );
t.Get((samplePtr)buffer,floatSample, s,block); //grab the block;
//Now, go through the block and calculate energy
for(decltype(+block) i = 0; i< block; i++)
for(decltype(block) i = 0; i< block; i++)
{
sum += buffer[i]*buffer[i];
}
@ -891,7 +891,7 @@ double VoiceKey::TestSignChanges(WaveTrack & t, sampleCount start, sampleCount l
while(len > 0) {
//Figure out how much to grab
const auto block = limitSampleBufferSize ( t.GetBestBlockSize(s), len );
auto block = limitSampleBufferSize ( t.GetBestBlockSize(s), len );
t.Get((samplePtr)buffer,floatSample, s,block); //grab the block;
@ -903,7 +903,7 @@ double VoiceKey::TestSignChanges(WaveTrack & t, sampleCount start, sampleCount l
//Now, go through the block and calculate zero crossings
for(decltype(+block) i = 0; i< block; i++)
for(decltype(block) i = 0; i< block; i++)
{
if( sgn(buffer[i]) != currentsign)
{
@ -948,7 +948,7 @@ double VoiceKey::TestDirectionChanges(WaveTrack & t, sampleCount start, sampleCo
while(len > 0) {
//Figure out how much to grab
const auto block = limitSampleBufferSize ( t.GetBestBlockSize(s), len );
auto block = limitSampleBufferSize ( t.GetBestBlockSize(s), len );
t.Get((samplePtr)buffer,floatSample, s,block); //grab the block;
@ -960,7 +960,7 @@ double VoiceKey::TestDirectionChanges(WaveTrack & t, sampleCount start, sampleCo
//Now, go through the block and calculate zero crossings
for(decltype(+block) i = 0; i< block; i++){
for(decltype(block) i = 0; i< block; i++){
if( sgn(buffer[i]-lastval) != lastdirection) {
directionchanges++;

View File

@ -1459,11 +1459,11 @@ bool WaveTrack::Disjoin(double t0, double t1)
sampleCount len = ( end - start );
for( sampleCount done = 0; done < len; done += maxAtOnce )
{
const auto numSamples = limitSampleBufferSize( maxAtOnce, len - done );
auto numSamples = limitSampleBufferSize( maxAtOnce, len - done );
clip->GetSamples( ( samplePtr )buffer, floatSample, start + done,
numSamples );
for( decltype(+numSamples) i = 0; i < numSamples; i++ )
for( decltype(numSamples) i = 0; i < numSamples; i++ )
{
sampleCount curSamplePos = start + done + i;

View File

@ -110,13 +110,13 @@ bool CompareAudioCommand::Apply(CommandExecutionContext context)
while (position < s1)
{
// Get a block of data into the buffers
const auto block = limitSampleBufferSize(
auto block = limitSampleBufferSize(
mTrack0->GetBestBlockSize(position), s1 - position
);
mTrack0->Get((samplePtr)buff0, floatSample, position, block);
mTrack1->Get((samplePtr)buff1, floatSample, position, block);
for (decltype(+block) buffPos = 0; buffPos < block; ++buffPos)
for (decltype(block) buffPos = 0; buffPos < block; ++buffPos)
{
if (CompareSample(buff0[buffPos], buff1[buffPos]) > errorThreshold)
{

View File

@ -229,13 +229,13 @@ bool EffectReverse::ProcessOneClip(int count, WaveTrack *track,
sampleCount originalLen = (sampleCount)originalEnd-originalStart;
while (len > 1) {
const auto block =
auto block =
limitSampleBufferSize( track->GetBestBlockSize(first), len / 2 );
second = first + (len - block);
track->Get((samplePtr)buffer1, floatSample, first, block);
track->Get((samplePtr)buffer2, floatSample, second, block);
for (decltype(+block) i = 0; i < block; i++) {
for (decltype(block) i = 0; i < block; i++) {
tmp = buffer1[i];
buffer1[i] = buffer2[block-i-1];
buffer2[block-i-1] = tmp;

View File

@ -98,7 +98,7 @@ long resampleCB(void *cb_data, SBSMSFrame *data)
{
ResampleBuf *r = (ResampleBuf*) cb_data;
const auto blockSize = limitSampleBufferSize(
auto blockSize = limitSampleBufferSize(
r->leftTrack->GetBestBlockSize(r->offset),
r->end - r->offset
);
@ -108,7 +108,7 @@ long resampleCB(void *cb_data, SBSMSFrame *data)
r->rightTrack->Get((samplePtr)(r->rightBuffer), floatSample, r->offset, blockSize);
// convert to sbsms audio format
for(decltype(+blockSize) i=0; i<blockSize; i++) {
for(decltype(blockSize) i=0; i<blockSize; i++) {
r->buf[i][0] = r->leftBuffer[i];
r->buf[i][1] = r->rightBuffer[i];
}

View File

@ -281,7 +281,7 @@ bool EffectSoundTouch::ProcessStereo(WaveTrack* leftTrack, WaveTrack* rightTrack
while (sourceSampleCount < end) {
//Get a block of samples (smaller than the size of the buffer)
//Adjust the block size if it is the final block in the track
const auto blockSize = limitSampleBufferSize(
auto blockSize = limitSampleBufferSize(
leftTrack->GetBestBlockSize(sourceSampleCount),
end - sourceSampleCount
);
@ -291,7 +291,7 @@ bool EffectSoundTouch::ProcessStereo(WaveTrack* leftTrack, WaveTrack* rightTrack
rightTrack->Get((samplePtr)(rightBuffer), floatSample, sourceSampleCount, blockSize);
// Interleave into soundTouchBuffer.
for (decltype(+blockSize) index = 0; index < blockSize; index++) {
for (decltype(blockSize) index = 0; index < blockSize; index++) {
soundTouchBuffer[index*2] = leftBuffer[index];
soundTouchBuffer[(index*2)+1] = rightBuffer[index];
}

View File

@ -144,8 +144,8 @@ bool EffectStereoToMono::ProcessOne(int count)
while (index < mEnd) {
bResult &= mLeftTrack->Get((samplePtr)leftBuffer, floatSample, index, idealBlockLen);
bResult &= mRightTrack->Get((samplePtr)rightBuffer, floatSample, index, idealBlockLen);
const auto limit = limitSampleBufferSize( idealBlockLen, mEnd - index );
for (decltype(+limit) i = 0; i < limit; ++i) {
auto limit = limitSampleBufferSize( idealBlockLen, mEnd - index );
for (decltype(limit) i = 0; i < limit; ++i) {
index++;
curLeftFrame = leftBuffer[i];
curRightFrame = rightBuffer[i];

View File

@ -624,13 +624,13 @@ bool EffectTruncSilence::Analyze(RegionList& silenceList,
// End of optimization
// Limit size of current block if we've reached the end
const auto count = limitSampleBufferSize( blockLen, end - *index );
auto count = limitSampleBufferSize( blockLen, end - *index );
// Fill buffer
wt->Get((samplePtr)(buffer), floatSample, *index, count);
// Look for silenceList in current block
for (decltype(+count) i = 0; i < count; ++i) {
for (decltype(count) i = 0; i < count; ++i) {
if (inputLength && ((outLength >= previewLen) || (outLength > wt->TimeToLongSamples(*minInputLength)))) {
*inputLength = wt->LongSamplesToTime(*index + i) - wt->LongSamplesToTime(start);
break;