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

5584 Commits

Author SHA1 Message Date
Paul Licameli
75bdde3003 To synch better, just don't use a separate thread for MIDI! ...
... I am not sure that this will solve all problems of jittery play, but I do
think this will solve the problem of a rush of slightly late notes at start of
play.
2017-08-27 10:53:05 -04:00
Paul Licameli
582e574ab8 A not-harmful change to MIDI timing for Windows and Mac...
... and hoping it is positively helpful for Linux.

In AudioIO::MidiTime(), compute one of the terms by different means.

Use PaStreamInfo::outputLatency.

Do not use the difference of PaStreamCallbackTimeInfo::outputBufferDacTime
and PaStreamCallbackTimeInfo::currentTime.

Which debugging shows is very nearly the same value for Windows and Mac.

But we suspect the PaStreamCallbackTimeInfo fields are not correctly reported
on Linux.
2017-08-27 03:26:44 -04:00
Paul Licameli
faa7d1828a Commands adjusting pan and gain are enabled during transport...
... though they do have a messy interaction with Undo if recording that should
be fixe.

You may get an undo history item that not only restores the gain and pan, but
removes a part of the recording.
2017-08-26 11:37:43 -04:00
James Crook
ce9938787c Use alpha or released or local manual for "help on selection".
Previously this was hard coded to use the online alphamanual.
Some other help-on-errors paths were hardcoded to use the online manual, and did not use local help even if available, so these were changed too.

Also two naming changes in the code:
ShowHelpDialog() became ShowHelp() because it typically shows the help in your browser, only showing the help in a dialog under certain circumstances.
The helpURL parameter became helpPage since it is usually a page name that is then elaborated into a url.
The Link() function became InnerLink().

Some careful http -> https changes made too.
2017-08-25 13:59:16 +01:00
Paul Licameli
4a0a7efd84 Fix MIDI timestamp calculations when you loop AND have time track...
... At least it fixes the gross problem; but there seems to be a small
accumulation of error still each time around the loop, that I don't understand
yet.
2017-08-24 19:48:45 -04:00
Paul Licameli
85b2f80545 Correct mMidiOutputComplete, though it doesn't matter...
... Used to be, it became true too soon when play started after time 0, so
AudioIO::IsStreamActive() might become false too soon -- except that now there
is always a portaudio stream when there is a midi stream, so that didn't happen.

Mistake was to add mT0 to MidiTime(), which already has mT0 for its origin.

This error would affect nothing if you just let play to the end without trying
a keystroke command.  The error might have been enabling the wrong commands.
2017-08-24 19:47:08 -04:00
Paul Licameli
a44dbf3a96 Correct the flags for enabling some menu items that were moved...
... See email thread at
https://sourceforge.net/p/audacity/mailman/message/36008688/
for the rationales

The system for specifying conditions for menu items really needs a thorough
rewrite in a future version.
2017-08-23 15:53:57 -04:00
James Crook
1b4999d0d3 Bug 1290 - "Split New" clips cannot be dragged back into the track they came from.
Earlier fix was broken and allowed clips to overlap.  Updated code:
- Checks that the modified slide amount is legal, against ALL clips, not just against later clips in the array.
- Computes tolerance correctly.
- Typically uses tolerance just once.
- Moves selection with clip
- Only restarts sliding with a 'clean slate' IF there was room on the original track.

Previously the code could reject a move to a new track, and then mistakenly allow just the horizontal part of the move on the original track(s), even with a clip blocking the way.
2017-08-23 18:15:00 +01:00
Paul Licameli
33d9a130c8 Correct wiki to HTML translation of https: links...
... so that if such are in the Credits dialog, they work correctly and don't
cause wxWidgets assertions
2017-08-23 12:49:12 -04:00
Paul Licameli
ea14a117df Expose the benchmark tool in end-user builds 2017-08-23 11:46:11 -04:00
Paul Licameli
88c55c9687 remove a comment 2017-08-22 08:40:28 -04:00
Paul Licameli
6adc9f9062 Fix silly out of bounds mistake in Sequence consistency check 2017-08-22 08:40:01 -04:00
Steve Daulton
8342b1e026 Fix bug 597
24-bit int imports as float and converted by Append.
2017-08-21 16:09:41 +01:00
James Crook
e984211cce Bug 1290 - "Split New" clips cannot be dragged back into the track they came from.
Fixed by giving some tolerance in how the dragged clip(s) are placed.
The tolerance is 1px, so it depends on the zoom.  Therefore if zoomed in your positioning is more precise.
2017-08-19 22:46:33 +01:00
James Crook
4d43d2273b Bug 1516 - Clips: Can't drag vertically if starting position of clip overlaps clip in target track 2017-08-19 17:53:50 +01:00
James Crook
f3dcccb144 Bug 1165 - Enh: Keyboard preference key bindings can be way over to right
Fixed by putting key bindings on the left in all three views.
I also elevated EXPERIMENTAL_KEY_VIEW to no longer experimental, by excising the old code which we don't need any more.
2017-08-19 16:48:45 +01:00
Paul Licameli
47eaf526a6 Bug1714, more: better calculation of MidiTime...
... after I reflected more on the explanation of it in the long comment at top.

Brings back the use of PaUtil_GetTime() but now calls it also in the audio IO
callback, so we can correct the unspecified origin of times supplied to the
audio IO callback to agree with the PaUtilGetTime() clock.

Thus the Midi time calculation is again based on the clock time of the other
thread that calls MidiTime, making it a few milliseconds more accurate, while
avoiding subtraction of two times based on widely different origins, which
made the big numbers that overlowed and caused Bug1714 to happen.
2017-08-17 23:25:01 -04:00
Paul Licameli
76a9962a5e Bug1719: crash left-stretching one Midi track synced to another...
... Fixed by making the cutting of a Note track always have 0 offset; as is
also the case for cuttings of other types of tracks.
2017-08-17 19:08:13 -04:00
James Crook
ab9bb2ae29 Bug 1532 - Toolbars fail to arrange correctly when maximizing or restoring main window size
Layout() needs to be done before and after toolbar packing.  See reasons in comments in revised code.
2017-08-17 20:44:49 +01:00
James Crook
69b77a8034 EXPERIMENTAL_MIDI_STRETCHING off for 2.2.0 2017-08-17 17:24:14 +01:00
James Crook
fc25ce093f Bug 1293 - Unable to mouse wheel zoom in beyond end of project 2017-08-17 13:55:12 +01:00
James Crook
50258c1f21 Bug 1564 - Enh: Don't include empty tooldocks in CTRL + (SHIFT +) F6 cycling 2017-08-17 12:42:36 +01:00
James Crook
b476919103 Bug 1664 - Restore wxPanelWrapper
I'd changed wxPanelWrapper to wxPanel in investigating bug 1664, and that change mistakenly went through in my 1664 fix.
In the Lyrics window I don't think the wxPanelWrpper's capturing of Tabs is currently necessary, but keeping it means we can add controls to Lyrics Window, and tab between them correctly on Mac, which wxPanelWrapper was introduced to solve.
2017-08-17 09:06:30 +01:00
James Crook
dd02a02c25 Mask for XPM RegisterImage()
Per conversation on http://forum.audacityteam.org/viewtopic.php?f=50&t=96765
I'm not convinced, but the function is unused, so it is a net plus to add this code with a comment.
2017-08-16 20:49:32 +01:00
James Crook
47372cfe7d Add comments about URL-Help (Bug 299)
Bug 299 is an review and enhance request for all error messages to show the iconic help link.
These comments may help a little with identifying where they are and aren't needed.
2017-08-16 17:58:27 +01:00
James Crook
296ba29a78 Bug 96 - "Latency problem" warning when audio is pushed behind zero occurs for both tracks of a stereo pair 2017-08-16 15:50:48 +01:00
James Crook
12410fb552 Bug 143 - Rogue "Recent &Files" Status Bar entry generated by Effect Menus
Workaround for a bug that is actually in wxWidgets.
2017-08-16 15:27:47 +01:00
David Bailes
c4c1393987 Fix for 1720: static text items in selection bar in tab order
Problem was introduced in commit dc05b94.

