aylet(1)
πΏ aylet(1) β Music Software πΏ
okay bestie, sit DOWN, because today we're talking about aylet and xaylet, two little icons from the Music Software section of your manual that play Spectrum .ay music files. no cap. π
β¨ NAME β¨
aylet, xaylet β play Spectrum .ay music files π΅
πΈ SYNOPSIS πΈ
aylet/xaylet [-BehlmnNsS] [-A stopafter] [-F fadetime] [-t tracknum]
[file1 [file2 ... ]]
π¦ DESCRIPTION π¦
so aylet plays music files in the .ay format. and what ARE those, you ask? they're basically lil wrappers around bits of Z80 code that play music on the Sinclair ZX Spectrum 128's sound hardware β that's the beeper, or the AY-3-8912 sound chip, or honestly both at once, she contains multitudes. π
files using the Amstrad CPC ports are also supported, we're inclusive here.
aylet has a curses-based interface, and xaylet has an X-based one. two sisters, different aesthetics, same energy. β¨
π OPTIONS π
-Aβ set stop-after time in seconds (that's the moment when tracks start fading out), or0to disable fading entirely. default is 180 seconds (3 minutes).-Bβ useABCstereo positions instead of the defaultACB. so here's the tea:ACBeffectively pushes channels A and B to the left and right (using a stereo delay), with C staying central.ABCputs A and C to the left/right instead, leaving B central. pick your fighter. π-eβ force 8-bit playback, even if 16-bit is available. she's humble like that.-Fβ set fade-out time in seconds (how long tracks take to fade out). default is 10 seconds.-hβ give terse usage help. short and sweet, we love a minimal queen.-lβ list the contents of files (track names etc.) rather than playing them. window shopping fr.-mβ use mono rather than the default stereo playback.-nβ instead of the usual interface, use a simple batch-playing tty style, a bit likempg123. (Only works in the curses version! not the X one, bestie, don't try it.)-Nβ usenarrowstereo separation (so the channels sound closer together) rather than the defaultwideseparation.-sβ output sample data to stdout rather than playing it; implies-n. the sample is 44.1kHz 16-bit stereo (or mono if you're using-m). and don't be surprised if the sample takes a little while to generate, because it still has to emulate the Z80. she's working hard, be patient. π«Ά-Sβ apply a pseudo-stereo effect to the beeper output. works well in some cases, but can make things sound a bit shaky (or rather, more so than usual :-)). iconic behavior honestly.-tβ play only the specified track, then exit. (strictly speaking, it starts playing the given track, and exits when ANY track fades out.) mainly useful when playing a single file non-interactively.file1etc. β the file(s) to play. currently these can only be specified on the command-line. no drag-and-drop era yet, we're in the trenches. π
π BEHIND THE SCENES π
the way aylet works may seem a little strange if you're not familiar with how the .ay format goes about things, so here's some background on how it all works. storytime. π§
as mentioned above, the files basically contain chunks of machine code to run on an emulated Z80 with certain sound hardware. and since you're just running a program, you can't really fast-forward or rewind as such, but you CAN move between tracks specified in the file. (some files only have one, but others have several. variety!! β¨)
the whole just-running-a-program thing leads to two other problems too. you can't tell where a track ends, other than to see when the sound stops β so what aylet does is exit a track after 4 seconds of total silence. and a track may never end at all, in which case aylet fades it out after 3 minutes by default. (yes, 3 minutes may be too soon to allow some tracks to finish, but you have to strike the balance somewhere, and it's only a default. use -A or press s to change it. it's giving β¨customizableβ¨.)
β¨οΈ KEYS β¨οΈ
both the curses-based and X-based interfaces use these keys (some of which are based on those used by XMMS, for the elders in the chat):
qorEscβ exit the program. bye bestie πzβ previous track.xβ play.cβ pause.vβ stop.bβ next track.rβ restart track.BackspaceorDeleteβ previous file.Spaceβ next file.sβ increase stop-after time.Sβ decrease stop-after time. setting it to zero disables fading completely.fβ increase fade-out time.Fβ decrease fade-out time.hβ enable/disable high-speed mode, playing four times as fast when enabled (in a way), as a sort of substitute for a real fast-forward control. it's giving speedrun energy π₯
in xaylet, you can also use the matching buttons for most of the above. touch grass? no. touch BUTTON. π
when using aylet -n, the interactivity is scaled down dramatically, leaving just the one control:
Ctrl-Cβ if the current track has been playing for less than half a second, exit the program; otherwise, skip to the next track.
heads up: the key used to do this is really whatever you have set up to generate aSIGINTsignal, but it's generallyCtrl-C. iykyk.
π EXAMPLES π
to play all .ay files in the current directory:
aylet *.ay
or
xaylet *.ay
to convert ysfollin.ay to a mono sample in .wav format (requires sox):
aylet -sm ysfollin.ay |sox -r 44100 -t sw - tune.wav
she's piping, she's converting, she's slaying. π
π BUGS π
- the AY is probably too loud relative to the beeper. this may be fixed in the next version, though it's more likely to be an option to choose between the current more reasonable balance and the real thing. :-) we'll see bestie.
- several options which it could reasonably allow to be changed at runtime (e.g. AY stereo, beeper stereo, ACB vs. ABC) can't be at the moment. tragic. π
- the X version is currently a bit too much like the curses one, at the expense of GUIness in some respects. she's still figuring out her aesthetic.
π SEE ALSO π
π AUTHOR π
Russell Marks (rus@svgalib.org).
the Z80 emulation was written by Ian Collier, for xz80.
Chris Cox wrote the OpenBSD sound code.
Matan Ziv-Av was partly responsible for the OSS sound code.
give them all their flowers, fr fr. πΈ
Version 0.4 Β· 1st October, 2004 β yeah she's vintage, she's an heirloom, and she still ate. periodt. πβ¨π¦
π¦ where this page comes from
- ubuntu jammy: aylet 0.5-3build3
- Copyright (C) 2001-2004 Russell Marks and Ian Collier
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms