Commit Graph

1861 Commits

Author SHA1 Message Date
SteveDaulton 7e6842c1f9 Remove Silence Finder plug-in
as discussed between QA and RM.
2021-01-09 20:20:42 +00:00
SteveDaulton f57e69cfca Replace Sound Finder with Label Sounds
also fixes bug 2352:
Sound / Silence Finder fail silently on selection > 2^31 -1
2021-01-06 16:52:39 +00:00
Paul Licameli 4871584cb3 Mixer::WarpOptions constructor for common case 2020-11-30 13:42:35 -05:00
Paul Licameli caa312ab7b Remove some unneeded #includes and forward declarations 2020-11-20 13:47:47 -05:00
Steve Daulton c3a47d0a75
Bug 2585 - Incorrect help file address for Loudness Normalization 2020-11-17 17:35:50 +00:00
SteveDaulton 22dbe0a17a Fix bug 2563 - Button text ignored in Nyquist file widget 2020-10-05 21:18:03 +01:00
Paul Licameli ec323c13d9 Add conventional #include guards to two header files 2020-09-26 15:26:25 -04:00
Paul Licameli d3ab8b7f76 Compatibility sanity check for inserting clips into a WaveTrack...
... And don't move from the shared pointer argument
2020-09-19 19:16:47 -04:00
Leland Lucius c60bf1c994 Fix build 2020-09-18 09:55:49 -05:00
Leland Lucius 6749d5b6fa Bug 1215 - Incorrect splits produced by Change Tempo with leading whitespace 2020-09-18 09:24:45 -05:00
Leland Lucius 3605d73d12 Bug 2534 - Change Speed merges selected clip with adjacent clips 2020-09-18 09:00:50 -05:00
Leland Lucius 5bca69ca31 Fixes for bugs 2534 and 1215 2020-09-17 23:22:00 -05:00
Leland Lucius 5342d980fb Bug 2367 - Change Pitch effect may create spurious clip at end
Fixes residual mentioned in Comment #11
2020-09-06 03:37:57 -05:00
Paul Licameli e7b3c2b99f Cut and paste TransactionScope into DBConnection.* files 2020-09-05 14:44:34 -04:00
Paul Licameli ddc2593282 TransactionScope only requires DBConnection not ProjectFileIO 2020-09-05 14:35:24 -04:00
Paul Licameli c17b804750
Dont delete sample blocks prematurely (#648)
* Revert "AUP3: Don't delete sample blocks prematurely"

This reverts commit c1884349d5.

* "Don't delete sample blocks prematurely" fixed otherwise...

... and very simply.

Problem was that, only for an interactive effect (like Bass and Treble), the
save point was created, rolled back, created again, then committed.

But (unlike with the non-savepoint commands, even if savepoint is outermost),
rolling back a savepoint really just rewinds it without removing it -- therefore
the second savepoint was inner, but the first (outer) was never committed, so
some changes failed to persist.

Solution:  add a commit after rollback of savepoint to implement destructor
of AutoCommitTransaction.

The reversion of c188434 also leaves AutoCommitTransaction as a better RAII
style operation.  Rollback changes by default -- keep changes only if
success is explicitly indicated.

* Rename AutoCommitTransaction as TransactionScope...

... More appropriately, since it's now the rollback that is automatic but
the commit that must be explicit
2020-08-28 15:38:38 -05:00
Paul Licameli 4ca3e7096f
Track factory cleanup (#646)
* Don't need TrackFactory to make LabelTrack

* Don't need TrackFactory to make NoteTrack

* Don't need TrackFactory to make TimeTrack, or ZoomInfo in the factory

* Remove some forward declarations

* Rename TrackFactory as WaveTrackFactory, move it out of Track.cpp
2020-08-22 18:44:49 -05:00
SteveDaulton 25ddfc7bb4 Nyquist Prompt: Remove legacy code checkboox 2020-08-17 22:16:04 +01:00
Leland Lucius 58adb94747 Bug 1686 - Equalization effects ignore and remove any amplitude envelope 2020-08-09 03:07:41 -05:00
David Bailes 1d9a78b8c8 Bug 2517 - Mix Stereo To Mono incorrectly uses Project Rate
Fix:
Use the sample rate of the tracks.
2020-08-07 11:22:06 +01:00
James Crook dad27f9eea Bug 2509 - Filter curve and Graphic EQ help links are broken in release version 2020-07-28 12:19:35 +01:00
Leland Lucius e2d6e1cc24 AUP3: Update default/lastused path handling 2020-07-27 14:11:50 -05:00
Leland Lucius c1884349d5 AUP3: Don't delete sample blocks prematurely
The wrong sample blocks would be deleted at close in step 6:

1) New Project
2) Save and name
3) Import one stereo MP3 (about 6 minutes)
4) Save, close and re-open
5) Apply Bass and Treble to the track using real-time preview
6) Save, close and re-open
7) Message Failed to retrieve sample block
2020-07-25 20:03:23 -05:00
Paul Licameli a8fd6c6ce8
Preliminaries for grouped block deletion (#628)
* Change usage of AutoCommitTransaction::Rollback...

... It is the more useful pattern (as in many finally blocks) for the failure
path in the destructor (which rolls back) to be the default, but an explicit
call must inform it of success.

This corrects the early return paths in Effect::DoEffect().

Throw inconsistency exception if Commit() is called again after having been
called once, successfully

Also remove a friend declaration

* UndoManager's interface uses consistent 0-based indexing of states...

... Returned by GetCurrentState() and used by SetStateTo(),
GetLongDescription(), GetShortDescription()

* SampleBlock::GetBlockID is const

* Generalized function to visit sample blocks used in a TrackList...

... Eliminating some duplication; put it in WaveTrack, not Track, to avoid
a dependency cycle.

* Eliminate more repetition with BlockSpaceUsageAccumulator

* Function to delete all blocks of/not-of a given set in one command
2020-07-23 11:17:29 -05:00
SteveDaulton c7c679ffed Bug 2507 Nyquist fails if track or project name contains quotes 2020-07-23 16:57:38 +01:00
Leland Lucius 7e9a3f49b8 AUP3: Wrap effect processing in a transaction
This is solely for performance reasons and has
nothing at all to do with recoverability.
2020-07-21 16:39:18 -05:00
Leland Lucius 84f363ee07 AUP3: Simplify checkpoing and add checkpoint progress dialog
Also move the project file closure out of the ProjectFileIO
destructor and does it before the project file window is
destroyed.
2020-07-20 11:10:31 -05:00
Leland Lucius d2b4a0e488 AUP3: Put checkpointing in a separate thread
This is highly experimental.  It's defers most checkpointing
to a separate thread to see if we get better throughput and
less choppiness when applying effects.
2020-07-19 03:28:02 -05:00
David Bailes c174b254a1 Bug 2487 - Playback meters and preview of non-real-time effect
Problem:
Playback meters do not respond during preview of non-real-time effect.

Commit ba6db6e added the meters into AudioIOStartStreamOptions.
However Effect::Preview(bool) was not modified to set the playback meter.

Fix:
In Effect::Preview(bool), use DefaultPlayOptions, which includes a playback meter.
2020-07-16 14:41:48 +01:00
Leland Lucius 5b41115bd0 AUP3: Mostly rework of CopyTo()
It now uses VACUUM INTO instead of the SQLite backup API
in hopes that the copies will be smaller. And VACUUM INTO
is "supposed" to be faster, but time will tell.  It's easy
to put the backup API usage back in.

This also fixes a bit I missed with redoing the orphan block
handling that was reported by Paul.

And finally, it renames the AutoRecovery.cpp/.h files and AutoSaveFile
class to ProjectSerializer since the AutoSaveFile class is being
used for regular project documents now and it doesn't write to a
file anymore.

If anyone has a better idea for a name other than ProjectSerializer
feel free to change it.  I hate naming things.
2020-07-10 00:50:52 -05:00
David Bailes 5b4c9b3425 Bug 2498 - Loudness Normalization always displays LUFS on launch
Problem:
On opening, the units were always LUFS, and the "treat stereo as dual-mono" check box was always available.

Fix:
On opening, adjust the controls which depend on the value of the Normalize choice.
2020-07-09 15:48:01 +01:00
Paul Licameli 88ba35f520
Fix exception handling, as when trying to edit read-only database... (#607)
... Problem is that the delayed undo handling (in the lambda in AudacityApp ::
OnExceptionInMainLoop) should itself have only non-throwing steps.

But there was a redundant attempt at autosaving in ProjectHistory ::
RollbackState, which itself requires another data base write.

But when "rolling back" the in-memory structures to whatever the current state
of undo history is, we can assume that any required autosave was completed
before the current state of undo history was set.

So for rollback only, do not autosave again when discarding changes and
restoring the state.  (But do it still, throwing on failure, when moving around
in the undo history, among saved states.  We do want to keep the last autosave
consistent with the in-memory state.)
2020-07-08 00:44:41 -05:00
Leland Lucius d39590cf41 AUP3: First round of updates
!!! THERE WILL NO DOUBT BE BUGS !!!

This is a big one and there's still several things to
complete. Just want to get this in the wild to start
receiving feedback.

One big thing right now is that it will NOT load pre-aup3
files.  An importer is on the way for that.
2020-07-01 02:30:18 -05:00
Leland Lucius cbf1bb558e AUP3: Removes OD code related to project file handling
This removes all of the OnDemand code embedded throughout
    the main codebase. Individual files related specifically
    to OD have been left in place, but removed from the build.
2020-07-01 01:14:05 -05:00
Paul Licameli e4260e2e95 virtual dtors should be non-inline 2020-06-14 21:00:06 -04:00
Leland Lucius 87cae3f0c8 Mac: AudioUnit effects are not applied if you initially use the preview 2020-06-14 13:58:30 -05:00
Paul Licameli 3869a8f460 Remove allegro.h from other headers 2020-06-14 10:32:16 -04:00
Paul Licameli a7408a7f80 Remove TimeWarper.h from other headers 2020-06-13 11:22:41 -04:00
Paul Licameli 1bce7c1979 Disambiguate "Silence" 2020-06-06 15:14:42 -04:00
Paul Licameli 782ef138e0 Bug2431 residual: Restore commit 5e8cfb0...
... as urged by Leland.  It is really needed for a more complete fix.

This reverts commit 9894abc4f4.
2020-06-06 14:59:32 -04:00
David Bailes 13ec3300a9 Bug 2471 - Mix Stereo down to Mono fails if space at start of track
Fix:
In the constructor for Mixer, the start and end times should be in seconds, not sample numbers.

Also fixed in passing, in computing end time of a track, the max of the two channels should be used, rather than the min.
2020-06-05 14:33:45 +01:00
James Crook 296a9a2291 Bug 2468 - Python scripting of Nyquist effects must set ALL parameters, or all parameters are ignored.
My code is for normal Nyquist effects.  This fix also incorporates a fix from Leland for Nyquist Prompt.  Thanks Leland.
2020-06-03 12:45:15 +01:00
Paul Licameli 3646bb8afe Bug2431: Enable checkbox for ALL realtime effects should work...
... not just for AudioUnits, but also WahWah, VST, etc.
2020-05-29 20:54:45 -04:00
Paul Licameli c973f0d8ed Do restore a piece of 5e8cfb0c5adf9b3f917123e4d04d00423206d7d5...
... to initialize a variable
2020-05-29 20:54:45 -04:00
Paul Licameli 9894abc4f4 Revert "Bug 2431 - Mac: Real-time effects - Enable checkbox has no effect"
... so I can make a more general fix, for more than only AudioUnit effects

This reverts commit 5e8cfb0c5a.
2020-05-29 20:54:45 -04:00
James Crook 637712489f Bug 2428 - Nyquist Effects do not display a Progress Dialog if run from a Macro. 2020-05-29 21:54:18 +01:00
Paul Licameli 9360359e9d
Module manager (#549)
* Eliminate ModuleManagerInterface...

... It was there only to provide RegisterModule(), but that was not used
anywhere.  So simplify.

* Remove nested #include of ModuleInterface.h
2020-05-29 10:48:52 -05:00
Paul Licameli e9f63d43d1 Contexts & i18n-hints suggested by Joachim Huffer (thanks!) 2020-05-28 16:34:00 -04:00
Paul Licameli f3d91f488e Remove extern declarations from .cpp files...
... Require the declarations to be in .h files, to be sure graph.pl detects the
dependencies.

Only one more #include was needed in Nyquist.cpp.   This doesn't reveal any
more hidden cycles.
2020-05-28 05:50:25 -04:00
Paul Licameli fa4d35296e AllThemeResources.h has a .cpp & doesnt include Theme.h...
... (it used to, via MacroMagic)

This splits a cycle of 8 into 6 + 1 + 1
2020-05-28 05:50:24 -04:00