Simple fix: auStaticText no longer accepts focus.
2017-08-16 13:39:16 +01:00
James Crook
e7d33e18a7 Bug 1664 - Two shortcut pairs do not work in focused Karaoke window 2017-08-15 23:09:31 +01:00
James Crook
db97feafd7 Bug 1654 - Enh: Analyze Contrast and Plot Spectrum don't have the new "Help" button
Missed a bit in previous commit.
2017-08-14 23:22:19 +01:00
James Crook
61e321fd43 Bug 1654 - Enh: Analyze Contrast and Plot Spectrum don't have the new "Help" button 2017-08-14 23:10:06 +01:00
James Crook
fab1a2778b Bug 753 - Sort Tracks by Name may misbehave with stereo tracks. 2017-08-14 19:58:02 +01:00
James Crook
e23acb39eb Bug 1679 - Screenshot Tools 5 second delay non-functional 2017-08-14 18:53:44 +01:00
James Crook
e98f08a2de Bug 463 - Incorrect Timeline numbering 2017-08-14 18:12:42 +01:00
James Crook
cd0ac7d7ef Bug 1715 - Theme change in the case of multiple open windows is only complete in the foreground window. 2017-08-14 15:36:16 +01:00
James Crook
dc05b94fd1 Bug 1701 - Mac: Text descriptors in Selection Toolbar become invisible after Open command
Problem was that on mac enable/disable clears the colour back to black.
The easiest workaround was to create a new class auStaticText that does all that we
need for wxStaticText.
2017-08-13 23:04:13 +01:00
Paul Licameli
f2ee945da0 Bug1714, partial fix for silent, freezing Midi play on ALSA...
Don't assume Pa_GetStreamTimePaStreamCallbackTimeInfo origin is time-of-day.

portaudio.h says you should not, and in fact it was not.

The report is that this gets us some play, but there are still freezes.
2017-08-13 15:12:48 -04:00
James Crook
d0b49f1ec9 Bug 1671 (part 2) - Clock icons do not propagate into Sync-locked MIDI / Spectrogram view tracks
This is the second half of the bug and it does MIDI.
2017-08-12 15:08:29 +01:00
James Crook
3d5a4e8a45 Bug 1671 - Spectrogram Overlay made experimental.
In case we decide too much detail is lost in low intensity spectrogram - we can turn this off easily.
2017-08-11 23:20:04 +01:00
James Crook
78f273f30c Bug 1671 (part 1) - Clock icons do not propagate into Sync-locked MIDI Spectrogram view tracks
This is only half of the bug.  MIDI tracks still to do.
2017-08-11 22:55:00 +01:00
James Crook
c15bbc59db Bug 634 - Timeline does not zoom correctly when playback is paused
Playing + Paused now treated EXACTLY the same as stopped with respect to zooming.
2017-08-11 21:51:50 +01:00
Paul Licameli
01201a5ebd Bug1692: shouldn't crash when FFmpeg libraries absent 2017-08-10 08:25:08 -04:00
Paul Licameli
c7d949c021 Menu consistency: Previous before Next for tools & clip Move 2017-08-09 11:05:30 -04:00
James Crook
adb42fe8a3 FIX: Slider thumb clipped when at far right.
It was being drawn 2px to the right.
2017-08-09 11:51:14 +01:00
Steve Daulton
da3f28118b Fix: Nyquist PEAK property when NIL & Stereo
Fixes failure of Nyquist Generate effects when stereo track
selected and no time selection.
2017-08-08 11:55:47 +01:00
Paul Licameli
95560ad510 Bug1676, more: don't bother caching the first visible track...
... because the sequence of update of the cache and the use of it were wrong
on Linux, resulting in wrong display when dragging tracks.  Finding the
first visible track is too cheap to justify this memoizing of it.

Commit 8eb64f5f71d19a4c634cb8312fd1fa93ac75f17f was not sufficient to fix
the bug, but I think remains necessary.

It feels good to throw away this needless complication.
2017-08-07 18:51:06 -04:00
Paul Licameli
eb7260320a Reviewed uses of release(); rewrote questionable ones in one file...
... Use of Destroy_ptr that was correct for 2.1.3 was no longer so after
rewrites of Screenshot tool window management, which caused crashes that were
worked-around with release(); but just use a bare pointer now.
2017-08-07 17:01:17 -04:00
Paul Licameli
8eb64f5f71 Bug1676: correct repaint of rearranged tracks on Linux...
... This little one-line fix is the right thing to do.  I do not understand
deeply enough how Linux repainting events are sequenced differently from
Windows or Mac, but I understand the code history enough to know where the
bug was introduced.

Problem was that full Refresh of TrackPanel used to be done earlier, in our
handlers of custom events emitted by TrackList; but now that handling is
delayed, for good reasons, so it is correct that the UIHandle object
should request the early full refresh explicitly, not relying on TrackList
event handling.

See explanations here http://bugzilla.audacityteam.org/show_bug.cgi?id=1676#c6
2017-08-07 13:57:19 -04:00
James Crook
eee58d9449 Bug 1292 - Enh: Zoom Normal (Ctrl+2) may move selection off screen
Selection is now centred after any zoom, if it will fit on screen.
2017-08-05 17:46:52 +01:00
James Crook
7a5bbbcce8 Bug 388 - Mac: Recording Preferences has an unsupported "Hardware Playthrough" option 2017-08-05 15:46:23 +01:00