This helps linux distro packagers, as distro
packaging needs to include -all- dependencies.
Restricting appnope to only be required on darwin
means that downstream packagers no longer have to
patch out the dependency and calls to appnope.
This should have no effect on macOS, and should be
basically unnoticeable to anyone who isn't doing
distro packaging.
* Remember most recently selected filetype in Render dialog
Some users prefer to always render their files as .mkv or another
filetype. This commit changes corrscope's render dialog to remember the
most recently selected filetype, and default to it on next render.
* Don't move render filetype dropdown if user types a different extension
The render dialog has a selected filetype ("filter") dropdown to pick
what format to save to by default. This PR changes the code to remember
the selected filetype between renders.
Previously we changed the selected filetype if the user types an
extension belonging to a different type in the list, even if they didn't
pick an extension in the list. This can be confusing, so I removed the
code responsible (instead only remembering the most recently selected
list item).
Matplotlib stores a cache of installed fonts, and does not reload it
when the user installs a new font and tries to use it. We workaround
this by adding a menu item which clears the font cache
(causing Matplotlib to reload its font list). This is easier than
telling users to find and delete a folder on their system.
Also change Trigger tab accelerator so users can use Alt+T to access
Tools -> Reload Font List.
By default, when converting or playing mono audio tracks as stereo,
ffmpeg halves the power of the left/right audio channels. This is
undesirable since it makes mono tracks quieter than intended.
This commit makes corrscope detect mono master audio, and tell ffmpeg to
play audio at full volume in both channels. We cannot enable this for
stereo master audio, since it will discard the right input channel.
opus in mp4 is supported by modern versions of ffmpeg, as well as
YouTube upload. libopus is known to have good audio quality, while
FFmpeg's built-in AAC encoder is slow and low-quality (especially on
older ffmpeg versions)
Poetry sets the pinned NumPy version based on the minimum allowed Python
version. Previously we set the minimum Python version to 3.8 (the last
version with Windows 7 binaries), so Poetry pinned NumPy to the last
version to support 3.8, which lacks wheels for modern Python. As a
result you could not install corrscope on modern Python through Poetry.
This commit sets the minimum Python version to 3.10. This breaks Windows
7 support (unless you use a custom newer Python build or override the
minimum Python version), but fixes corrscope Poetry installation on
newer Python versions. (corrscope wheel installation does not pin the
numpy version, so is exempt.) This also enables testing corrscope on
NumPy 2.0, which has incompatible changes.
When buffer_strength = 0 and no rising edges were in range (based on the
estimated period), corrscope would erroneously return the leftmost
point in its view (based on the estimated period). This would often
result in triggering in the *middle* of a positive segment.
Instead return the center point. In NES oscilloscopes, this returns a
value past the falling edge and in a near-silent region (which is more
visually appealing).
* Update installation guides for FreeBSD
* Clarify pip installation guide
* Finalize the PR
* oops forgot to add a comma
* Atomicwrites now compiles just fine via pip on FreeBSD.
This is necessary because fixing the correlation bug makes history
comparisons weaker relative to the slope finder. This would result in
waveforms with multiple edges per cycle jumping between rising edges
mid-note even at reasonable settings (edge strength = buffer strength).
This would hurt triggering accuracy of long evolving notes by comparing
the latest wave to stale buffers.
Bug was discovered by Tachometer in the Discord server.