![]() |
![]()
| ![]() |
![]()
NAMEUADE - Unix Amiga Delitracker Emulator SYNOPSISuade123 [options] files ... DESCRIPTIONuade123 plays old amiga music formats by emulating Amiga hardware. It re-uses Amiga Eagleplayer plugins to play different formats. Eagleplayer plugins require an implementation of the Eagleplayer API and AmigaOS APIs to run on. Therefore Eagleplayer API and parts of AmigaOS have been implemented in uade. uade123 is a command line player that can be used to play Amiga songs. It's options and behavior are documented here. There is also a plugin for the audacious. Section FILE FORMAT DETECTION explains hardships of recognizing amiga formats and consequently problems it may cause for the user (and authors). Section COMMAND LINE OPTIONS documents command line options for uade123. Section ACTION KEYS documents action keys which are used to issue run-time commands to control playback. These commands include switching subsong, skipping to next song, skipping fast forward, pausing and altering post-processing effects. Section CONFIGURATION FILES documents variables which can be changed in eagleplayer.conf, song.conf and uade.conf to alter default behavior of uade123 and other frontends. eagleplayer.conf is used for eagleplayer plugin specific configurations. song.conf is used for song specific configurations which can be used to change sound effects or avoid problems. uade.conf is the main configuration file that can be used to set defaults for variables. Command line options will always override uade.conf options. FILE FORMAT DETECTIONCreating file detection heuristics for 200 formats is difficult and most of those formats are undocumented or otherwise not easily recognizable. Therefore we have to detect some formats by file name prefixes and postfixes which can easily cause problems. For example, many different protracker variants are named with 'mod' prefix and the format lacks version number inside the data file making it rather hard to recognize proper mod variant. Sound output can be buggy with some unrecognizable mod variants. When file format can not be deduced based on file contents, a heuristics based on the file name must be used. This may sound strange, but many of the m68k machine language player plugins are black boxes which have no reliable mechanism to validate whether a given file belongs to them or not. The filename based heuristics may cause unrecognized songs in uade123. In audacious plugin they can cause conflicts with other plugins. COMMAND LINE OPTIONS-1, --one Play at most one subsong per file.
ACTION KEYSuade123 can be controlled interactively on the command line by
pressing specific action keys.
CONFIGURATION FILESAll configuration files are in a line based format. This means that line breaks (\n) must be used properly. Lines beginning with # are comment lines. Empty lines are ignored. eagleplayer.confEach line in eagleplayer.conf sets eagleplayer specific options. It is used, among other things, to specify file name extensions to different formats. It has the format: playername prefixes=prefix1,prefix2,... [opt1 opt2 ...] [comment] playername refers to an existing eagleplayer in players/ directory. prefixes is a list of file prefixes and postfixes that are associated with this eagleplayer. opt1, opt2 and so forth are options that can be given to the player. Valid options for eagleplayer.conf are listed in the song.conf section. Some example lines for eagleplayer.conf: custom prefixes=cust
song.confsong.conf is a configuration file for applying work-arounds for songs that have problems with eagleplayers. Protracker is especially notorious for having many incompatible versions, and modules do not have version information about the editor which was used to create them. One can program song.conf rules for songs by using the --set option in uade123. For example, forcing a module into vblank timing, do: "uade123 --set='epopt=vblank' mod.level6h" The file shall have lines of following format: md5=XXX option1 [option2 ...] [comment: YYY] Valid options for eagleplayer.conf and song.conf: a500 Use A500 filter emulation
comment is a tag after which everything is considered just a comment about the line. Those options should be self-explanatory ;) A few example lines for song.conf: md5=09ad7aed28ec0043e232060546259767 broken_subsongs comment cust.Bubble_Bobble reports wrong subsong numbers md5=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx speed_hack comment this is the only song in format foo that needs speedhack md5=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy led_off comment this song just sucks with filtering md5=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz led_on comment turning LED ON makes this song sound c00l md5=wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww no_panning subsongs=2,5 comment only subsongs 2 and 5 sound good md5=c351076a79033336a0ea1747b6d78783 ntsc comment Play Platoon song in NTSC mode uade.confuade.conf sets default variables for configuration
settings. Each line may contain at most one command. The configuration file
is read from users home directory ( $HOME/.uade/uade.conf ) if it
exists. If it does not exist, it is tried from
$PREFIX/share/uade/uade.conf
The valid commands are:
EAGLEPLAYER OPTIONSEagleplayers can be given song specific or general options in song.conf and eagleplayer.conf. Use epopt=x to set one option. It can be used many times. You can also issue eagleplayer options from the command line (so that they are not stored into song.conf) by using -x option: "uade123 -x type:nt10 mod.foobar" will play mod.foobar as a Noisetracker 1.0 module. With -x option "epopt=" prefix must be dropped. Valid options for eagleplayers: PTK-Prowiz epopt=vblank
Infogrames epopt=timer=x
SUPPORTED FORMATSQuite a few. See documentation, eagleplayer.conf and players/ directory. RESAMPLERSInternally Amigas Paula chip operates at 3,5 MHz, and in theory, it is possible to generate a 1,75 MHz output signal. However, maximum DMA based sample rate, which is approximately 28876 Hz, is limited by chip memory access slots. These frequencies are not well supported with current computer equipment, and synthesizing samples at 3,5 MHz would be very slow. Regardless, in principle UADE "samples" Paula's output at 3,5 MHz and then immediately resamples it to playback frequency, which is usually 44,1 kHz or 1/80th of the sample rate of Paula. This output frequency is configurable, see uade.conf section. UADE currently supports three resampling methods: none that directly discards 79 of the 80 samples; default that estimates the true output value by averaging the last 80 samples together (also known as boxcar filter). This is the recommended resampler; and sinc that trades cpu for best high-frequency component removal through low-pass filtering the audio with a sinc function. The default resampler is a very good choice because it is pretty accurate and very fast, but loses some treble and causes some aliasing distortion. For high frequencies (above 44,1 kHz), sinc becomes an option and is probably the best choice. FILTERSThe Amiga output circuitry contains a fixed low-pass filter on most models, and a dynamic lowpass filter connected to the power LED (known as the "LED filter"), which can be toggled on and off. On the Amiga 1000, which was the first Amiga computer, the LED filter was permanently enabled. In the succeeding models, such as the Amiga 500, the LED filter was made optional, but another, permanent RC filter circuit was added on the audio output. Finally, for Amiga 1200, the static filter was removed altogether, and only the LED filter remains. These low-pass filters were most likely added in order to make Amiga's pulse-based audio sound softer, and to make lower sampling frequencies useful for audio playback: by removing some of the treble, the hard edges of a pulse waveform become rounder and the waveform undulates more smoothly, mimicking many instrument sounds more accurately at lower sampling rates. The downside of fixed filtering is that the smoothing occurs with all the higher sampling rates, too. However, with the introduction of Amiga 1200 and its AGA graphics modes and spacious chip memory, it became possible to read more than 28876 samples per second from chip memory, and we guess that the fixed lowpass filter was removed entirely in favour for accurate treble response. The filter emulation is based on hi-fi measurements made on two particular Amiga computers, Amiga 500 and Amiga 1200. The Amiga 500 output path was found to contain a 6 dB/oct lowpass RC filter circuit with cutoff at 5000 Hz. (Some early Amiga 500 revisions may have had 4500 Hz tuning for this filter.) The LED filter was found to be a 12 dB/oct Butterworth lowpass filter with cutoff value at approximately 3300 Hz. The details of the Amiga 1000 filter arrangements are not known, because nobody has been able to provide any samples. Accurate digital simulation of analog filters is usually not possible without some upsampling. When "default" method is used, the samples are generated at the playback frequency, and the post-processing step that applies filtering is composed with a series of hand-fitted first-order IIR filters that together approximate the correct frequency response for the expected synthesis frequencies of 44,1 kHz or 48 kHz. The sinc resampling method, in turn, emulates the filters directly at Paula's 3,5 MHz sampling frequency by folding the filters directly into the shape of the fundamental synthesis unit, the BLEP. In the sinc mode, the filters are realised by fitting the digital models for (slightly modified) butterworth and RC filters with the parameters mentioned above. Therefore sinc can be used on all frequencies above 44.1 kHz without quality loss (or increase, for that matter). UAERCYou can edit PREFIX/share/uaerc to edit Amiga emulation related variable. INCREASING AMIGA MEMORY FOR LARGE MODULE FILES uaerc can be edited to increase Amiga memory. The variable named chipmem_size (4 by default) controls the memory allocation. The allocated memory size is determined by formula chipmem_size * 512 KiB, and thus, there is 2 MiB of memory available for modules by default. This variable can be set up to 16, which would mean 8 MiB of memory for modules. FILES
EXAMPLES
TIPS AND WORKAROUNDS
INFORMATION SOURCES
VERSION CONTROL SERVERgit clone https://gitlab.com/uade-music-player/uade AUTHORSUADE project was started by Heikki Orsila <heikki.orsila@iki.fi>. There have been many other contributors. Most notable contributors are Michael 'mld' Doering (for almost anything), Harry 'Piru' Sintonen (MorphOS port) and Antti S. Lankila <alankila@bel.fi> (Amiga filter emulation, resampling and postprocessing effect code).
|