Update README for the new nix world.

main
Ben Niemann 2021-11-22 05:58:11 +01:00
parent 50d6be3954
commit e07c71fb16
1 changed files with 94 additions and 33 deletions

127
README.md
View File

@ -1,65 +1,126 @@
noisicaä
========
**Important note**: This is project is in pre-APLHA state, do not expect it to
be usable in any form or shape.
**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.
* 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 http://noisicaa.odahoda.de/
What's This?
------------
A simple music editor with a focus on classical musical notation.
Follow the development at http://noisicaa.odahoda.de/
The open source DAW that does not DAW.
License: GPL2 (see file COPYING).
Requirements
------------
This project is currenly only designed to run on Linux desktops.
This project is currenly only designed to run on Linux desktops. No effort has
yet been made to make it run on anything else than Ubuntu 16.04 and 18.04
(which are the distributions used for development).
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](https://ardour.org/).
Getting Started
---------------
These instructions are not targetted at end users. There are not 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.
> 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.
You need at least `git` and `python3` installed on your system.
**1. Prerequisites**
sudo apt install git python3
You need `git`, which is probably already installed on your system.
First grab the latest source code:
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.
git clone https://github.com/odahoda/noisicaa.git
cd noisicaa
**2. Set up Nix**
Configure the project. This will create a virtual environment and populate it
with the required 3rd party packages. It will also install missing system
packages - this assumes that you have `sudo` rights on the system, and it might
query you for your password.
The development setup is currently built around the [Nix package manager](https://nixos.org/). If
you already use Nix, then you can skip this section.
./waf configure --download --install-system-packages
> *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).
Now you can build it:
The most basic Nix installation is done with a single command (the
[Nix documentation](https://nixos.org/manual/nix/stable/) describes more options, but we
don't need those):
./waf build
```bash
sh <(curl -L https://nixos.org/nix/install)
```
You can either run it from the build directory:
**3. Get the source code**
bin/noisicaä
Go to some directory where you want to store the source code and clone the git repository:
Or install it to `/usr/local`:
```bash
git clone https://git.odahoda.de/pink/noisicaa.git
```
sudo ./waf install
That should create a directory `noisicaa`, so now go there:
```bash
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:
```bash
nix-shell
```
**5. Configure and build**
Once inside the Nix shell and all dependencies available, the actual build process is pretty simple
and standard (using [waf](https://waf.io/) as the build system):
```bash
./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:
```bash
bin/noisicaa-dev
```