Package: corrscope
CorrscopeCorrscope renders oscilloscope views of WAV files recorded from chiptune (game music from retro sound chips).Corrscope uses "waveform correlation" to track complex waves (including SNES and Sega Genesis/FM synthesis) which jump around on other oscilloscope programs.Sample results can be found on my Youtube channel athttps://www.youtube.com/nyanpasu64/videos.Documentation is available athttps://corrscope.github.io/corrscope/.StatusCorrscope is currently in semi-active development. The program basically works and I will fix bugs as they are discovered. Features will be added (and feature requests may be accepted) on a case-by-case basis. For technical support or feedback, contact me at Discord (https://discord.gg/CCJZCjc), or alternatively in the issue tracker (using the "Support/feedback" template). Pull requests may be accepted if they're clean.DependenciesFFmpegInstallationInstalling Prebuilt Windows BinariesOn Windows, download Windows binary releases (.7z files) from theReleases page, then double-clickcorrscope.exeor runcorrscope (args)via CLI.Installing from PyPI via pipx (cross-platform, releases)pipx creates an isolated environment for each program, and adds their binaries into PATH. I find this most reliable in practice, though it runs into issues after upgrading system Python in-place.Install Python 3.8 or above.Install pipx using either your package manager,pip3 install --user pipx, orpip install --user pipx.Runpipx install "corrscope[qt5]"On Linux, to add support for native Qt themes, instead runpipx install --system-site-packages "corrscope[qt5]"On FreeBSD, installpy-qt5andpy39-ruamel.yamlviapkgor ports tree, and installffmpegvia ports tree withSDLoption enabled. After everything's installed, runpipx install --system-site-packages "corrscope[qt5]"On M1 Mac, instead runpipx install "corrscope[qt6]"Open a terminal and runcorr (args).Installing from PyPI via Pip (cross-platform, releases)pip installs packages into a per-user Python environment. This has the disadvantage that each program you install influences the packages seen by other programs. It might run into issues when upgrading system Python in-place; I haven't tested.Install Python 3.8 or above.If necessary, install pip using your package manager.Runpip3 install --user "corrscope[qt5]"On M1 Mac, instead runpip3 install --user "corrscope[qt6]"Open a terminal and runcorr (args).Dev builds (Windows)Windows dev builds are compiled automatically, and available athttps://ci.appveyor.com/project/nyanpasu64/corrscope/history.Installing dev builds on non-Windows platforms without cloning the repo (eg. Git URLs or .whl files) is not supported yet. Fixes are welcome.Running from Source Code (cross-platform, dev master)Install Python 3.8 or above, and Poetry. My preference is to runpipx install poetry. You can alternatively use the Poetry installer viacurl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python, but in the past, updating viapoetry self updatehas broken and left me with no Poetry at all, requiring reinstalling.cdpath/to/corrscope
poetryinstall-Eqt5# --develop is implied# On M1 Mac, instead run `poetry install -E qt6`.poetryruncorr(args)GUI TutorialOpen GUI:corrscope.exeto create new projectcorrscope.exe file.yamlto open existing projectAdd audio to play backOn the right side of the window, click "Browse" to pick a master audio file.Add oscilloscope channelsOn the right side of the window, click "Add" to add WAV files to be viewed.Edit settingsGlobal settings on the left side of the windowPer-channel on the right sidePlay or render to MP4/etc. video (requires ffmpeg)Via toolbar or menuCommand-line TutorialCreate YAML:corrscope split*.wav --audio master.wav -wSpecify all channels on the command line.-aor--audiospecifies master audio track.Creates filemaster.yaml.Editmaster.yamlto change settings.Play (requires ffmpeg):corrscope master.yaml -p/--playRender and encode video (requires ffmpeg)corrscope master.yaml -r/--render file.mp4(other file extensions supported)Mac-specific IssuesPreview audio cutting outWhen you preview a video in Corrscope, it sends video frames to ffplay, which opens a video player window and also plays synchronized audio. On Mac (at least my M1 MacBook Air running macOS 12.3), switching windows can cause ffplay to stutter and temporarily or semi-permanently stop playing audio (until you restart the preview). There is no fix for this issue at the moment.Rendering does not stutter on M1, since neither corrscope nor ffmpeg are affected by app switching, or App Nap.GatekeeperOn Mac, if you render a video file, in some cases (eg. IINA video player) you may not be able to open the resulting files. Gatekeeper will print an error saying '"filename.mp4" cannot be opened because it is from an unidentified developer.'. If you see this message, try opening the file again. Once you silence the error once, it should not reappear.ContributingIssues, feature requests, and pull requests are accepted.This project usesBlack code formatting. Either pull request authors can reformat code before creating a PR, or maintainers can reformat code before merging.You can install a Git pre-commit hook to apply Black formatting before each commit. Open a terminal/cmd in this repository and run:pipinstall--userpre-commit
pre-commitinstall