Misplaced Pages

Portland Pattern Repository

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

A music sequencer (or audio sequencer or simply sequencer ) is a device or application software that can record, edit, or play back music , by handling note and performance information in several forms, typically CV/Gate , MIDI , or Open Sound Control , and possibly audio and automation data for digital audio workstations (DAWs) and plug-ins .

#452547

68-499: The Portland Pattern Repository ( PPR ) is an online repository for computer programming software design patterns . It was accompanied by the website WikiWikiWeb , the world's first wiki . The repository has an emphasis on Extreme Programming , and is hosted by Cunningham & Cunningham (C2) of Portland, Oregon . The PPR's motto is "People, Projects & Patterns". On 17 September 1987, programmer Ward Cunningham with Tektronix and Apple Computer 's Kent Beck co-published

136-540: A graphical user interface for the software sequencer. Also in 1983, Roland Corporation 's CMU-800 sound module introduced music synthesis and sequencing to the PC, Apple II , and Commodore 64 . The spread of MIDI on personal computers was facilitated by Roland's MPU-401 , released in 1984. It was the first MIDI-equipped PC sound card , capable of MIDI sound processing and sequencing. After Roland sold MPU sound chips to other sound card manufacturers, it established

204-501: A CRT display to simplify the management of music synthesis in realtime, 12-bit D/A converter for realtime sound playback, an interface for CV/gate analog devices, and even several controllers including a musical keyboard, knobs, and rotating joysticks to capture realtime performance. In 1971, Electronic Music Studios (EMS) released one of the first digital sequencer products as a module of Synthi 100 , and its derivation, Synthi Sequencer series. After then, Oberheim released

272-454: A MIDI sequencer. Since its introduction, MIDI has remained the musical instrument industry standard interface through to the present day. In 1987, software sequencers called trackers were developed to realize the low-cost integration of sampling sound and interactive digital sequencer as seen on Fairlight CMI II "Page R". They became popular in the 1980s and 1990s as simple sequencers for creating computer game music , and remain popular in

340-402: A compiler can make it crash when parsing some large source file, a simplification of the test case that results in only few lines from the original source file can be sufficient to reproduce the same crash. Trial-and-error/divide-and-conquer is needed: the programmer will try to remove some parts of the original test case and check if the problem still exists. When debugging the problem in a GUI,

408-540: A few simple readability transformations made code shorter and drastically reduced the time to understand it. Following a consistent programming style often helps readability. However, readability is more than just programming style. Many factors, having little or nothing to do with the ability of the computer to efficiently compile and execute the code, contribute to readability. Some of these factors include: The presentation aspects of this (such as indents, line breaks, color highlighting, and so on) are often handled by

476-608: A light-pen that would be converted into sound, simplifying the process of composing computer-generated music . It used PDP-5 minicomputer for data input, and IBM 7094 mainframe computer for rendering sound. Also in 1970, Mathews and F. R. Moore developed the GROOVE (Generated Real-time Output Operations on Voltage-controlled Equipment) system, a first fully developed music synthesis system for interactive composition (that implies sequencer) and realtime performance, using 3C/ Honeywell DDP-24 (or DDP-224 ) minicomputers. It used

544-546: A maximum of 5200 notes (large for the time), and a polyphony function which allocated multiple pitch CVs to a single Gate . It was capable of eight-channel polyphony, allowing the creation of polyrhythmic sequences. The MC-8 had a significant impact on popular electronic music , with the MC-8 and its descendants (such as the Roland MC-4 Microcomposer ) impacting popular electronic music production in

612-563: A means to help object-oriented programmers publish their computer programming patterns by submitting them to him. Some of those programmers attended the OOPSLA and PLoP conferences about object-oriented programming, and posted their ideas on the PPR. The PPR is accompanied, on c2.com , by the first ever wiki , a collection of reader-modifiable Web pages, which is named WikiWikiWeb . Computer programming Computer programming or coding

680-589: A polyphonic synthesizer with sequencer called Andromatic built for them by Erkki Kurenniemi . The step sequencer s played rigid patterns of notes using a grid of (usually) 16 buttons, or steps, each step being 1/16 of a measure . These patterns of notes were then chained together to form longer compositions. Sequencers of this kind are still in use, mostly built into drum machines and grooveboxes . They are monophonic by nature, although some are multi-timbral , meaning that they can control several different sounds but only play one note on each of those sounds. On

