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

107 Commits

Author SHA1 Message Date
Paul Licameli
837a96d18a Scrub queue records positions as sampleCount not long 2016-09-04 16:28:40 -04:00
Paul Licameli
15a60bde4b Fix linux debug complaints of missing thread shut-down...
... caused by commit b47bcb548e7866c1a44a4600ffbeff0ae0445516
2016-08-15 21:21:09 -04:00
Paul Licameli
a52f7f8410 new -> NEW in comments, so text search for naked new excludes them 2016-08-08 10:07:37 -04:00
Paul Licameli
b47bcb548e Remove some naked new amd delete in: AudioIO 2016-08-08 07:51:27 -04:00
Paul Licameli
27527ebf5c One less indirection for arrays of capture and playback tracks 2016-08-08 07:51:26 -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
Paul Licameli
a9a404c7cf Further simplified argument passing 2016-05-28 12:02:16 -04:00
Paul Licameli
9a256d3790 Don't let the consumers discard too much from the scrub queue...
Producer adds silences when needed, so that the accounting in Transformer()
is correct
2016-05-28 11:59:22 -04:00
Paul Licameli
ffe596c760 Move some fields into ScrubbingOptions 2016-05-22 15:27:35 -04:00
Paul Licameli
671f60492d Move some static functions into ScrubbingOptions 2016-05-22 15:27:35 -04:00
Paul Licameli
3dcf802bdc Have just one scrub enqueueing function: use options for distinctions 2016-05-22 15:27:35 -04:00
Paul Licameli
cdbdd6480b Define and pass around struct ScrubbingOptions, but nothing in it yet 2016-05-22 15:27:35 -04:00
Paul Licameli
36e5b4fbbc AudioIOStartStreamOptions includes the sample rate 2016-05-22 15:27:35 -04:00
Paul Licameli
e1f4ab6af6 Double-click record with overdub pins record head center not right 2016-05-17 13:21:39 -04:00
Paul Licameli
52910f4f07 Less scrub lag: don't poll for available data, get woken up directly 2016-05-15 16:18:00 -04:00
Paul Licameli
19ef2f6681 Implement drag-scrub, compatibly with the existing move-scrub...
... Start scrub by click or double click on the scrub head; release button or
not; then move.

If you release before moving, you get scrubbing as before, controlled by
motion.  Click or drag to switch in and out of seeking.  Stop with ESC,
spacebar, etc.  No change of selection.

But now if you drag, then scrubbing contines until you release the mouse or
otherwise stop with a key.

If by release of the mouse, then the selection changes as if by a click at
the last play position.  If you hold shift, then, as if by shift-click.

If drag begins with a double-click, then the play head remains centered and
the track moves.
2016-05-10 09:37:10 -04:00
Paul Licameli
eb6e093912 Pass arrays by reference into AudioIO::StartStream 2016-04-09 15:14:07 -04:00
Paul Licameli
b28ec2957a Make EXPERIMENTAL_MIDI_OUT compilable, but it doesn't link 2016-04-09 15:10:05 -04:00
Steve Daulton
484f23dcc7 Fix for bug 814 2016-03-28 21:07:25 +01:00
Paul Licameli
7824e94030 Harmlessly qualify classes as final (or explicitly comment not)...
... Should have no effect on generated code, except perhaps some slight faster
virtual function calls.  Mostly useful as documentation of design intent.

Tried to mark every one of our classes that inherits from another, or is a
base for others, or has abstract virtual functions, and a few others besides.
2016-02-24 20:58:30 -05:00
Paul Licameli
9bf098c7d9 Sweep unnecessary wxString copies: rest 2016-02-23 02:15:56 -05:00
Paul Licameli
7c4c45a0d5 "new"->"NEW" in comments, easier to find remaining naked operator new 2016-02-14 18:52:41 -05:00
Paul Licameli
321d5259a2 More uses of SampleBuffer, eliminating explicit DeleteSamples calls 2016-02-01 10:16:00 -05:00
Paul Licameli
1278b9644a Uniform naming of symbols in Experimental.h 2015-08-31 17:55:56 -04:00
Paul Licameli
d39eaa4e65 Remove WaveTrack.h from other headers 2015-07-28 10:02:05 -04:00
Paul Licameli
4ded4ec9ba Bug969: Just disable pause during scrub. It does not make sense. 2015-05-26 13:00:07 -04:00
Paul Licameli
3c88f8ce4d Bugs 925, 926, 928 fixed again, better, for double click and shift too 2015-05-24 17:31:00 -04:00
Steve Daulton
79b7caac07 Fix play from click position when Quick Play Loop in selection. 2015-04-20 04:06:07 +01:00
Paul-Licameli
d988c3329f Support for scrubbing in playback engine, but unused 2015-04-17 02:35:06 -04:00
Paul-Licameli
5abfd25a34 Support backwards play, a requirement for scrubbing
Uncomment the line at the top of ControlToolBar::PlayPlayRegion to play
everything backwards and test it

