{"id":27886011,"url":"https://github.com/sc0tfree/morsewalker","last_synced_at":"2025-10-26T04:12:03.429Z","repository":{"id":272060540,"uuid":"912516043","full_name":"sc0tfree/morsewalker","owner":"sc0tfree","description":"Morse Walker is a CW pileup trainer inspired by VE3NEA's Morse Runner with modes such as POTA, SST, and CWT, plus beginner-friendly features, including adjustable speeds and Farnsworth spacing.","archived":false,"fork":false,"pushed_at":"2025-02-15T21:50:51.000Z","size":749,"stargazers_count":14,"open_issues_count":16,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-15T22:26:24.496Z","etag":null,"topics":["amateur-radio","amateurradio","cw","morse-code","morse-learning","morse-simulator","morsecode"],"latest_commit_sha":null,"homepage":"https://morsewalker.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sc0tfree.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-05T19:37:04.000Z","updated_at":"2025-02-15T21:44:40.000Z","dependencies_parsed_at":"2025-02-15T22:33:22.509Z","dependency_job_id":null,"html_url":"https://github.com/sc0tfree/morsewalker","commit_stats":null,"previous_names":["sc0tfree/morsewalker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sc0tfree%2Fmorsewalker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sc0tfree%2Fmorsewalker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sc0tfree%2Fmorsewalker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sc0tfree%2Fmorsewalker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sc0tfree","download_url":"https://codeload.github.com/sc0tfree/morsewalker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252463299,"owners_count":21751758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amateur-radio","amateurradio","cw","morse-code","morse-learning","morse-simulator","morsecode"],"created_at":"2025-05-05T07:51:15.018Z","updated_at":"2025-10-26T04:11:58.401Z","avatar_url":"https://github.com/sc0tfree.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003e\nMorse Walker\n\u003cimg\n    src=\"./src/img/morsewalker-logo.png\"\n    alt=\"Morse Walker logo\"\n    style=\"vertical-align: top;\"\n    height=\"40\" /\u003e\n\u003c/h1\u003e\n\nMorse Walker is a web-based CW pileup training application inspired by VE3NEA's Morse Runner.\nThis tool allows amateur radio operators to practice different contesting and activation scenarios,\nimprove their pileup handling skills, and enhance their overall proficiency in CW.\n\n**Visit [MorseWalker.com](https://morsewalker.com) to start practicing your CW pileup skills!**\n\n### Supported Modes\n\n- Single Caller - only one station responding at a time.\n- Basic Contest - exchange callsign and serial number.\n- POTA Activator - exchange callsign and state in a POTA-style format.\n- CW Ops Test (CWT) - exchange callsign, name and CW Ops number in the CWT QSO format.\n- K1USN SST - exchange callsign, name, and state in the SST QSO format.\n\n### How to \"Cheat\"\n\nTo help you get started, or to diagnose software issues, Morse Walker includes a \"cheat\" mode that displays the callsign\nand other information of the responding stations. To see\nthis, [open your browser's JavaScript console](https://help.lucid.co/hc/en-us/articles/360049395772-Troubleshooting-Open-the-JavaScript-Console).\n\n## How it Works\n\nMorse Walker leverages the Web Audio API to generate realistic CW tones. It generates randomized station objects, each\ncontaining its own cw player (with unique wpm, tone, and volume) that is driven by an `OscillatorNode` within a shared\n`AudioContext`. A `GainNode` is added to simulate optional QSB, which is controlled via depth, frequency, and randomized\nphase offsets for natural variation. The volumes of grouped oscillators (i.e., responding stations in a pileup) are\nnormalized to prevent audio popping. The shared `AudioContext` allows fore more efficient resource management, enabling\nmultiple stations to play simultaneously without any significant performance degradation.\n\nView the JSDocs at https://morsewalker.com/docs.\n\n## Local Development\n\n### Prerequisites\n\n- Node.js and npm\n- A modern web browser\n\n### Installation\n\n1. Clone the repository: `git clone https://github.com/sc0tfree/morsewalker.git \u0026\u0026 cd morsewalker`\n1. Install dependencies: `npm install`\n1. Start the development server: `npm start`\n\nThis will open the application in your default browser.\n\n#### Building for Production\n\nTo build the project for production, run: `npm run build`\n\nThe build files will be located in the `dist` directory.\n\n# Feedback and Contributions\n\nMorse Walker is currently in beta, and your feedback is invaluable!\n\nIf you encounter any bugs or have feature requests,\n[submit a GitHub issue](https://github.com/sc0tfree/morsewalker/issues/new/choose),\nor email me at [henry@w6nyc.com](mailto:henry@w6nyc.com).\n\nOr, if you're feeling adventurous, fork the repository and submit a pull request!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsc0tfree%2Fmorsewalker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsc0tfree%2Fmorsewalker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsc0tfree%2Fmorsewalker/lists"}