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.
Raise minimum matplotlib version to 3.5 (still supported on Python 3.8
on Windows 7).
This fixes support with future Matplotlib 3.9, which removes
matplotlib.cm.get_cmap(). Newer versions of dependencies may be chosen
when installing corrscope using pip/pipx and wheels, rather than Poetry
or official binaries (which always use locked dependencies).
Newer processors and the recent parallel rendering merge should speed up
rendering enough to default to 1080p output. Additionally, most people
have 1080p and higher screens, so 1080p videos will look sharper when
watching.
We can leave the line width at 1.5 pixels, unless people prefer 2px or
so lines.
Initially I chose to default to horizontal stereo orientation because it
mapped more closely to speaker positions. Unfortunately this turned out
to be confusing for users. Switch to vertical stereo orientation, which
matches the usual channel layout in audio editing programs.