Update README for the new nix world.
parent
50d6be3954
commit
e07c71fb16
127
README.md
127
README.md
|
@ -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
|
||||
```
|
||||
|
|
Loading…
Reference in New Issue