v2.0: synthesize morse from callsign, scheduling, CI, and open-source scaffolding#1
Merged
Conversation
- Fix filename case mismatch (morse.WAV -> morse.wav) that broke on case-sensitive filesystems like Linux - Load each clip once and replay it instead of opening a new Clip per playback, which leaked native audio lines - Wait for actual playback completion via LineListener instead of approximating with Thread.sleep(length/860) - Report audio errors instead of silently swallowing them - Make cycle count and morse repeats configurable from the command line (0 cycles = run until stopped) - Add README, .gitignore; stop tracking build output and workspace.xml Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Compile without --release 8; use var, lambdas, and text blocks. Update IntelliJ language level and README requirements to Java 26. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Generate the morse ID in memory from --callsign (PARIS timing, configurable --wpm and --tone, ramped envelope to avoid key clicks); --morse-file still plays a recorded WAV instead - Replace the 5 MB shh.wav with a timed silent --gap, plus --random-gap to vary the quiet period and make the fox harder to find - Add --start/--stop times for timed hunts and timestamped logging of every transmission - Move code to the fox package, split out Morse.java, update manifest - Add GitHub Actions workflow: builds and smoke-tests fox.jar on every push, attaches it to releases on v* tags - Remove morse.wav and shh.wav; no recordings are needed anymore Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- CONTRIBUTING.md with build, test, and PR guidance - CODE_OF_CONDUCT.md (Contributor Covenant 2.1) - SECURITY.md with private vulnerability reporting - Issue templates (bug/feature) and a pull request template - CHANGELOG.md (Keep a Changelog format) - .editorconfig for consistent formatting - README: CI/license/Java badges, contributing section, and an operating note on transmitter licensing and station identification Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Modernizes the Fox Hunt Controller and prepares it for open-sourcing.
Bug fixes
morse.WAV→morse.wav) that broke playback on case-sensitive filesystems (Linux, Raspberry Pi).Clipon every playback.Thread.sleepapproximation.Features
--callsign(PARIS timing, configurable--wpm/--tone, ramped envelope to avoid key clicks). No recordings required.--morse-filestill plays a recorded WAV as the ID.--gap/--random-gapfor fixed or randomized quiet periods.--start/--stopfor timed hunts;--cyclesto limit runtime.Tooling & project
foxpackage, split intoFox+Morse.fox.jartov*releases..editorconfig, README badges, and a transmitter-licensing operating note.morse.wav/shh.wavand stale build output from version control.How was it tested?
javac -d out/classes src/fox/*.java+jarbuild clean on Java 26.Note
--cycles 4000restores the old behavior).🤖 Generated with Claude Code