748-470: A result, loses efficiency and the ability for low-level manipulation). Debugging is a very important task in the software development process since having defects in a program can have significant consequences for its users. Some languages are more prone to some kinds of faults because their specification does not require compilers to perform as much checking as other languages. Use of a static code analysis tool can help detect some possible problems. Normally

SECTION 10

#1732773327453

816-643: A sequencer for the GS-1 . It was only available at Yamaha's headquarters in Japan ( Hamamatsu ) and the United States ( Buena Park, California ). In June 1981, Roland Corporation founder Ikutaro Kakehashi proposed the concept of standardization between different manufacturers' instruments as well as computers, to Oberheim Electronics founder Tom Oberheim and Sequential Circuits president Dave Smith . In October 1981, Kakehashi, Oberheim and Smith discussed

884-459: A visual environment. Different programming languages support different styles of programming (called programming paradigms ). The choice of language used is subject to many considerations, such as company policy, suitability to task, availability of third-party packages, or individual preference. Ideally, the programming language best suited for the task at hand will be selected. Trade-offs from this ideal involve finding enough programmers who know

952-410: Is Entity-Relationship Modeling ( ER Modeling ). Implementation techniques include imperative languages ( object-oriented or procedural ), functional languages , and logic programming languages. It is very difficult to determine what are the most popular modern programming languages. Methods of measuring programming language popularity include: counting the number of job advertisements that mention

1020-607: Is directly executed by the central processing unit . Proficient programming usually requires expertise in several different subjects, including knowledge of the application domain , details of programming languages and generic code libraries , specialized algorithms, and formal logic . Auxiliary tasks accompanying and related to programming include analyzing requirements , testing , debugging (investigating and fixing problems), implementation of build systems , and management of derived artifacts , such as programs' machine code . While these are sometimes considered programming, often

1088-464: Is little more than a different notation for a machine language, two machines with different instruction sets also have different assembly languages. High-level languages made the process of developing a program simpler and more understandable, and less bound to the underlying hardware . The first compiler related tool, the A-0 System , was developed in 1952 by Grace Hopper , who also coined

1156-408: Is often supported on the drum machines, bass machines and several groove machines . Realtime sequencers record the musical notes in real-time as on audio recorders , and play back musical notes with designated tempo , quantizations , and pitch . For editing, usually " punch in/punch out " features originated in the tape recording are provided, although it requires sufficient skills to obtain

1224-467: Is possibly referred as " audio sequencing ". Possibly it may be one origin of " audio sequencing ". The early music sequencers were sound-producing devices such as automatic musical instruments , music boxes , mechanical organs , player pianos , and Orchestrions . Player pianos, for example, had much in common with contemporary sequencers. Composers or arrangers transmitted music to piano rolls which were subsequently edited by technicians who prepared

1292-793: Is similar to learning a foreign language . Music sequencer The advent of Musical Instrument Digital Interface (MIDI) and the Atari ST home computer in the 1980s gave programmers the opportunity to design software that could more easily record and play back sequences of notes played or programmed by a musician. This software also improved on the quality of the earlier sequencers which tended to be mechanical sounding and were only able to play back notes of exactly equal duration. Software-based sequencers allowed musicians to program performances that were more expressive and more human. These new sequencers could also be used to control external synthesizers , especially rackmounted sound modules , and it

