[27 total ]
Rosegarden is an audio and MIDI sequencer, score editor, and general-purpose music composition and editing environment. It is an easy-to-learn, attractive application that runs on Linux. It is ideal for composers, musicians, music students, and small studio or home recording environments.
Ardour is a digital audio workstation. You can use it to record, edit and mix multi-track audio. You can produce your own CDs, mix video soundtracks, or just experiment with new ideas about music and sound.
Ardour capabilities include:
... [More]
multichannel recording, non-destructive editing with unlimited undo/redo, full automation support, a powerful mixer, unlimited tracks/busses/plugins, timecode synchronization, and hardware control from surfaces like the Mackie Control Universal. If you've been looking for a tool similar to ProTools, Nuendo, Pyramix, or Sequoia, you might have found it. [Less]
POE is a framework for cooperative, event driven multitasking in Perl. Other languages have similar frameworks. Python has Twisted. TCL has "the event loop".
POE originally was developed as the core of a persistent object server and runtime
... [More]
environment. It has evolved into a general purpose multitasking and networking framework, encompassing and providing a consistent interface to other event loops such as Event and the Tk and Gtk toolkits.
POE is written in layers, each building upon previous ones. It's therefore possible to use POE at varying levels of abstraction. [Less]
LilyPond is a music typesetter. It produces beautiful sheet music using a description file as input. LilyPond is part of the GNU Project.
Hydrogen is an advanced drum machine for GNU/Linux. It's main goal is to bring professional yet simple and intuitive pattern-based drum programming.
FluidSynth is a real-time software synthesizer based on the SoundFont 2 specifications. FluidSynth can read MIDI events from a MIDI input device and render them to an audio device using SoundFont instruments. SoundFont files are composed of digital
... [More]
audio "samples" and additional instrument parameters. These files can be created or downloaded off the Internet. FluidSynth also has support for controlling effects in real time and can play MIDI files. [Less]
Qsynth is a fluidsynth GUI front-end application written in C++ around the Qt4 toolkit using Qt Designer. Eventually it may evolve into a softsynth management application allowing the user to control and manage a variety of command line softsynth but
... [More]
for the moment it wraps the excellent FluidSynth. FluidSynth is a command line software synthesiser based on the Soundfont specification. [Less]
LMMS aims to be a free alternative to popular (but commercial and closed- source) programs like FruityLoops, Cubase and Logic giving you the ability of producing music with your computer by creating cool loops, synthesizing and mixing sounds
... [More]
, arranging samples, having more fun with your MIDI-keyboard and much more...
LMMS combines the features of a tracker-/sequencer-program (pattern-/channel-/ sample-/song-/effect-management) and those of powerful synthesizers and samplers in a modern, user-friendly and easy to use graphical user-interface.
Please note that this project on Ohloh is not being used. Users and developers are directed to http://www.ohloh.net/projects/lmms [Less]
Qtractor is an Audio/MIDI multi-track sequencer application written in C++ around the Qt4 toolkit.
The initial target platform will be Linux, where the Jack Audio Connection Kit (JACK) for audio, and the Advanced Linux Sound Architecture (ALSA)
... [More]
for MIDI, are the main infrastructures to evolve as a fairly-featured Linux Desktop Audio Workstation GUI, specially dedicated to the personal home-studio. [Less]
Enblend is a tool for compositing images. Given a set of images that overlap in some irregular way, Enblend overlays them in such a way that the seam between the images is invisible, or at least very difficult to see. Enblend does not line up the images for you. Use a tool like Hugin to do that.
SuperCollider is an environment and programming language for real time audio synthesis and algorithmic composition. It provides an interpreted object-oriented language which functions as a network client to a state of the art, realtime sound
... [More]
synthesis server.
SuperCollider was written by James McCartney over a period of many years, and is now an open source project maintained and developed by various people. It is used by musicians, scientists, and artists working with sound. [Less]
QSampler is a LinuxSampler GUI front-end application written in C++ around the Qt3 toolkit using Qt Designer. At the moment it just wraps as a client reference interface for the LinuxSampler Control Protocol (LSCP). LinuxSampler is a work in
... [More]
progress. The goal is to produce a free, open source pure software audio sampler with professional grade features, comparable to both hardware and commercial Windows/Mac software samplers. The initial platform will be Linux because it is one of the most promising open source multimedia operating systems. Thanks to various kernel patches and the Jack Audio Connection Kit, Linux is currently able to deliver rock solid sub-5 millisecond MIDI-to-Audio response. [Less]
KGuitar is basically a guitar tabulature editor for K Desktop Environment. It's much more than just a tab editor. It's features are:
Powerful and convenient tabulature editing, including many effects and classical note score editing for classic
... [More]
instrument players;
Full and very customizable MIDI to tabulature import and export;
Support of extra data formats, such as ASCII tabulatures, MusicXML or popular programs' format, such as Guitar Pro's or TablEdit;
Chord fingering construction tools - chord finder and chord analyzer;
Many additional facilities to ease tabbing work, including rhythm and lead construction tools;
Highly customizable to suit a lot of possible instruments (not only 6-string guitars, and even not only guitars), including drum tracks, lyrics and other MIDI events. [Less]
MusE is a MIDI/Audio sequencer with recording and editing capabilities written by Werner Schweer. MusE aims to be a complete multitrack virtual studio for Linux, it is published under the GNU General Public License. MusE has among other things
... [More]
support for:
* Midi sequencing
(Record/Playback/Import)
(Input filter)
* Audio sequencing
(Record/Playback several mono/stereo inputs/outputs.)
(AudioGroups)
* LASH
(Perform audio effects like chorus/flanger in realtime!)
* Jack - jack-audio-connection-kit
(Use the jack for midi/audio routing.)
(Internal Audio Routing Interface)
* ALSA - based on the Advanced Linux Sound Architecture [Less]
Csound is a powerful and yet easy to use musical synthesis package. Csound was constructed in the tradition of so-called music-N languages, among which the best-known is Music V. It consists of an orchestra- and score-driven executable, written in C
... [More]
for portability. Since Csound is a computational language, it is highly flexible and efficient; complexity is gained only at the expense of computation power. Basically, Csound reads some files and creates the result as a sound file on disk or, on faster machines, in real time through a DAC. [Less]
Seq24 is a minimal loop based midi sequencer.
Strongly-timed, Concurrent, and On-the-fly Audio Programming Language.
ChucK is a new (and developing) audio programming language for real-time synthesis, composition, performance, and now, analysis - fully supported on MacOS X, Windows, and
... [More]
Linux. ChucK presents a new time-based, concurrent programming model that's highly precise and expressive (we call this strongly-timed), as well as dynamic control rates, and the ability to add and modify code on-the-fly. In addition, ChucK supports MIDI, OSC, HID device, and multi-channel audio. It's fun and easy to learn, and offers composers, researchers, and performers a powerful programming tool for building and experimenting with complex audio synthesis/analysis programs, and real-time interactive control. [Less]
VMPK is a virtual MIDI piano keyboard for Linux, Windows and OSX. Based on Qt4 and RtMIDI, the program is a MIDI event generator using the computer's alphanumeric keyboard and the mouse. It may be used also to display received MIDI notes.
Creates elegant, printable stafless lead sheets for musicians needing only chords and lyrics.
LMMS aims to be a free alternative to popular (but commercial and closed- source) programs like FruityLoops/FL Studio, Cubase and Logic allowing you to produce music with your computer. This includes creation of loops, synthesizing and mixing sounds
... [More]
, arranging samples, having fun with your MIDI-keyboard and much more...
LMMS combines the features of a tracker-/sequencer-program and those of powerful synthesizers, samplers, effects etc. in a modern, user-friendly and easy to use graphical user-interface. [Less]
OpenSebJ is a free real time audio sample mixer that runs on Microsoft Windows.
Features include:
(o) Supports loading of 255 Audio samples (wave format), which can be played in real time
(o) Sample properties such as, Volume, Pan and
... [More]
Frequency can be adjusted individually for each sample (even during mid play)
(o) A composition tool is provided, presented in a familiar multi-track sequencer environment. Looping compositions are also supported.
(o) Samples can be linked to keys on the keyboard and trigged in real time when a key press occurs
(o) Each sample can also have the play cursor position adjusted while the sample is playing, to provide a virtual needle to be moved
(o) Stream to disk recording, allows all audio played from OpenSebJ to be saved
(o) Pitch shifter rolling [Less]
MuseScore is a free WYSIWYG music score typesetter for Linux, licenced under GNU GPL.
LMMS is a window manager written in Python/Pygame. It is for use on a TV and has joystick support. The goal is to create a GUI that should be very simple to handle with a lot of features like listening to music, watching movies, and playing some games.
Jackbeat is an audio sequencer running on Linux and Mac OS X, for musicians and sound artists.
A tiny concatenative language implemented for experimentation.
The source is under Public Domain (un-copyrighted.)
The full featured language has two implementations now, One is implemented over JVM and the other is native.
To run the jvm
... [More]
implementation, extract the distribution in any directory,
gmake -f makefile.j
gmake -f makefile.j run
V
|The native distribution can be installed withe the standard
configure && make && make install
/usr/local/bin/v
V
|invocation.
The language is a close relative of postscript, forth and joy. and is stack based. ie:
|2 3 *
=6
|2 3 * 5 +
=11See status for a tutorial and more info. and See rosettacode for more examples. The Functions available in V are available in this page: functions
(The releases are out of date and multiple fixes have gone in. Please check out and build rather than use them.)
Example functions in V. getting the roots (with out using the stack shuffling word 'view')
[quad-formula
[a b c] let
[minisub 0 b -].
[radical b b * 4 a * c * - sqrt].
[divisor 2 a *].
[root1 minisub radical + divisor /].
[root2 minisub radical - divisor /].
root1 root2
].
|2 4 -30 quad-formula ??
=(-5.0 3.0)using 'view'
[quad-root
[a b c : [0 b - b b * 4 a * c * - sqrt + 2 a * /]] view i
].
|2 4 -30 quad-root ??
=(3)
contrast this with the definition in scheme here
(define quadratic-formula
(lambda (a b c)
(let ([minusb (- 0 b)]
[radical (sqrt (- (* b b) (* 4 ( * a c))))]
[divisor (* 2 a)] )
let ([root1 (/ (+ minusb radical) divisor)]
[root2 (/ (- minusb radical) divisor)])
(cons root1 root2)))))Definition of Qsort.
[qsort
#definitions
[joinparts [pivot [*list1] [*list2] : [*list1 pivot *list2]] view].
[split_on_first_element uncons [>] split&].
#args starts for binrec. notice that 2 arguments (termination condition
#and its result) are on first line.
[small?] []
[split_on_first_element]
#binrec recurses on the result of split_on_first_element before applying joinparts.
[joinparts]
binrec].Some explanations.
The first and second lines (terminated by '.') are internal function definitions
(Notice how qsort is also terminated by '.') '.' is the definition syntax in V.
The first function joinparts
============================
The function joinpart contains just an application of the operator view.
'view' is list translator. It takes a list of the form [template : result]
then it tries to apply the template to the current stack. If it can be applied on the
stack, then the arguments named in the template are bound to values in stack. The result
is then processed, and all the bound elements in result are replaced by their values.
[pivot [*list1] [*list2] : [*list1 pivot *list2]] view expects 3 arguments on the stack,
the first a single element pivot, then two lists list1 and list2.
It returns a list that is composed of elements of list1 followed by pivot
followed by elements of list2 (as defined in result - RHS of ':').
ie:
44 [1 2 3] [5 6 7] [pivot [*list1] [*list2] : [*list1 pivot *list2]] view ??
=> [1 2 3 44 5 6 7]
(The function ?? is used to print out the elements in the stack now.)
The second function split_on_first_element
==========================================
The definition is [uncons [>] split&]
The uncons splits a list into the first element and the rest of the list.
ie:
[1 2 3 4 5] uncons ??
=1 [2 3 4 5]
split& takes two arguments, the first is the function F to split a list with,
and the second the list itself. All elements in the list that passes the function F
is put into the first list, and all that do not are put into the second list.
ie:
[1 2 3 4 5 6 7] [4 >] split& ??
=[5 6 7] [1 2 3 4]
The function F can also take an argument from the stack. so this also works.
4 [1 2 3 4 5 6 7] [>] split& ??
=[5 6 7] [1 2 3 4]
Thus the split_on_first_element takes the first element of a list, and split that
list based on that element as a filter.
binrec
=======
binrec expects 4 arguments,
Arg1 is the terminating condition,
Arg2 is the result if the terminating condition is met.
Arg3 is an executable statement that returns two entities.
The entire binrec statement is performed on each of the
two entities until the terminating condition is met.
Arg4 is what to do with the result of the previous statement.Algorithm.
Here, the small? checks if the list is empty or contains just one element.
if it is, then the result is arg2 - []
ie:
[] small? ??
=true
[1] small? ??
=true
[1 2 3 4] small? ??
=false
split_on_first_element takes is executed on all lists that are larger than size 1
and as explained above, splits them into two based on the first element.
on the resultent lists, the entire qsort is performed again due to binrec.
The last joinparts takes these elements (pivot list1 list2) which are present now
on the stack, and combines them to produce a single sorted list.A slightly friendlier function (with out the binrec.)
[qsort
[joinparts [pivot [*list1] [*list2] : [*list1 pivot *list2]] view].
[split_on_first_element uncons [>] split&].
[small?]
[]
[split_on_first_element [list1 list2 : [list1 qsort list2 qsort joinparts]] view i]
ifte].The binrec and friends are more powerful than the explicit recursion done above, but for people new to concatenative languages, this kind of recursion may look more intuitive.
The green-threads branch contains threads implemented using CPS and trampoline style. The 'fork' creates a new thread and pushes its thread id into the stack for the main thread to pickup. 'send' takes two words in the stack, the id of the thread to send to and the message. 'receive' receives any messages send to this thread.
consumer
[1
[10 <] [
dup puts
receive
put '>consumer>' puts
succ ]
while]
fork
[id] letproducer
1 [10 <] [
dup '[Less]
NoteEdit is a free music score editor for Linux. It supports an unlimited number and length of staffs, polyphony, a MIDI playback of written notes, chord markings, lyrics, a number of import and export filters to many formats like MIDI, MusicXML, ABC Music, MUP, PMX, MusiXTeX and LilyPond and more!
The Swami Project - Sampled Waveforms And Musical Instruments - is a collection of free software for editing and sharing MIDI instruments and sounds. Swami aims to provide cross platform (Linux, Windows and Mac OSX) instrument editing and sharing software for instrument formats such as SoundFont, DLS and GigaSampler.