1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-07 15:22:34 +02:00

147 Commits

Author SHA1 Message Date
Steve Daulton
a9879bddf0 Refactor clipfix.ny to fix multiple problems
Basically a rewrite based on the original algorithm.
2017-03-31 00:01:18 +01:00
Steve Daulton
260044bcb0 Ffix wx assert in debug build 2017-03-22 20:26:39 +00:00
Paul Licameli
70d9e4bdc7 GetMinMax, GetRMS functions take a mayThrow argument, return numbers 2017-03-21 14:19:02 -04:00
Paul Licameli
22a12c6852 Exception safety in: some effects and generators...
... Those that directly call WaveTrack functions in their Process() routines,
which might throw exceptions for disk space exhaustion.
2017-03-21 14:11:25 -04:00
Paul Licameli
8e5975b10d Report read exceptions met in SBSMS and Nyquist callbacks to user...
... without letting them propagate through the libraries.
2017-03-17 17:53:03 -04:00
Paul Licameli
6525bb18cf Translate exceptions to error codes in callback functions...
... That is what the library protocols allow, and libraries may be written
in C and might corrupt their state if C++ exceptions pass through them.
2017-03-17 17:53:01 -04:00
Paul Licameli
ac246d0468 Fix bug 1566 differently (signed/unsigned comparison) 2017-03-17 17:52:37 -04:00
Paul Licameli
004df48438 Make Effect::mTracks private 2017-03-17 17:52:25 -04:00
Steve Daulton
b66675d71c Restore legacy Nyquist plug-in PEAK-LEVEL property 2017-03-01 18:14:30 +00:00
Steve Daulton
f19b79f5c3 Consistency: 'plug-in' not 'plugin'
but retain deprecated / legacy form in code for compatibility.
2017-03-01 18:14:30 +00:00
Steve Daulton
67810d35bf Bug 1573 - Multi-line SAL scripts fail in Nyquist Prompt 2017-02-24 18:51:17 +00:00
Steve Daulton
81dd23bd16 Bug 1566 - Incorrect error message if Nyquist returns mono sound as an array
and quieten a load of compiler warnings.
2017-02-24 18:50:30 +00:00
Steve Daulton
1a5a025b70 Update Nyquist v4 property lists and comments
Comments added where documentation is required.
2017-02-24 18:50:28 +00:00
Paul Licameli
b17a14ccc2 Nested loop should use a different index variable...
... but there was not a bug here, because of the return.
2016-09-20 06:32:45 -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
67cec5ad83 Make many counts of tracks and channels unsigned...
... And in some places where a library uses signed types, assert that
the reported number is not negative.

What led me to this, is that there are many places where a size_t value for
an allocation is the product of a number of channels and some other number.
2016-09-07 10:11:41 -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
a6de680cdb use std::min and std::max 2016-08-22 21:45:54 -04:00
Paul Licameli
1189cfd62a Identify the few unsafe narrowing conversions from sampleCount...
... I believe this list of four places is exhaustive.

There are many, many more safe narrowings that I examined.

This resulted from changing the definition of sampleCount in my builds so that
narrowing conversions failed to compile without some fixes, and I examined and
fixed every place.

The rest of that work is not yet shared.
2016-08-21 15:28:32 -04:00
James Crook
b1526fbdc8 Change strings for clarity/consistency.
Changes suggested by (translator) scootergrisen
2016-08-19 19:30:21 +01:00
Paul Licameli
e599cfa6fa Effect::mOutputTracks is managed by smart pointer 2016-08-13 10:37:51 -04:00
Paul Licameli
a400a7408c Distinguish whether clip ptr arrays own; vector; const-correctness 2016-08-12 20:53:38 -04:00
Paul Licameli
84c0337aba Fix TAB key navigation on Mac for all dialogs (not only for panels) 2016-07-10 17:12:27 -04:00
Benjamin Drung
9e78a41faf Use std::isinf() instead of isinf()
Audacity fails to build on Ubuntu 16.04 with g++ 5.3.1 (using C++11),
because isinf() is not defined. Thus use std::isinf() instead.
2016-05-15 09:04:35 +02:00
Paul Licameli
2d7e21536e Sweep for filename copying: prefs and effects 2016-04-10 22:25:49 -04:00
Paul Licameli
2696da89cb One more use of smart pointer object SampleBuffer, in Nyquist.h...
...Leaving no "naked" DeleteSamples.  Only SampleBuffer::Free now calls it
directly, and SampleBuffer calls Free in its destructor.
2016-04-10 00:07:21 -04:00
Paul Licameli
a6ca36cdab TrackList holds smart pointers to tracks, Add() only takes rvalue refs to such 2016-03-26 15:41:31 -04:00
Paul Licameli
5ef4dd46a5 TrackFactory functions return std::unique_ptr, although some callers...
... release() them for now.
2016-03-26 11:50:12 -04:00
Steve Daulton
919712e3f7 Fix default EffectTypeProcess for Nyquist Prompt
Nyquist Prompt did not default to process type if a previous script
in the current session set a different type.
2016-03-14 09:22:25 +00:00
Paul Licameli
c98b090182 Rename SyncLockTracksIterator::First to StartWith to be consistent 2016-02-24 12:59:28 -05:00
Paul Licameli
99f161c36c Sweep unnecessary wxString copies: effects 2016-02-22 22:31:47 -05:00
Paul Licameli
1c07741d57 Sizers are owned by wxWindow objects when added, so use safenew, or...
... use unique_ptr in the interim between building them and adding.

