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:
commit
5ef9b81a94
@ -42,6 +42,7 @@
|
||||
#ifndef __AUDACITY_TYPES_H__
|
||||
#define __AUDACITY_TYPES_H__
|
||||
|
||||
#include <algorithm>
|
||||
#include <wx/string.h>
|
||||
#include <wx/arrstr.h>
|
||||
|
||||
|
@ -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 */,
|
||||
|
@ -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
|
||||
|
@ -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];
|
||||
}
|
||||
|
||||
|
@ -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++;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -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];
|
||||
}
|
||||
|
@ -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];
|
||||
}
|
||||
|
@ -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];
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user