It even works correctly with a time track
2015-04-17 02:25:52 -04:00
Paul-Licameli
2b85d0edb4 Preliminary function argument list changes and comments, for scrubbing project
In particular, use an options structure for AudioIO::StartStream to simplify
calls

ControlToolBar::PlayPlayRegion also takes that structure as an argument, and a
SelectedRegion instead of two times

And other changes
2015-04-17 02:25:39 -04:00
lllucius
4382a5c835 Replaces enable/disable images and a few other changes
Makes the tooltips display the action that is going to
be performed rather than a generic description.

Disables transport buttons when the effect dialog is
initially displayed if another project has using the 
audio device.
2014-12-20 00:13:33 +00:00
lllucius
9bbc261321 Attempt #2 at taming the meter toolbars
It corrects several "multiple project" problems with the
meter toolbars and meters.

In addition, there was a "multiple project" issue where
the transport buttons didn't disable properly in the
non-active project.
2014-12-19 16:38:56 +00:00
lllucius
fe42e881a5 First stab at taming the meter toolbars
This should correct at least a couple of the reported
issues.  And it also has some fixes in for multiple
project support.
2014-12-17 19:16:08 +00:00
lllucius
4d76e14794 Changes to the Effect dialog based on QA suggestions
Solves the problem of what the "Settings" button should say
by converting it to a bitmap button.

Adds the missing "bypass effect" button.

The Ok/Cancel buttons are now Apply/Close buttons and the
dialog stays open after the apply is done.

Record is no longer disabled when an RTP effect is open as
the RTP effect now monitors when recording starts and disables
its buttons as needed.

Added "Play", "Skip forward", and "Skip backward" buttons.
While the other stuff is required, this last one is in to
get a feel for its usefulness.  We'll need to get feedback
on it pretty quickly so we can rip it out if need be.
2014-12-02 08:55:02 +00:00
james.k.crook@gmail.com
c71397beae Changes to seeking and scrubbing from Paul Licameli.
These are mostly under an EXPERIMENTAL_ #ifdef.  Also has a change for the prompt string for preferences so the displayed keybinding is adjusted when in multitool mode.
2014-11-29 22:09:57 +00:00
james.k.crook@gmail.com
ed1338cdec Fix for Bug 781.
Fixes race condition on Audio thread state by using a mutex, so can play and use . (scrubbing forward) and SPACE (play/stop) safely.  Previously crashed.  Patch by Paul Licameli.
2014-11-06 17:48:26 +00:00
lllucius
cae6669275 Round 3 of realtime changes.
This gets meter type VST effects working again by extending the

The master now maintains his own internal buffers and sums (mixes) all
playing tracks into those buffers.  The buffers are then fed into the
VST effect that is presented to the user.  This allows the effect to
provide feedback to the user if it support it.  Such effects may display
meters or clipping indicators.

Several issues with treading have also been corrected (hopefully ;-)).
These showed up mostly on Linux, but could have happened on the others
as well.

The realtime support is no longer limited to 2 channels per logical
track.  Once support for more channels is added, this should be ready
for it.

The rack dialog can now be toggled via the edit toolbar button.  It
doesn't stay pressed because the closing of the dialog would have to
be communicated back to the toolbar.

As the rack is updated with new or removed effects or active state
changed, all effects in the active list were shutdown and all effects
in the updated list were initialized.  This now shuts down only the
effects no longer in the list and initializes only new ones.

The rack now uses wxBitmapButton instead of Audacity's AButton.  The
AButton has a timing issue that prevents it from being deleted while
processing the click event.  I looked into it, but gave up and switched
to the wxBitmapButton.  Unfortunately, there's a problem with the
wxBitmapButton as well...at least on my setup here.  Either the bitmaps
are being scaled or antialiased.  Will have to get feedback on this.

I finally figured out why some VSTs didn't seem to do anything in
realtime, at least in my case anyway.  I've installed a lot of demo
VSTs and while they work in "batch/offline" mode, some of them will
not work in realtime since vendors tend to remove automation as one
of the demo limitations.

