beep-melodies: turning the PC speaker into a songbook
A collection of beep melodies / beep songs.
At a glance
- What is it?
- A shell repository of Linux beep tunes, complete with a piano-to-frequency table. It is a bare collection, not a player or a format, and its value depends on the pcspkr module and the beep utility.
- Who is it for?
- Adopt beep-melodies if you want a quick, no-frills set of beep tunes for the PC speaker and you are comfortable with the pcspkr module and the beep command. Do not use it if you need a maintained library, a documented format, or a player that handles timing and volume beyond what beep offers.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Probably not. The repository last received commits 38 months ago, on August 8, 2023.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 7, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What this repository actually is
The README describes beep-melodies as a collection of beep melodies and songs for Linux. The repository is written in Shell, and the README's only concrete content is a preparation guide and a frequency table. There are no release notes, no license, and no list of included songs in the material I was given. That makes it a bare archive of shell scripts, presumably one per melody, each invoking the beep command with frequency and duration arguments. The target user is someone who wants to hear tunes from the internal PC speaker, likely for retro or low-resource environments, and who is comfortable reading and running shell scripts directly.
The mechanism: beep plus the PC speaker
The core dependency is the beep utility, which the README instructs you to install with apt-get install beep. That command sends square-wave tones to the PC speaker, which on modern systems is emulated by the pcspkr kernel module. The README tells you to load that module with modprobe pcspkr and, to make it persistent, to uncomment the line #blacklist pcspkr in /etc/modprobe.d/blacklist.conf. The data flow is simple: a shell script calls beep with a frequency in hertz and a duration, and the speaker emits the tone. The repository's contribution is the mapping from musical notes to frequencies, which is where the frequency table comes in.
The frequency table: a complete piano map
The README includes a table that maps piano key numbers 1 through 88 to note names and frequencies. It starts at A0 at 27.5 Hz and ends at C8 at 4186.01 Hz, covering the full piano range. The table uses commas as decimal separators, which matches some European locales but may be a surprise for users expecting periods. The table is the only substantive reference material in the repository. It is useful for transcribing sheet music into beep commands, but it does not tell you how to encode rhythm or rests. The beep command supports duration and delay options, but the README does not explain them, so users must consult beep's own documentation.
Getting it running: commands and constraints
The README gives three concrete steps. First, install beep: apt-get install beep. Second, load the kernel module: modprobe pcspkr. Third, to make the module load at boot, edit /etc/modprobe.d/blacklist.conf and comment out the blacklist pcspkr line. There is no mention of cloning the repository or running a specific script, which suggests the melodies are individual scripts that you execute directly, likely with sh or bash. A limitation is that many modern Linux distributions disable the PC speaker by default, either by blacklisting pcspkr or by not having the module installed. The README's instruction to uncomment the blacklist line implies that the module is present but blocked, so users on systems without the module need to install it separately, which the README does not cover.
Limitations and failure modes
The most obvious limitation is that the repository has no license, which makes it legally ambiguous to reuse or redistribute. The README also gives no examples of the actual beep commands, so you cannot tell from the material whether the melodies use the -f and -l options or some other syntax. Another failure mode is that beep requires root or console access to the speaker device; on many systems, running beep without appropriate permissions fails silently. The pcspkr module may also conflict with audio servers or be disabled in virtualized environments, where no physical speaker exists. In short, this is a hobbyist collection, not a polished application, and the lack of documentation beyond the frequency table means you will spend time reading beep's man page and possibly editing scripts to fit your system.
Alternatives: mid2beep and other beep repositories
The README lists three related projects. One is mid2beep, a tool that converts MIDI files to beep sequences. That is a different approach: instead of hand-writing melodies, you feed it a MIDI file and get a beep script. Another is binarypearl/beepbeep and ShaneMcC/beeps, both repositories of beep songs. The difference is that those may have their own syntax or packaging, while beep-melodies appears to rely on the standard beep command. If you want to convert existing music, mid2beep is the more practical choice because it automates the transcription that the frequency table in this repository forces you to do by hand.
Maintenance and upgrade cost
The repository has no recent releases and no license, and the README does not mention any versioning or changelog. The last push date is unknown, so you cannot assess how actively it is maintained. The cost of using it is low in terms of dependencies, but the cost of adapting it is real: you must verify each script against your beep version, because the beep command's options have changed over time. The frequency table is static and will not need updates, but the shell scripts may break if beep changes its interface. Given the lack of license, you should treat the code as read-only unless you get permission from the author. Overall, this is a repository to pull from for inspiration, not a dependency to build on.
Editorial conclusion
Adopt beep-melodies if you want a quick, no-frills set of beep tunes for the PC speaker and you are comfortable with the pcspkr module and the beep command. Do not use it if you need a maintained library, a documented format, or a player that handles timing and volume beyond what beep offers. Before using it, verify that your kernel has pcspkr available and that your system does not blacklist it, and check the actual melody scripts for the beep syntax they use, since the README gives no examples.
Frequently asked questions
What do I need before beep-melodies will play anything?
Install the beep utility with apt-get install beep, load the kernel module with modprobe pcspkr, and uncomment the pcspkr line in /etc/modprobe.d/blacklist.conf so the module loads on every startup. All three steps are Linux specific.
Does beep-melodies work on macOS or Windows?
The repository documents nothing outside Linux. Every preparation step it gives is either an apt-get install or a modprobe of the pcspkr kernel module, and no alternative for another operating system is described.
How do I add my own melody to beep-melodies?
SKELETON.sh sits at the top level of the repository and reads as the template for a new script. The frequency table gives 88 numbered keys with their pitch in hertz, from A0 at 27,5 to C8 at 4186,01, but the file format itself is not explained anywhere in the repository.
Is beep-melodies still being worked on?
The last push was on 2023-08-08 and the repository has never tagged a release, so there is no version history to follow and no changelog to read. The scripts depend on a distribution package and a kernel module rather than on a build of their own.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/josef-friedrich-beep-melodies)