Modular virtual analog software synthesizer and sequencer for 4KB and 64KB intros
C C++ Assembly Shell Objective-C Makefile Other
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
converter Added support for more module types Sep 12, 2017
doc Added screenshots Sep 21, 2017
examples bpm dialog updates, colorized example synth Sep 5, 2017
ftinclude Initial commit to Google Code from local SVN revision 384 Aug 17, 2011
player Added support for more module types Sep 12, 2017
resources Deleted komposter binary, added precompiled linux freetype 2.3.12 libs Aug 26, 2011
shaders Added slew limiter module for glide/portamento but it's untested for … Sep 21, 2017
AUTHORS Fixed a huge number of warnings with -Wall, cleaned up the documentat… Jan 6, 2012
COPYING Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
ChangeLog Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
INSTALL Fix compiling on 10.11 and later. Aug 13, 2016
Makefile.am Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
Makefile.darwin Fixed compiling on minor macOS versions Sep 21, 2017
Makefile.in Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
NEWS Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
README.md Added screenshots to README.md Sep 21, 2017
about.c Fix compiling on 10.11 and later. Aug 13, 2016
about.h Fix compiling on 10.11 and later. Aug 13, 2016
acinclude.m4 Fix build under Haiku May 26, 2017
aclocal.m4 Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
arch.h Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
audio.c Added support for more module types Sep 12, 2017
audio.h Less noise on loop - still a bit clicky, though Jul 8, 2015
autogen.sh Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
bezier.c Fixed a few warnings and added build instructions for OS X Apr 26, 2012
bezier.h Fixed a few warnings and added build instructions for OS X Apr 26, 2012
buffermm.c Fixed a huge number of warnings with -Wall, cleaned up the documentat… Jan 6, 2012
buffermm.h Fixed compiling under OS X 10.10 Apr 28, 2015
config.guess Fix build under Haiku May 26, 2017
config.sub Fix build under Haiku May 26, 2017
configure Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
configure.ac Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
console.c Initial commit to Google Code from local SVN revision 384 Aug 17, 2011
console.h Initial commit to Google Code from local SVN revision 384 Aug 17, 2011
constants.h Added signal colorization feature, macOS makefile updates Aug 31, 2017
depcomp Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
dialog.c edit patch float values using cursor keys (left/right is 1% increment… Jul 7, 2015
dialog.h edit patch float values using cursor keys (left/right is 1% increment… Jul 7, 2015
dotfile.c Bugfix for supersaw mix controller, gcc as default compiler, improved… May 13, 2012
dotfile.h Initial commit to Google Code from local SVN revision 384 Aug 17, 2011
filedialog.c Improved UX for (most) dialog boxes Jul 8, 2015
filedialog.h Initial commit to Google Code from local SVN revision 384 Aug 17, 2011
fileops.c Added dialog box for setting tempo and time. Sep 7, 2017
fileops.h Added dialog box for setting tempo and time. Sep 7, 2017
font.c Fixed add module dialog layout and improved description readability Sep 21, 2017
font.h Fix compile warnings with -Wall Aug 31, 2017
install-sh Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
main.c Added dialog box for setting tempo and time. Sep 7, 2017
missing Provide an autoconf script. Rename customary files to README, LICENCE… Sep 27, 2011
modules.c Improvements to slew limiter module Sep 25, 2017
modules.h Improvements to slew limiter module Sep 25, 2017
patch.c Improvements to slew limiter module Sep 25, 2017
patch.h edit patch float values using cursor keys (left/right is 1% increment… Jul 7, 2015
pattern.c Added dialog box for setting tempo and time. Sep 7, 2017
pattern.h Clamp keyboard editing of modulator values to sane limits Jul 9, 2015
sequencer.c Added dialog box for setting tempo and time. Sep 7, 2017
sequencer.h Added dialog box for setting tempo and time. Sep 7, 2017
shader.c Fix compile warnings with -Wall Aug 31, 2017
shader.h Added signal colorization feature, macOS makefile updates Aug 31, 2017
synthesizer.c Fixed add module dialog layout and improved description readability Sep 21, 2017
synthesizer.h Initial commit to Google Code from local SVN revision 384 Aug 17, 2011
widgets.c Added signal colorization feature, macOS makefile updates Aug 31, 2017
widgets.h Added signal colorization feature, macOS makefile updates Aug 31, 2017

README.md

Komposter

Komposter is a lightweight music composing system intended mainly to be used in applications where the size of the executable must be minimized such as 4K and 64K intros.

It is built using a modular "virtual analog" model, where the composer can build the synthesizers from scratch using simple basic building blocks. This minimizes the amount of code required and relies more on data, which can be compressed more effectively.

A simple pattern-based sequencer is used to create songs which use up to 24 voices, each of which can use a different synthesizer. Each synthesizer can be programmed with a number of patches that can be switched between patterns.

Included with Komposter is a music player with full x86 assembly source code as well as a converter for generating nasm-includeable files from song files. Source code for the converter is also provided.

As Komposter is still in beta stage, please give me feedback on any bugs you may encounter or features you'd like to see added. Bugs and crashes are very likely, so please save your work often.

Screenshots

Screenshot Screenshot Screenshot Screenshot Screenshot

Building (macOS)

git clone https://github.com/jhalme/komposter.git
cd komposter
make -f Makefile.darwin dist

Using finder, navigate to the directory you cloned Komposter into and run Komposter.app. Alternatively, you can open Komposter-yyyy-mm-dd.dmg and move the app to your /Applications.

Building (Linux, FreeBSD, etc)

git clone https://github.com/jhalme/komposter.git
cd komposter
./configure
make
make install

Examples

Some audio clips and screenshots can be found at komposter.haxor.fi.