1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-07 16:07:44 +02:00

173 Commits

Author SHA1 Message Date
Paul Licameli
70d9e4bdc7 GetMinMax, GetRMS functions take a mayThrow argument, return numbers 2017-03-21 14:19:02 -04:00
Paul Licameli
b81cdee7e3 Comment where xml writing functions may throw 2017-03-18 11:45:05 -04:00
Paul Licameli
58574f2f78 Redo type HFFT as a smart pointer, remove malloc and free 2017-03-17 17:52:51 -04:00
Paul Licameli
18be1bdad6 Remove naked new[] in: tracks 2017-03-17 17:52:47 -04:00
Paul Licameli
bb5dc07c51 Fix one scalar naked new that crept back in 2017-03-17 17:52:41 -04:00
Paul Licameli
b4734ff790 Duplicate command copies cutlines 2017-03-17 17:52:40 -04:00
Paul Licameli
934a505e1a Changes in WaveClip construction...
... Eliminate CreateFromCopy, add new one-step constructor instead.
It was wasteful to create a copy only to re-create the Sequence at once.

Sequence::Copy is a factory returning a unique_ptr.

Some error checks are removed, but there will be exceptions instead later.
2017-03-17 17:52:39 -04:00
Paul Licameli
65c722bfe5 Comment: resample, reformat of WaveClip needs no recursion for cutlines 2017-03-17 17:52:39 -04:00
Paul Licameli
87775d35e0 null pointer checks on all uses of WaveTrackCache::Get 2017-03-17 17:52:35 -04:00
Paul Licameli
8ddbc1d3d3 Assume number of spectrogram bins = 1/2 FFT window in fewer places...
... and that they have equal width on the linear scale
... also simplify the logic involving zero padding factor

This is more preparation for constant-q.
2017-03-17 17:52:28 -04:00
Paul Licameli
aa0d55ac83 Use enum class ProgressResult, don't interconvert with int or bool 2017-03-17 17:52:24 -04:00
Paul Licameli
81285ee0c1 More const and override 2017-03-17 17:52:20 -04:00
Paul Licameli
a9d33f87c4 Comments and minor off by one fixes for drawing wave clips...
... and rename two shadowing variables
2016-10-01 13:01:19 -04:00
Paul Licameli
921b769b52 Fix the previous fix! ... in copying of wave clip display caches. 2016-10-01 10:24:50 -04:00
Paul Licameli
a41eb4422c Fix mistake in partial reuse of caches for drawing wave & spectrum...
... But this mistake probably had no visible consequences, if total width
in pixes was unchanged.
2016-10-01 10:07:29 -04:00
Paul Licameli
f993f1eadf Regularize casts as (int), so they are easier to find and review 2016-09-20 08:42:11 -04:00
Paul Licameli
ad04187a41 Change sampleCount arguments, variables, return values to size_t...
... whenever they really describe the size of a buffer that fits in memory, or
of a block file (which is never now more than a megabyte and so could be fit in
memory all at once), or a part thereof.
2016-09-15 21:03:17 -04:00
Paul Licameli
078ff056e2 Make many conversions sampleCount->size_t are explicit and checked...
... with run-time assertions.

I examined each place and reasoned that the narrowing was safe, and commented
why so.

Again, there are places where the sampleCount variable will later be changed
to have a different type, and they are not changed here.
2016-09-15 21:02:32 -04:00
Paul Licameli
78be459fa1 Convert sampleCount <-> floating or -> long long explicitly ...
... A non-narrowing conversion out to long long is a necessity, but the
conversions to float and double are simply conveniences.

Conversion from floating is explicit, to avoid unintended consequences with
arithmetic operators, when later sampleCount ceases to be an alias for an
integral type.

