JMusic

Last updated

jMusic is an open source music programming library written in the Java programming language. Written by Andrew Sorensen and Andrew Brown, jMusic was released publicly in November 1998. It is under GNU GPL license. [1]

Contents

It is designed to assist composers and music software developers by providing support for music data structures, modifications, and input/output to various file formats. It can display notes as sheet music (see music notation).

jMusic has a data structure that is based on a musical score metaphor, and consists of a hierarchy of notes, phrases, parts and score. jMusic also has a sound synthesis architecture and "instruments" can be created from a chain of "audio objects" (similar to unit generators in other languages). A jMusic score can be rendered with jMusic instruments to an audio file.

Code Sample

Output: C and D CMusic C D.png
Output: C and D
Noten=newNote(C4,CROTCHET);// Middle C (quarter note)Noten2=newNote(G4,CROTCHET);Phrasep=newPhrase();p.addNote(n);// Add Cp.addNote(n2);// Add G#

See also

Related Research Articles

MIDI Means of connecting electronic musical instruments

MIDI is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and related audio devices for playing, editing and recording music. The specification originates in a paper published by Dave Smith and Chet Wood then of Sequential Circuits at the October 1981 Audio Engineering Society conference in New York City then titled Universal Synthesizer Interface.

Csound is a Domain-specific computer programming language for audio programming. It is called Csound because it is written in C, as opposed to some of its predecessors.

SuperCollider is an environment and programming language originally released in 1996 by James McCartney for real-time audio synthesis and algorithmic composition.

Virtual Studio Technology software plug-in interface used in computer-based audio production

Virtual Studio Technology (VST) is an audio plug-in software interface that integrates software synthesizers and effects units into digital audio workstations. VST and similar technologies use digital signal processing to simulate traditional recording studio hardware in software. Thousands of plugins exist, both commercial and freeware, and many audio applications support VST under license from its creator, Steinberg.

Real-Time Cmix (RTcmix) is one of the MUSIC-N family of computer music programming languages. RTcmix is descended from the MIX program developed by Paul Lansky at Princeton University in 1978 to perform algorithmic composition using digital audio soundfiles on a IBM 3031 mainframe computer. After synthesis functions were added, the program was renamed Cmix in the 1980s. Real-time capability was added by Brad Garton and David Topper in the mid-1990s, with support for TCP socket connectivity, interactive control of the scheduler, and object-oriented embedding of the synthesis engine into fully featured applications.

MUSIC-N refers to a family of computer music programs and programming languages descended from or influenced by MUSIC, a program written by Max Mathews in 1957 at Bell Labs. MUSIC was the first computer program for generating digital audio waveforms through direct synthesis. It was one of the first programs for making music on a digital computer, and was certainly the first program to gain wide acceptance in the music research community as viable for that task. The world's first computer-controlled music was generated in Australia by programmer Geoff Hill on the CSIRAC computer which was designed and built by Trevor Pearcey and Maston Beard. However, CSIRAC produced sound by sending raw pulses to the speaker, it did not produce standard digital audio with PCM samples, like the MUSIC-series of programs.

Max (software) visual programming language for music and multimedia

Max, also known as Max/MSP/Jitter, is a visual programming language for music and multimedia developed and maintained by San Francisco-based software company Cycling '74. Over its more than thirty-year history, it has been used by composers, performers, software designers, researchers, and artists to create recordings, performances, and installations.

Algorithmic composition is the technique of using algorithms to create music.

Pure Data programming language

Pure Data (Pd) is a visual programming language developed by Miller Puckette in the 1990s for creating interactive computer music and multimedia works. While Puckette is the main author of the program, Pd is an open-source project with a large developer base working on new extensions. It is released under a license similar to the BSD license. It runs on GNU/Linux, Mac OS X, iOS, Android and Windows. Ports exist for FreeBSD and IRIX.

Hierarchical Data Format file format

Hierarchical Data Format (HDF) is a set of file formats designed to store and organize large amounts of data. Originally developed at the National Center for Supercomputing Applications, it is supported by The HDF Group, a non-profit corporation whose mission is to ensure continued development of HDF5 technologies and the continued accessibility of data stored in HDF.

Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.

Module file Family of file formats

Module file is a family of music file formats originating from the MOD file format on Amiga systems used in the late 1980s. Those who produce these files and listen to them form the worldwide MOD scene, a part of the demoscene subculture.

JFugue is an open source programming library that allows one to program music in the Java programming language without the complexities of MIDI. It was first released in 2002 by David Koelle. The current version, JFugue 5.0, was released in March 2015. Brian Eubanks has described JFugue as "useful for applications that need a quick and easy way to play music or to generate MIDI files." JFugue is free software released under the Apache License.

In computer programming, feature-oriented programming (FOP) or feature-oriented software development (FOSD) is a programming paradigm for program generation in software product lines (SPLs) and for incremental development of programs.

Impromptu (programming environment) Mac OS X programming environment for live coding

Impromptu is a Mac OS X programming environment for live coding. Impromptu is built around the Scheme language, which is a member of the Lisp family of languages. The source code of its core has been opened as the Extempore project.

References

  1. http://sourceforge.net/projects/jmusic/ jMusic - Composition in Java - Download jMusic - Composition software for free at SourceForge.net