1360-542: Is still strong in corporate data centers often on large mainframe computers , Fortran in engineering applications, scripting languages in Web development, and C in embedded software . Many applications use a mix of several languages in their construction and use. New languages are generally designed around the syntax of a prior language with new functionality added, (for example C++ adds object-orientation to C, and Java adds memory management and bytecode to C++, but as

1428-401: Is the composition of sequences of instructions, called programs , that computers can follow to perform tasks. It involves designing and implementing algorithms , step-by-step specifications of procedures, by writing code in one or more programming languages . Programmers typically use high-level programming languages that are more easily intelligible to humans than machine code , which

SECTION 20

#1732773327453

1496-434: Is usually easier to code in "high-level" languages than in "low-level" ones. Programming languages are essential for software development. They are the building blocks for all software, from the simplest applications to the most sophisticated ones. Allen Downey , in his book How To Think Like A Computer Scientist , writes: Many computer languages provide a mechanism to call functions provided by shared libraries . Provided

1564-504: The Jacquard loom could produce entirely different weaves by changing the "program" – a series of pasteboard cards with holes punched in them. Code-breaking algorithms have also existed for centuries. In the 9th century, the Arab mathematician Al-Kindi described a cryptographic algorithm for deciphering encrypted code, in A Manuscript on Deciphering Cryptographic Messages . He gave

1632-766: The Oramics designed by Daphne Oram in 1957, and so forth. During the 1940s–1960s, Raymond Scott , an American composer of electronic music, invented various kind of music sequencers for his electric compositions. The "Wall of Sound", once covered on the wall of his studio in New York during the 1940s–1950s, was an electro-mechanical sequencer to produce rhythmic patterns, consisting of stepping relays (used on dial pulse telephone exchange ), solenoids , control switches, and tone circuits with 16 individual oscillators . Later, Robert Moog would explain it in such terms as "the whole room would go 'clack – clack – clack', and

1700-538: The University of Illinois at Urbana–Champaign wrote one of the earliest programs for computer music composition on ILLIAC , and collaborated on the first piece, Illiac Suite for String Quartet , with Leonard Issaction . In 1957 Max Mathews at Bell Labs wrote MUSIC , the first widely used program for sound generation, and a 17-second composition was performed by the IBM 704 computer. Subsequently, computer music

1768-506: The demoscene and chiptune music. Modern computer digital audio software after the 2000s, such as Ableton Live , incorporates aspects of sequencers among many other features. In 1978, Japanese personal computers such as the Hitachi Basic Master equipped the low-bit D/A converter to generate sound which can be sequenced using Music Macro Language (MML). This was used to produce chiptune video game music . It

1836-439: The source code editor , but the content aspects reflect the programmer's talent and skills. Various visual programming languages have also been developed with the intent to resolve readability concerns by adopting non-traditional approaches to code structure and display. Integrated development environments (IDEs) aim to integrate all such help. Techniques like Code refactoring can enhance readability. The academic field and

1904-455: The 1970s and 1980s more than any other family of sequencers. The MC-8's earliest known users were Yellow Magic Orchestra in 1978. In 1975, New England Digital (NED) released ABLE computer (microcomputer) as a dedicated data processing unit for Dartmouth Digital Synthesizer (1973), and based on it, later Synclavier series were developed. The Synclavier I , released in September 1977,

1972-568: The 9th century, a programmable music sequencer was invented by the Persian Banu Musa brothers, who described an automated mechanical flute player in the Book of Ingenious Devices . In 1206, the Arab engineer Al-Jazari invented a programmable drum machine where a musical mechanical automaton could be made to play different rhythms and drum patterns, via pegs and cams . In 1801,

2040-478: The AE in 1837. In the 1880s, Herman Hollerith invented the concept of storing data in machine-readable form. Later a control panel (plug board) added to his 1906 Type I Tabulator allowed it to be programmed for different jobs, and by the late 1940s, unit record equipment such as the IBM 602 and IBM 604 , were programmed by control panels in a similar way, as were the first electronic computers . However, with

2108-582: The DAW or the integrated music authoring environments. The features provided as sequencers vary widely depending on the software; even an analog sequencer can be simulated. The user may control the software sequencer either by using the graphical user interfaces or a specialized input devices , such as a MIDI controller . Alternative subsets of audio sequencers include: This type of software actually controls sequences of audio samples; thus, it can potentially be called an " audio sequencer ". This technique

Portland Pattern Repository - Misplaced Pages Continue

2176-557: The DS-2 Digital Sequencer in 1974, and Sequential Circuits released Model 800 in 1977 In 1977, Roland Corporation released the MC-8 MicroComposer , also called computer music composer by Roland. It was an early stand-alone, microprocessor -based, digital CV/gate sequencer, and an early polyphonic sequencer. It equipped a keypad to enter notes as numeric codes, 16  KB of RAM for

2244-414: The circumstances. The first step in most formal software development processes is requirements analysis , followed by testing to determine value modeling, implementation, and failure elimination (debugging). There exist a lot of different approaches for each of those tasks. One approach popular for requirements analysis is Use Case analysis. Many programmers use forms of Agile software development where

2312-495: The code, making it easy to target varying machine instruction sets via compilation declarations and heuristics . Compilers harnessed the power of computers to make programming easier by allowing programmers to specify calculations by entering a formula using infix notation . Programs were mostly entered using punched cards or paper tape . By the late 1960s, data storage devices and computer terminals became inexpensive enough that programs could be created by typing directly into

2380-467: The computers. Text editors were also developed that allowed changes and corrections to be made much more easily than with punched cards . Whatever the approach to development may be, the final program must satisfy some fundamental properties. The following properties are among the most important: Using automated tests and fitness functions can help to maintain some of the aforementioned attributes. In computer programming, readability refers to

2448-548: The concept of the stored-program computer introduced in 1949, both programs and data were stored and manipulated in the same way in computer memory . Machine code was the language of early programs, written in the instruction set of the particular machine, often in binary notation. Assembly languages were soon developed that let the programmer specify instructions in a text format (e.g., ADD X, TOTAL), with abbreviations for each operation code and meaningful names for specifying addresses. However, because an assembly language

2516-615: The concept with representatives from Yamaha , Korg and Kawai . In 1983, the MIDI standard was unveiled by Kakehashi and Smith. The first MIDI sequencer was the Roland MSQ-700, released in 1983. It was not until the advent of MIDI that general-purpose computers started to play a role as sequencers. Following the widespread adoption of MIDI, computer-based MIDI sequencers were developed. MIDI-to- CV/gate converters were then used to enable analogue synthesizers to be controlled by

2584-463: The desired result. For detailed editing, possibly another visual editing mode under graphical user interface may be more suitable. Anyway, this mode provides usability similar to audio recorders already familiar to musicians, and it is widely supported on software sequencers, DAWs, and built-in hardware sequencers. A software sequencer is a class of application software providing a functionality of music sequencer, and often provided as one feature of

2652-510: The ease with which a human reader can comprehend the purpose, control flow , and operation of source code . It affects the aspects of quality above, including portability, usability and most importantly maintainability. Readability is important because programmers spend the majority of their time reading, trying to understand, reusing, and modifying existing source code, rather than writing new source code. Unreadable code often leads to bugs, inefficiencies, and duplicated code . A study found that

2720-527: The engineering practice of computer programming are concerned with discovering and implementing the most efficient algorithms for a given class of problems. For this purpose, algorithms are classified into orders using Big O notation , which expresses resource use—such as execution time or memory consumption—in terms of the size of an input. Expert programmers are familiar with a variety of well-established algorithms and their respective complexities and use this knowledge to choose algorithms that are best suited to

2788-400: The first description of cryptanalysis by frequency analysis , the earliest code-breaking algorithm. The first computer program is generally dated to 1843 when mathematician Ada Lovelace published an algorithm to calculate a sequence of Bernoulli numbers , intended to be carried out by Charles Babbage 's Analytical Engine . However, Charles Babbage himself had written a program for

Portland Pattern Repository - Misplaced Pages Continue

2856-404: The first step in debugging is to attempt to reproduce the problem. This can be a non-trivial task, for example as with parallel processes or some unusual software bugs. Also, specific user environment and usage history can make it difficult to reproduce the problem. After the bug is reproduced, the input of the program may need to be simplified to make it easier to debug. For example, when a bug in

2924-464: The functions in a library follow the appropriate run-time conventions (e.g., method of passing arguments ), then these functions may be written in any other language. Computer programmers are those who write computer software. Their jobs usually involve: Although programming has been presented in the media as a somewhat mathematical subject, some research shows that good programmers have strong skills in natural human languages, and that learning to code

2992-680: The inventions of phonographs , radios , and sound films which eventually eclipsed all such home music production devices. Of them all, punched-paper-tape media had been used until the mid-20th century. The earliest programmable music synthesizers including the RCA Mark II Sound Synthesizer in 1957, and the Siemens Synthesizer in 1959, were also controlled via punch tapes similar to piano rolls . Additional inventions grew out of sound film audio technology. The drawn sound technique which appeared in

3060-404: The language to build a team, the availability of compilers for that language, and the efficiency with which programs written in a given language execute. Languages form an approximate spectrum from "low-level" to "high-level"; "low-level" languages are typically more machine-oriented and faster to execute, whereas "high-level" languages are more abstract and easier to use but execute less quickly. It

3128-465: The language, the number of books sold and courses teaching the language (this overestimates the importance of newer languages), and estimates of the number of existing lines of code written in the language (this underestimates the number of users of business languages such as COBOL). Some languages are very popular for particular kinds of applications, while some languages are regularly used to write many different kinds of applications. For example, COBOL

3196-512: The late 1920s, is notable as a precursor of today's intuitive graphical user interfaces . In this technique, notes and various sound parameters are triggered by hand-drawn black ink waveforms directly upon the film substrate, hence they resemble piano rolls (or the 'strip charts' of the modern sequencers/DAWs). Drawn soundtrack was often used in early experimental electronic music, including the Variophone developed by Yevgeny Sholpo in 1930, and

3264-593: The late-18th or early-19th century, with technological advances of the Industrial Revolution various automatic musical instruments were invented. Some examples: music boxes , barrel organs and barrel pianos consisting of a barrel or cylinder with pins or a flat metal disc with punched holes; or mechanical organs , player pianos and orchestrions using book music / music rolls ( piano rolls ) with punched holes, etc. These instruments were disseminated widely as popular entertainment devices prior to

3332-416: The musical notes designated by a series of knobs or sliders corresponding to each musical note (step). It is designed for both composition and live performance ; users can change the musical notes at any time without regarding recording mode. And also possibly, the time interval between each musical note (length of each step) can be independently adjustable. Typically, analog sequencers are used to generate

3400-422: The newer internal digital buses than the old-style analogue CV/gate interface once used on their prototype system. Then in the early-1980s, they also re-recognized the needs of CV/gate interface, and supported it along with MIDI as options . Yamaha 's GS-1, their first FM digital synthesizer , was released in 1980. To program the synthesizer, Yamaha built a custom computer workstation designed to be used as

3468-416: The other hand, software sequencers were continuously utilized since the 1950s in the context of computer music , including computer- played music (software sequencer), computer- composed music ( music synthesis ), and computer sound generation ( sound synthesis ). In June 1951, the first computer music Colonel Bogey was played on CSIRAC , Australia's first digital computer. In 1956, Lejaren Hiller at

SECTION 50

#1732773327453

3536-535: The paper "Using Pattern Languages for Object-Oriented Programs" This paper, about software design patterns, was inspired by Christopher Alexander 's architectural concept of "patterns" It was written for the 1987 OOPSLA programming conference organized by the Association for Computing Machinery . Cunningham and Beck's idea became popular among programmers because it helped them exchange programming ideas in an easy to understand format. Cunningham & Cunningham,

3604-476: The programmer can try to skip some user interaction from the original problem description and check if the remaining actions are sufficient for bugs to appear. Scripting and breakpointing are also part of this process. Debugging is often done with IDEs . Standalone debuggers like GDB are also used, and these often provide less of a visual environment, usually using a command line . Some text editors such as Emacs allow GDB to be invoked through them, to provide

3672-543: The programming consultancy that would eventually host the PPR on its Internet domain, was incorporated in Salem, Oregon on 1 November 1991, and is named after Ward and his wife, Karen R. Cunningham, a mathematician, school teacher, and school director. Cunningham & Cunningham registered their Internet domain, c2.com , on 23 October 1994. Ward created the Portland Pattern Repository on c2.com as

3740-430: The repeated minimalistic phrases which may be reminiscent of Tangerine Dream , Giorgio Moroder or trance music . On step sequencers, musical notes are rounded into steps of equal time intervals, and users can enter each musical note without exact timing; Instead, the timing and duration of each step can be designated in several different ways: In general, step mode, along with roughly quantized semi-realtime mode,

3808-576: The rolls for mass duplication. Eventually consumers were able to purchase these rolls and play them back on their own player pianos. The origin of automatic musical instruments seems remarkably old. As early as the 9th century, the Persian (Iranian) Banū Mūsā brothers invented a hydropowered organ using exchangeable cylinders with pins, and also an automatic flute -playing machine using steam power , as described in their Book of Ingenious Devices . The Banu Musa brothers' automatic flute player

3876-420: The sounds would come out all over the place". The Circle Machine, developed in 1959, had incandescent bulbs each with its own rheostat , arranged in a ring, and a rotating arm with photocell scanning over the ring, to generate an arbitrary waveform. Also, the rotating speed of the arm was controlled via the brightness of lights, and as a result, arbitrary rhythms were generated. The first electronic sequencer

3944-411: The term software development is used for this larger overall process – with the terms programming , implementation , and coding reserved for the writing and editing of code per se. Sometimes software development is known as software engineering , especially when it employs formal methods or follows an engineering design process . Programmable devices have existed for centuries. As early as

4012-734: The term "sequencer" is often used to describe software. However, hardware sequencers still exist. Workstation keyboards have their own proprietary built-in MIDI sequencers. Drum machines and some older synthesizers have their own step sequencer built in. There are still also standalone hardware MIDI sequencers , although the market demand for those has diminished greatly due to the greater feature set of their software counterparts. Music sequencers can be categorized by handling data types, such as: Also, music sequencer can be categorized by its construction and supporting modes. Analog sequencers are typically implemented with analog electronics , and play

4080-409: The term 'compiler'. FORTRAN , the first widely used high-level language to have a functional implementation, came out in 1957, and many other languages were soon developed—in particular, COBOL aimed at commercial data processing, and Lisp for computer research. These compiled languages allow the programmer to write programs in terms that are syntactically richer, and more capable of abstracting

4148-560: The various stages of formal software development are more integrated together into short cycles that take a few weeks rather than years. There are many approaches to the Software development process. Popular modeling techniques include Object-Oriented Analysis and Design ( OOAD ) and Model-Driven Architecture ( MDA ). The Unified Modeling Language ( UML ) is a notation used for both the OOAD and MDA. A similar technique used for database design

SECTION 60

#1732773327453

4216-522: Was a drum machine where pegs ( cams ) bump into little levers that operated the percussion. The drummers could be made to play different rhythms and different drum patterns if the pegs were moved around. In the 14th century, rotating cylinders with pins were used to play a carillon (steam organ) in Flanders, and at least in the 15th century, barrel organs were seen in the Netherlands. In

4284-451: Was invented by Raymond Scott, using thyratrons and relays . Clavivox , developed since 1952, was a kind of keyboard synthesizer with sequencer. On its prototype, a theremin manufactured by young Robert Moog was utilized to enable portamento over 3-octave range, and on later version, it was replaced by a pair of photographic film and photocell for controlling the pitch by voltage . In 1968, Ralph Lundsten and Leo Nilsson had

4352-620: Was mainly researched on the expensive mainframe computers in computer centers, until the 1970s when minicomputers and then microcomputers became available in this field. In Japan, experiments in computer music date back to 1962, when Keio University professor Sekine and Toshiba engineer Hayashi experimented with the TOSBAC computer. This resulted in a piece entitled TOSBAC Suite . In 1965, Max Mathews and L. Rosler developed Graphic 1 , an interactive graphical sound system (that implies sequencer) on which one could draw figures using

4420-503: Was no longer necessary for each synthesizer to have its own devoted keyboard. As the technology matured, sequencers gained more features, such as the ability to record multitrack audio . Sequencers used for audio recording are called digital audio workstations (DAWs). Many modern sequencers can be used to control virtual instruments implemented as software plug-ins . This allows musicians to replace expensive and cumbersome standalone synthesizers with their software equivalents. Today

4488-523: Was not until the advent of MIDI , introduced to the public in 1983, that general-purpose computers really started to play a role as software sequencers. NEC 's personal computers, the PC-88 and PC-98 , added support for MIDI sequencing with MML programming in 1982. In 1983, Yamaha modules for the MSX featured music production capabilities, real-time FM synthesis with sequencing, MIDI sequencing, and

4556-669: Was one of the earliest digital music workstation product with multitrack sequencer. Synclavier series evolved throughout the late-1970s to the mid-1980s, and they also established integration of digital-audio and music-sequencer, on their Direct-to-Disk option in 1984, and later Tapeless Studio system. In 1982, renewed the Fairlight CMI Series II and added new sequencer software "Page R", which combined step sequencing with sample playback. While there were earlier microprocessor-based sequencers for digital polyphonic synthesizers, their early products tended to prefer

4624-444: Was the first programmable music sequencer device, and the first example of repetitive music technology , powered by hydraulics . In 1206, Al-Jazari , an Arab engineer , invented programmable musical automata , a " robot band " which performed "more than fifty facial and body actions during each musical selection." It was notably the first programmable drum machine . Among the four automaton musicians were two drummers. It

#452547