Some conversions are not made explicit, where I expect to change the type of
the variable later to have mere size_t width.
2016-09-15 21:02:31 -04:00
Paul Licameli
ed21545c80 pixel column counts and sample window sizes use unsigned types 2016-09-11 20:28:13 -04:00
Paul Licameli
43b4d3cc99 travis 2016-09-07 13:38:39 -04:00
Paul Licameli
301fa337d5 Fix bug when expanding a cutline that contains another cutline...
... rare case, indeed.
2016-09-07 12:50:53 -04:00
Paul Licameli
919d77d176 More uses of min and max 2016-09-06 20:46:25 -04:00
Paul Licameli
c8e7372886 Rewrite Resample::Process to take and return size_t values 2016-09-06 12:39:58 -04:00
Darrell Walisser
180da5a769 change reserve to resize, clarify what omp atomic is used 2016-08-31 11:25:32 -04:00
Darrell Walisser
ce92dce856 improved OpenMP SpecCache::Populate 2016-08-28 13:00:44 -04:00
Paul Licameli
127b2a6acf Fix more narrowings of sampleCount 2016-08-26 12:42:22 -04:00
James Crook
1e0fcbf872 Profiling of spectrogram is opt-in for normal builds. 2016-08-26 12:32:54 +01:00
Darrell Walisser
b2d1470062 OpenMP-ized SpecCache::Populate 2016-08-25 13:44:12 -04:00
Paul Licameli
52417c444d Remove unnecessary casts to sampleCount 2016-08-24 14:50:46 -04:00
Paul Licameli
fd2b050d6f Type agnosticism for some other variables that were not sampleCount...
... in some cases, this fixes narrowings.
2016-08-24 14:50:45 -04:00
Paul Licameli
79c79f9cd3 Remove many mentions of sampleCount with auto and decltype...
... This makes much code agnostic about how other things (functions and
arguments) are typed.

Many of these neeed to become size_t instead of sampleCount.
2016-08-24 14:50:45 -04:00
Paul Licameli
1281f1b14b Common function limits buffer size to sampleCount known to be small 2016-08-23 12:46:10 -04:00
Paul Licameli
46f38708ed Dir manager uses std::shared_ptr 2016-08-13 12:23:05 -04:00
Paul Licameli
2917fe5087 One more make_unique for WaveClip, and comment changes 2016-08-13 10:37:52 -04:00
Paul Licameli
dcceaca13c Envelope bug 2016-08-12 20:53:38 -04:00
Paul Licameli
cb48ca2b91 Use arrays of smart pointers to WaveClip 2016-08-12 20:53:38 -04:00
Paul Licameli
a400a7408c Distinguish whether clip ptr arrays own; vector; const-correctness 2016-08-12 20:53:38 -04:00
Paul Licameli
4cbca5d75c Use std::vector to hold WaveClips 2016-08-12 20:53:38 -04:00
Paul Licameli
bd57f6392f Simplify iterations over cutlines in WaveClip.cpp; stl idioms 2016-08-12 20:53:37 -04:00
Paul Licameli
6e4e710d3b Remove seeming naked new and deletes in comments and uncompiled code 2016-08-10 11:05:51 -04:00
Paul Licameli
20bee00115 Remove some naked new amd delete in: tracks and clips 2016-08-08 07:30:44 -04:00
Raphaël Marinier
6ac68db5be Code cleanup: removed the old real FFT code not used since at least 2009.
I confirmed that the currently used real FFT code in RealFFTf.cpp is faster
than the old one with a quick benchmark that calls PowerSpectrum() on 4-minute
audio file, with different sizes of computation windows:

Window_size: 256 method: new FFT time_s: 0.393
Window_size: 256 method: old FFT time_s: 1.065
Window_size: 1024 method: new FFT time_s: 0.38
Window_size: 1024 method: old FFT time_s: 0.958
Window_size: 4096 method: new FFT time_s: 0.413
Window_size: 4096 method: old FFT time_s: 1.084
Window_size: 16384 method: new FFT time_s: 0.518
Window_size: 16384 method: old FFT time_s: 1.338
Window_size: 65536 method: new FFT time_s: 0.655
Window_size: 65536 method: old FFT time_s: 1.524
Window_size: 262144 method: new FFT time_s: 0.735
Window_size: 262144 method: old FFT time_s: 1.873
2016-06-25 20:40:16 +02:00
Paul Licameli
94cf94718e Redefine ODLocker as movable, and it may try-lock only. 2016-04-17 13:58:21 -04:00
Paul Licameli
f94b3b3afa Add some const qualifiers to BlockFile methods 2016-04-10 21:05:20 -04:00
Paul Licameli
daf92c43f8 Sequence::Copy is a factory returning smart pointer. WaveClip stores it. 2016-04-10 20:47:45 -04:00
Paul Licameli
0c9deb398c Fix mac build. No standard headers in Audacity.h. 2016-03-01 12:22:37 -05:00
Paul Licameli
48a5f55179 More const qualifiers, for copying of tracks, and replacing in lists of tracks
... (the tracks may be const, not the list, when replacing)
2016-02-27 17:30:30 -05:00
Paul Licameli
70c1d57591 More const qualifications, and mutables, for functions that draw tracks...
... The display related  members that had to become mutable are probably
ones that don't belong in the track classes, ultimately.
2016-02-27 12:35:17 -05:00
Paul Licameli
9bf098c7d9 Sweep unnecessary wxString copies: rest 2016-02-23 02:15:56 -05:00