1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-18 09:00:07 +02:00

89 Commits

Author SHA1 Message Date
Paul Licameli
b5e410d987 Fix Windows build differently 2016-08-24 12:13:53 -04:00
James Crook
781de82d02 Workaround build breakers. Needs review.
These changes fix a broken build in Windows.
#include <algorithm> needed for min/max to be in std.
decltype(+name) was declaring a const variable, that could not be incremented.  Changed to auto.
2016-08-23 21:46:12 +01: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
5cf331ae8c Rewrite WaveTrack::GetEnvelopeValues, taking one less argument...
... In practice this argument was always 1 / rate so it was superfluous.

Also make the buffer size argument unsigned.
2016-08-21 09:45:53 -04:00
Paul-Licameli
6eaff838f2 Less scrub lag: avoid redundant disk traffic in Mixer...
Also improves performance in bug 860, but not as much as the special case
patch for that bug in Bugzilla
2016-05-15 16:18:00 -04:00
Paul Licameli
13595620cf Fix mac build 2016-03-30 23:24:39 -04:00
Paul Licameli
c4fc7e2bf0 MixAndRender returns unique_ptr results (in a std::pair) 2016-03-26 11:50:14 -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
Paul Licameli
43790cfa56 std::vector for wave track pointers; remove deprecated TrackList function; ...
... and some more uses of const
2016-03-01 20:54:48 -05:00
Paul Licameli
dbaa811577 Stack-allocate where possible! ...
... Removed many unnecessary naked news and deletes.
2016-02-17 18:15:57 -05:00
Steve Daulton
dad346ec23 Fix build for Debian Stable 2016-02-15 15:54:11 +00: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
56e7653343 "delete"->"DELETE" in comments, easier to find remaining naked operator delete 2016-02-14 18:50:45 -05:00
Paul Licameli
321d5259a2 More uses of SampleBuffer, eliminating explicit DeleteSamples calls 2016-02-01 10:16:00 -05:00
Paul Licameli
aa63c19977 Bug1199: Export multiple by labels should not add silence to exported files...
... sorry, modifications to Mix.cpp had mistakes.
2016-01-27 22:51:38 -05:00
Paul Licameli
ca6fbfad4d Bug1272: correct progress indicator during mix-down export...
... Affected Mix and Render too.
2016-01-26 18:59:33 -05:00
Paul Licameli
cab89f6fb4 Remove Envelope.h from other headers 2015-07-28 10:02:09 -04:00
Paul Licameli
991ba8cc6e Remove TimeTrack.h from other headers 2015-07-28 10:02:02 -04:00
Leland Lucius
c009157290 Use fabs() instead of abs() 2015-05-04 17:50:44 -05: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
benjamin.drung@gmail.com
277932dccb Remove trailing spaces. 2014-06-03 20:30:19 +00:00
lllucius
abae5de768 Okay, try #3(!)
The problem from the beginning has been that some parts of the code expected to
receive interleaved buffers from Dither and some expected non-interleaved buffers.
I was trying to keep the changes to a minimum, but it just wasn't possible.

The result is that Dither can now accept any combination of non-interleaved and
interleaved source and destination buffers.

I still want to review every single usage of Dither (and all of the intermediaries)
because I've seen allowances here and there for the lack of Dither returning
interleaved buffers.  Since it can now return interleaved buffers, some of that
extra processing can be removed.
2013-09-19 07:30:58 +00:00
v.audacity
3fc912710b Leland's minimal_v2.patch for bug 650 2013-09-16 02:32:43 +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
v.audacity
9d0daf8662 Campbell Barton's patch to turn many, many tabs to our 3-space convenbtion 2013-02-20 23:42:58 +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
martynshaw99
4b9a934ab4 Set the 't' value to where we actually are in the stream, so that we calculate the right warpfactors, avoiding glitches. 2012-11-15 00:38:43 +00:00
v.audacity
ce9bd9fa90 I think this completes the refactoring for const-rate vs var-rate resampling. 2012-11-04 04:44:10 +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
martynshaw99
2494a7aca9 Prevent a crash when mix-and-rendering an empty wave 2011-08-29 23:01:28 +00:00
martynshaw99
99260bc21c Remember that we got a start time 2011-08-29 22:30:22 +00:00
richardash1981
e7397b9f23 Fix crash when mix-and-rendering a single, panned, mono track because we have m,ono input and stereo output. Name should be an attribute of a track object whih is singular, regardless of number of channels! 2011-08-29 10:16:11 +00:00
richardash1981
a33ef8ef9b r11246 didn't work, because the track list passed is the list of all tracks in project, not just the ones we are working on. This change resolves this by using a handy iterator which only gives out the tracks we need to work with. This could and should replace all other uses of iter in this function, but that's rather more invasive just now. 2011-08-28 20:14:47 +00:00
richardash1981
819d13dc76 Add a variety of comments to this otherwise uncommented code.
Update the implementation to make sense in a multi-clip environment.
Previously, a mix-and-rendered track always contained silence from time zero
until the time at which the first audio happened, as well as silence between
sections of rendered audio. Any audio before time zero was silently lost.
These changes mean that the single rendered clip now starts at the first sound in any of the tracks being mix-and-rendered and stops at the end of the last sound. This avoids a lot of unneccessary silence, and ensures that mix-and-rendering a single clip in a track leaves the clip the same length in the new, rendered, track. This is very useful.
These changes should also fix at least one bug in the case where a user-defined selection is being mix-and-rendered, although it is not currently possible to do this from the UI.
2011-08-28 19:54:03 +00:00
richardash1981
6128684055 If only mix and rendering one track, make the new track have the same name.
This saves a lot of typing if it is necessary to render a lot tracks in-place whilst preserving their names.
It is currently impossible to test that the two channels of stereo tracks get the correct name, as making stereo tracks always results in tracks with the same name for both channels ... This code would be much simpler if stereo tracks were objects.
This function (Mix and Render) could be made simpler if it used the TrackList functions like GetNumExportChannels() and made better use of conditional iterators rather than working it out for itself.
2011-08-28 19:30:17 +00:00
v.audacity
54bd928ef6 regarding bug 9:
Was able to make the bug occur after lots of fast clicking around, by double-clicking Preview in Amplify dialog. 

The key seems to be the call to wxYield. That function is obsolete, but looking at the documentation for its successor, wxApp::Yield(): 

"Caution should be exercised, however, since yielding may allow the user to perform actions which are not compatible with the current task. Disabling menu items or whole menus during processing can avoid unwanted reentrance of code: see ::wxSafeYield for a better function."

That sounds like exactly the situations where this has occurred. And the documentation for ::wxSafeYieldsays: 

"This function is similar to wxYield, except that it disables the user input to all program windows before calling wxYield and re-enables it again afterwards."

Sounds like what we need. So I went through the code and for all the wxYield and wxGetApp()::Yield occurrences where Audacity is doing some drawing or already in the process of responding to a GUI event, I replaced them with ::wxSafeYield. Replaced all the remaining wxYield calls with calls to wxGetApp()::Yield().

Haven't been able to replicate the bug since these changes. Please test.
2010-07-23 23:29:50 +00:00
ra
e74978ba77 Locate and position the current Audacity source code, and clear a variety of old junk out of the way into junk-branches 2010-01-23 19:44:49 +00:00