{"id":20530328,"url":"https://github.com/zoomten/chronos-zxbeeper","last_synced_at":"2025-10-05T03:13:53.001Z","repository":{"id":101809135,"uuid":"271591748","full_name":"ZoomTen/chronos-zxbeeper","owner":"ZoomTen","description":"WIP disassembly of music code from Chronos (ZX Spectrum)","archived":false,"fork":false,"pushed_at":"2022-01-11T13:09:02.000Z","size":37,"stargazers_count":13,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T19:11:06.531Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZoomTen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-06-11T16:12:44.000Z","updated_at":"2024-12-29T01:11:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"11e24b82-7b8b-4dbd-89bc-d5b9a2c9cf8c","html_url":"https://github.com/ZoomTen/chronos-zxbeeper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZoomTen%2Fchronos-zxbeeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZoomTen%2Fchronos-zxbeeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZoomTen%2Fchronos-zxbeeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZoomTen%2Fchronos-zxbeeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZoomTen","download_url":"https://codeload.github.com/ZoomTen/chronos-zxbeeper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248824999,"owners_count":21167413,"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":[],"created_at":"2024-11-15T23:36:26.584Z","updated_at":"2025-10-05T03:13:52.900Z","avatar_url":"https://github.com/ZoomTen.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chronos ZX Beeper Music Disassembly\r\n\r\nTim Follin's beeper sound engine for the ZX Spectrum, ripped from Chronos (1987)\r\n\r\nWork in progress.\r\n\r\nFor educational purposes.\r\n\r\n## Build dependencies\r\n\r\n* Python 3\r\n\r\n* [Pasmo Assembler](http://pasmo.speccy.org/)\r\n\r\n* [AYMakeR](https://www.worldofspectrum.org/projectay/tech.htm)\r\n\r\n* GNU Make\r\n\r\n## Building\r\n\r\nRun `make`.\r\n\r\nTo enable and disable AY noise drums, change the `ENABLE_AY` variable in `chronos_zxbeeper.asm`.\r\n\r\nPasmo and AYMakeR should be extracted into its own folders, `Pasmo` and `AYMakeR`, respectively\r\n\r\nWine variable should be cleared out when on Windows.\r\n\r\nIf using Wine, [refer to this HOWTO first](https://wiki.winehq.org/Preloader_Page_Zero_Problem).\r\n\r\n## Details on the music data\r\n\r\nThe music data here is made up of four components:\r\n\r\n* **Note polyphony**, used to play chords. Two or three notes play at the same time depending on the mode. This component also controls the drum track, as well as the entire song. Tim Follin's code as published in [Your Sinclair(20):55](https://live.worldofspectrum.org/archive/magazines/your-sinclair/20#56) only contains this component (thus the one that's bundled with Shiru's [1tracker](https://shiru.untergrund.net/software.shtml) is limited to this as well). Has no concept of rest notes (in Agent X, envelope trickery is used instead; parameters: 1,0,1,1).\r\n\r\n* **Bass component**. Plays one note at a time, is pitched 1 octave lower than the other components. Its envelope cannot be set.\r\n\r\n* **Melody component**. Supports envelopes, portamento on/off, echo (only when 2-note polyphony mode is set, and will also detune the component)\r\n\r\n* **Drum component**, separated from the other components. There are only a few patterns that can be sequenced and are controlled from the note polyphony component. If the AY-3-8912 chip is present, the data can be passed on to the noise channel as well.\r\n\r\nAll in all, 6 virtual channels can be played with this engine: 2 for chords, 1 for extra chord note / melody echo, 1 for melody, 1 for bass, and 1 for the drums.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoomten%2Fchronos-zxbeeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzoomten%2Fchronos-zxbeeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoomten%2Fchronos-zxbeeper/lists"}