This checks eliminates some naked news, which were not paired with deletes.
2016-02-18 18:58:38 -05:00
Paul Licameli
4d78e353c3 Revert "sizers"
This reverts commit 84c0a0b6663a1210be502a76ab9c48dd330b3919.
2016-02-18 14:50:52 -05:00
Paul Licameli
84c0a0b666 sizers 2016-02-18 02:54:50 -05:00
Paul Licameli
3f237daddc Use macro safenew for many allocations of wxWindow subclasses 2016-02-14 20:20:19 -05:00
Paul Licameli
97e8fe3864 include <algorithm> to fix Windows build 2016-01-21 10:41:03 -05:00
Steve Daulton
1d6d08c47d Don't push effects that can't be undone onto the Undo Stack 2016-01-21 02:07:28 +00:00
Steve Daulton
57d1f5583d Fix for bug 661
Introduce *DECIMAL-SEPARATOR* global for Nyquist.
Improvements to numeric validation error messages.
Fix *TRACK* START-TIME and END-TIME properties for tracks with different
length channels.
Update Adjustable Fade, Regular Interval Labels and Vocal Removal
to use numeric text inputs.
This does NOT fix bug 1020.
2016-01-21 01:29:56 +00:00
Steve Daulton
46055cde25 Fix effect preview issues
Fixes bug 1274 and unblocks bug 995.
2016-01-20 18:19:11 +00:00
Steve Daulton
6663f406d3 Bug 1275 - No preview in Spectral edit effects
Introduces a new type 'spectral' t Nyquist plug-ins
2015-12-26 19:26:39 +00:00
Paul Licameli
9c483e2e86 Add (redundant) #include "Experimental.h" in all .cpp files using the symbols 2015-08-31 17:56:10 -04:00
Steve Daulton
351a2a8528 Update Nyquist *TRACK* property list 2015-08-28 16:12:23 +01:00
Steve Daulton
8828ab50b7 Remove obsolete 'rate' keyword to prevent crash
and added numeric-text controls.
2015-08-23 18:37:18 +01:00
Steve Daulton
7ee8032f3c Limit selection length for Nyquist plug-ins
This can improve progress count for Nyquist effects
that do not process all of selection (bug 558) and provides some
protection against 2^31 overflow issues (bug 439).
2015-08-13 13:06:13 +01:00
Steve Daulton
2cb32c763f Fix for bug 558 2015-08-13 13:06:12 +01:00
Paul Licameli
5abbd463b2 Waveform dB is not a track type. Logarithmic is a Wavetrack scale type...
... Also removed one line from the track control drop-down, and changed
accelerators to more mnemonic choices.

Also the open page of View Settings... determines track view type after OK
2015-07-28 08:08:13 -04:00
Paul Licameli
adb4a534e8 Pitch is no longer a special view type... && bug fixes 1040, 1041
... It is a choice of algorithm in spectrogram settings, and any frequency
scale may be chosen with it.  Spectral selection works in it.
2015-07-27 23:01:20 -04:00
Paul Licameli
7d379cde13 Conditional compilation (disabled) to make Spectral selection choice global...
... not per track,
and the preferences or View Settings page has a separate static box for
global settings as opposed to track settings.  This is the only global setting
for now.
2015-07-27 23:01:06 -04:00