More changes coming shortly...
2014-11-03 06:48:54 +00:00
lllucius
1eeb4d979a The fabled realtime effects...
I've made it where you can enable and disable via experimentals:

EXPERIMENTAL_REALTIME_EFFECTS
EXPERIMENTAL_EFFECTS_RACK

You will notice that, as of now, the only effects currently set up for
realtime are VSTs.  Now that this is in, I will start converting the
rest.

As I start to convert the effects, the astute of you may notice that
they no longer directly access tracks or any "internal" Audacity
objects.  This isolates the effects from changes in Audacity and makes
it much easier to add new ones.

Anyway, all 3 platforms can now display VST effects in graphical mode.
Yes, that means Linux too.  There are quite a few VSTs for Linux if
you search for them.

The so-called "rack" definitely needs some discussion, work, and attention
from someone much better at graphics than me.  I'm not really sure it should
stay in as-is.  I'd originally planned for it to be simply a utility window
where you can store your (preconfigured) favorite effects.  It should probably
revert back to that idea.

You may notice that this DOES include the API work I did.  The realtime effects
were too tied to it and I didn't want to redo the whole thing.  As I mentioned
elsewhere, the API stuff may or may not be very future proof.

So, let the critter complaints commence.  I absolute KNOW there will be some.
(I know I'll be hearing from the Linux peeps pretty darn quickly.  ;-))
2014-10-26 03:24:10 +00:00
benjamin.drung@gmail.com
277932dccb Remove trailing spaces. 2014-06-03 20:30:19 +00:00
lllucius
efabeb4a79 Shows if a volume is being emulated or not via the tooltip and status bar. 2013-09-24 06:58:49 +00:00
v.audacity
030d2450a8 Go back to simpler architecture for Resample class, now that libsoxr is proven for variable rate resampling. 2013-08-04 01:58:54 +00:00
RichardAsh1981@gmail.com
f09d3a8aaf patch to remove some unused member variables by Leland Lucius 2012-12-29 15:31:46 +00:00
richardash1981
55be06c9e4 commit a large patch by Maarten Baert maarten-baert<at>hotmail<dot>com to fix and improve time track support. Several fix-me issues remain but none are new with this patch. 2012-12-19 21:49:25 +00:00
v.audacity
5460b5c668 This commit is partial effort toward more libsoxr integration, that implements Rob Sykes's latest patch. I have no idea whether the Linux-specific stuff from the patch (e.g., M4 file) is still correct in this.
For Resample.* and QualityPrefs.cpp, this commit has my restructuring for distinguishing constant-rate vs variable-rate resamplers more generally. I think it's complete and ready for const-rate, but I have more review and testing to do for the var-rate cases. 

Variable-rate resampling is not implemented here, so Time Tracks are still broken, but this is a milestone in getting to a more general and correct structure. 

Also I think this fixes AboutDialog issues Steve noticed.
2012-11-03 02:06:07 +00:00
v.audacity
1ceb0ef660 Apply modified version Roger Dannenberg's patch to remedy some problems from commit r10680 and fix some bugs. 2011-10-19 23:06:53 +00:00
mchinen
91d8f132a6 Bug 330 (P2) - Fix an issue where multiple projects would cause the warning dialogs to pop up above the wrong project.
I refactored the code into AudacityApp with a new timer.  This is provisional pending discussion - if it is decided that it should go somewhere else I will move it.
2011-03-29 23:39:00 +00:00
mchinen
dc12d8a8f4 bug 26 followup - warn of missing alias on variety of instances (export/import/effect/mix,) in addition to first time the read fails.\nIn addition make sure there is only one warning on the screen at a time, bringing the old one to the foreground (although for things like export/effect there will be a progress bar in front of it, the missing files dialog will be above the project window when it finishes) 2011-03-23 01:01:17 +00:00
mchinen
5e4250e302 bug 26 - add modeless warning dialog for missing aliased files during playback. 2011-03-01 01:29:03 +00:00
v.audacity
d2d876d9a5 Bug 258 (P2) - Mixer Board: max peak and clipping lines removed
Fixed bug in resetting mPrevT1. That caused remaining issue noted in Bug 258 comments 2 and 3.

Moved call to UpdateMeters from TrackPanel::OnTimer() to audacityAudioCallback, where it calls gAudioIO->mOutputMeter->UpdateDisplay(), so the updates are synchronized with Meter Toolbar updates.

Removed unnecessary call to MixerBoard::UpdateMeters() in AudacityProject::UpdateMixerBoard().

Various cleanup.
2011-01-31 01:49:01 +00:00