An open source DAW for GNU/Linux, inspired by modular synths.
Go to file
Ben Niemann 66275ca434 Fix typo. 2022-01-01 02:51:40 +01:00
3rdparty Fix typo. 2022-01-01 02:51:40 +01:00
appimg Move dep_sort from nix to a submodule. 2022-01-01 02:30:58 +01:00
bin meld messed with my python. don't! 2021-12-31 04:46:38 +01:00
build_utils Fix port overrides for faust output ports. 2021-12-31 00:10:26 +01:00
data Fix duplicate rule for noisicaa.svg icon. 2021-12-31 00:10:45 +01:00
etc Remove unused dependency on protobuf. 2021-12-21 05:01:16 +01:00
flatpy flatpy: fix type errors in generated code. 2021-12-15 19:21:52 +01:00
noisicaa Move subprocess from nix to a submodule. 2022-01-01 02:50:50 +01:00
typeshed Make everything lint free. 2021-12-17 02:09:11 +01:00
website Add plausible stats snippet to website. 2021-12-27 03:48:33 +01:00
.dir-locals.el Tweak projectile-project-run-cmd 2021-11-23 11:41:15 +01:00
.gitignore Reanimate website sources. 2021-12-27 02:39:53 +01:00
.gitmodules Move subprocess from nix to a submodule. 2022-01-01 02:50:50 +01:00
.projectile Tweak .projectile 2022-01-01 02:50:55 +01:00
COPYING Initial commit to git (from latest version in svn). 2015-11-29 13:02:36 +01:00 Update README for the new nix world. 2021-11-22 05:58:11 +01:00
VERSION Move version string to a central file. 2021-11-02 00:43:55 +01:00
default.nix Pin down the current nixpkgs version. 2021-11-07 01:48:42 +01:00
noisicaa.nix Move subprocess from nix to a submodule. 2022-01-01 02:50:50 +01:00
shell.nix meld messed with my python. don't! 2021-12-31 04:46:38 +01:00
waf Something that build with waf and nix. 2021-10-16 15:27:36 +02:00
wscript Move dep_sort from nix to a submodule. 2022-01-01 02:30:58 +01:00


Important note: This is project is in pre-APLHA state, do not expect it to be usable in any form or shape.

  • It has bugs.
  • It does not do a lot of useful things.
  • There is no documentation.
  • And most importantly: the save format is not finalized and will change in incompatible ways, i.e. you will not be able to open your work from older versions.

Follow the development at

What's This?

The open source DAW that does not DAW.

License: GPL2 (see file COPYING).

This project is currenly only designed to run on Linux desktops.

Eventually it should have the general features you would expect from a DAW, like recording and editing audio or MIDI, using plugins, etc. I specifically want to have tracks that can be edited using musical notation (i.e. notes on staff lines instead of the more common MIDI grid).

But all that is still in the far out future.

The focus will be on electronic music production and sound design (using the broadest possible definition of music).

noisicaä should not be a tool to record, edit and mix audio tracks from people playing actual instruments - it does not try to compete with Ardour.

Getting Started

There are currently no prebuilt binary packages, which you could just install, so you have to build from source. It is assumed that you're moderately experienced with software development on Linux.

1. Prerequisites

You need git, which is probably already installed on your system.

Building noisicaä itself does not need a lot of disk space, but Nix (see below) will download and install a lot of packages, which are going to be stored on your root filesystem. So make sure that you have a few gigabytes of free space there. But the upside is that you do not need to manually install any other packages.

2. Set up Nix

The development setup is currently built around the Nix package manager. If you already use Nix, then you can skip this section.

What is Nix?
Nix is a functional package manager, a configuration language to describe package and a Linux distribution.
For our purposes you only need to think of it as a package manager like apt, pip, etc. The great thing about it is that you can install and use it on any Linux system and it will not interfere with your normal package manager. We're going to use it to install all the tools and dependencies needed to build noisicaä without messing up your system.
If you want to contribute to the code, you might need to deal with the Nix configuration language.
But you do not need to install Nix as your Linux OS (neither do I).

The most basic Nix installation is done with a single command (the Nix documentation describes more options, but we don't need those):

sh <(curl -L

3. Get the source code

Go to some directory where you want to store the source code and clone the git repository:

git clone

That should create a directory noisicaa, so now go there:

cd noisicaa

4. Install the dependencies

Now we're going to start a "Nix shell".

Nix will download all the packages needed to build noisicaa into its "Nix store" and start a subshell with environment variables ($PATH and so on) setup such that those packages are accessible. When you exit that subshell, there will be no trace left of what has been installed, except from the disk usage of the Nix store.

The downloads will take a while and some packages need to be built from source, so grab a cup of tea, while you watch it:


5. Configure and build

Once inside the Nix shell and all dependencies available, the actual build process is pretty simple and standard (using waf as the build system):

./waf configure
./waf build

The output of that process is stored in a build directory.

6. Launch noisicaä

It is not yet possible to properly install noisicaä on your system (i.e. the configuration to make ./waf install work has yet to be written), so use a wrapper script to launch it from the build directory: