Graphics Until the release of version 3, AmigaOS only natively supported the
native Amiga graphics chipset, via
graphics.library, which provides an API for
geometric primitives,
raster graphic operations and handling of sprites. As this API could be bypassed, some developers chose to avoid OS functionality for rendering and directly program the underlying hardware for gains in efficiency. Third-party graphics cards were initially supported via proprietary unofficial solutions. A later solution where AmigaOS could directly support any graphics system, was termed
retargetable graphics (RTG). With AmigaOS 3.5, some RTG systems were bundled with the OS, allowing the use of common hardware cards other than the native Amiga chipsets. The main RTG systems are
CyberGraphX,
Picasso 96 and
EGS. Some vector graphic libraries, like
Cairo and
Anti-Grain Geometry, are also available. Modern systems can use cross-platform
SDL (simple DirectMedia Layer) engine for games and other multimedia programs. The Amiga did not have any inbuilt
3D graphics capability, and so had no standard 3D graphics
API. Later, graphics card manufacturers and third-party developers provided their own standards, which included
MiniGL,
Warp3D, Storm
Mesa (
agl.library) and CyberGL. The Amiga was launched at a time when there was little support for 3D graphics libraries to enhance desktop GUIs and computer rendering capabilities. However, the Amiga became one of the first widespread 3D development platforms.
VideoScape 3D was one of the earliest 3D rendering and animation systems, and Silver/
TurboSilver was one of the first ray-tracing 3D programs. Then Amiga boasted many influential applications in 3D software, such as
Imagine, maxon's
Cinema 4D,
Realsoft 3D,
VistaPro,
Aladdin 4D and NewTek's
Lightwave (used to render movies and television shows like
Babylon 5). Likewise, while the Amiga is well known for its ability to easily
genlock with video, it has no built-in
video capture interface. The Amiga supported a vast number of third-party interfaces for video capture from American and European manufacturers. There were internal and external hardware solutions, called frame-grabbers, for capturing individual or sequences of video frames, including: Newtronic Videon,
Newtek DigiView, Graffiti external
framebuffer, the Digilab, the Videocruncher, Firecracker 24, Vidi Amiga 12, Vidi Amiga 24-bit and 24RT (Real Time), Newtek
Video Toaster,
GVP Impact Vision IV24, MacroSystem VLab Motion and VLab PAR, DPS
PAR (Personal Animation Recorder), VHI (Video Hardware Interface) by IOSPIRIT GmbH, DVE-10, etc. Some solutions were hardware plug-ins for Amiga graphics cards like the Merlin XCalibur module, or the DV module built for the Amiga clone
Draco from the German firm Macrosystem. Modern
PCI bus TV expansion cards and their capture interfaces are supported through
tv.library by Elbox Computer and
tvcard.library by Guido Mersmann. Following modern trends in evolution of graphical interfaces,
AmigaOS 4.1 uses the 3D hardware-accelerated
Porter-Duff image composition engine.
Audio Prior to version 3.5, AmigaOS only officially supported the Amiga's native
sound chip, via
audio.device. This facilitates playback of sound samples on four
DMA-driven 8-bit
PCM sound channels (two left and two right audio channels). The only supported hardware sample format is signed linear 8-bit
two's complement (each channel with 6-bit volume control, and two channels can be combined into one 14-bit channel as a hack, with the top 8 bits on a max volume channel, and low 6 bits on a channel set to lowest volume; later versions of the OS support such 14-bit audio; the original Amiga has this hardware capability and
AHI, version 4, for AmigaOS 2.04, and AHI got integrated into AmigaOS version 3.5 as standard, and it also supporst 16-bit 3rd party audio hardware). Support for third-party audio cards was vendor-dependent, until the creation and adoption of
AHI as a de facto standard. AHI offers improved functionality, such as seamless audio playback from a user-selected audio device, standardized functionality for audio recording and efficient software mixing routines for combining multiple sound channels, thus overcoming the four-channel hardware limit of the original Amiga chipset. AHI can be installed separately on AmigaOS v2.0 and later. AmigaOS itself did not support
MIDI until version 3.1, when Roger Dannenberg's
camd.library was adapted as the standard MIDI API. Commodore's version of camd.library also included a built-in driver for the serial port. The later open source version of camd.library by Kjetil Matheussen did not provide a built-in driver for the serial port, but provided an external driver instead. AmigaOS was one of the first operating systems to feature
speech synthesis with software developed by SoftVoice, Inc., which allowed text-to-speech conversion of
American English. This had three main components:
narrator.device, which modulates the
phonemes used in
American English,
translator.library, which translates English text to American English phonemes using a set of rules, and a high-level
SPEAK: handler, which allows command-line users to redirect text output to speech. A utility called
Say was included with the OS, which allowed text-to-speech synthesis with some control of voice and speech parameters. A demo was also included with
AmigaBASIC programming examples. Speech synthesis was occasionally used in third-party programs, particularly educational software. For example, the word processors Prowrite and Excellence! could read out documents using the synthesizer. These speech synthesis components remained largely unchanged in later OS releases and Commodore eventually removed speech synthesis support from AmigaOS 2.1 onward because of licensing restrictions.
Storage The AmigaOS has a dynamically sized
RAM disk, which resizes itself automatically to accommodate its contents. Starting with AmigaOS 2.x, operating system configuration files were loaded into the RAM disk on boot, greatly speeding operating system usage. Other files could be copied to the RAM disk like any standard device for quick modification and retrieval. Also beginning in AmigaOS 2.x, the RAM disk supported file-change notification, which was mostly used to monitor configuration files for changes. Starting with AmigaOS 1.3, there is also a fixed-capacity recoverable RAM disk, which functions as a standard RAM disk but can maintain its contents on soft restart. It is commonly called the
RAD disk after its default device name, and it can be used as a boot disk (with boot sector). Previously, a recoverable RAM disk, commonly called the
ASDG RRD or
VD0, was introduced in 1987; at first, it was locked to ASDG expansion memory products. Later, the ASDG RRD was added to the
Fred Fish series of freeware, shareware, and public domain software (disks 58 and 241).
Scripting The AmigaOS has support for the
Rexx language, called ARexx (short for "Amiga Rexx"), and is a script language which allows for full OS scripting, similar to
AppleScript; intra-application scripting, similar to
VBA in
Microsoft Office; as well as inter-program communication. Having a single scripting language for any application on the operating system is beneficial to users, instead of having to learn a new language for each application. Programs can listen on an ARexx port for string messages. These messages can then be interpreted by the program in a similar fashion to a user pushing buttons. For example, an ARexx script run in an e-mail program could save the currently displayed email, invoke an external program which could extract and process information, and then invoke a viewer program. This allows applications to control other applications by sending data back and forth directly with memory handles, instead of saving files to disk and then reloading them. Since AmigaOS 4, the
Python language is included with the operating system. ==Technical overview==