Skip to content

Commit

Permalink
Updates to readme files
Browse files Browse the repository at this point in the history
  • Loading branch information
nsynthsuper committed Jan 4, 2019
1 parent cb7af1e commit e8c750c
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 13 deletions.
10 changes: 8 additions & 2 deletions app/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ This document includes a guide for setting up the application, and additional de
$ scp -r open-nsynth-super-master pi@<DEVICE IP ADDRESS>:~
```

2. These instructions assume that you have run the setup script from the [provisioning readme](../linux), which establishes the file structure used in this guide.
2. These instructions assume that you have run the setup script from the [provisioning readme](../linux), which establishes the file structure used in this guide.

On the Pi, navigate to the openFrameworks apps directory, and create a new directory for the ```open-nsynth``` application.

Expand All @@ -30,7 +30,7 @@ This document includes a guide for setting up the application, and additional de
$ mkdir open-nsynth
```

3. Copy the contents of the app directory in this repository into the openFrameworks app directory you just created on the device.
3. Copy the contents of the app directory in this repository into the openFrameworks app directory you just created on the device.

```
$ cp -r /home/pi/open-nsynth-super-master/app/open-nsynth /home/pi/opt/of/apps/open-nsynth
Expand Down Expand Up @@ -67,6 +67,12 @@ Use `corners: instruments` to assign instruments to the corners of the interface
### MIDI channel
The default MIDI device should be unchanged, while the channel can be safely altered with the `channel` property.

### Loop points
There is a default audio looping point defined in the settings file. By tweaking the values of `loopStart` and `loopEnd` you can change the point in the sample where the device will loop notes. Looping can be enabled and disabled with the `looping` boolean.

### Patch Saving
The patch saving feature in version 1.2.0 enables storing and recalling settings. The path for this file can be set with the `patchFile` property.

# Deploying new sounds to the device
Any sounds that you've created using the [audio pipeline](../audio) should be placed in a directory on the device. As this can be many gigabytes of audio data, it's recommended that you remove the SD card from the device and copy locally using a Linux computer. (You may need to wait for `fsck` to run when you reinsert the card to the device and boot up for the first time after copying.)

Expand Down
2 changes: 1 addition & 1 deletion audio/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ A fast computer is required to produce audio in a reasonable amount of time; how
- Number of example pitches
- Grid resolution

As an example, a complex interpolation task (e.g. to produce the sounds in the [large example OS image](https://storage.googleapis.com/open-nsynth-super/images/onss_1.1_full.img)) included 4 different sounds in each corner of the instrument for a total of 256 different permutations, a 9x9 grid resolution, and 15 example pitches. (The source audio for generating these patches is available [here](https://storage.googleapis.com/open-nsynth-super/audio/onss_source_audio.tar.gz).)
As an example, a complex interpolation task (e.g. to produce the sounds in the [large example OS image](https://storage.googleapis.com/open-nsynth-super/images/onss_1.2.0_full.img.bz2)) included 4 different sounds in each corner of the instrument for a total of 256 different permutations, a 9x9 grid resolution, and 15 example pitches. (The source audio for generating these patches is available [here](https://storage.googleapis.com/open-nsynth-super/audio/onss_source_audio.tar.gz).)

For reference, a machine with 8 NVidia K80 GPUs, 128GB RAM and 8 CPU cores can generate the nearly 120,000 audio samples produced by this example in approximately 36 hours with a conservative batch size of 512.

Expand Down
2 changes: 1 addition & 1 deletion case/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ There are two 3D-printable dial designs for the Open NSynth Super's instrument s
- 4 x 3.2mm self retaining spacers
- Allen keys or screwdriver (depending on screw socket)

A bill of materials for the whole project is [available here](https://storage.googleapis.com/open-nsynth-super/onss_bom.xlsx).
A bill of materials for the whole project is [available here](https://storage.googleapis.com/open-nsynth-super/onss_bom_1.2.0.xlsx).

# Building the case

Expand Down
2 changes: 1 addition & 1 deletion linux/readme.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Open NSynth Super Device provisioning

Use this guide to provision a new Open NSynth Super device from scratch. You may wish to skip this process and download one of the pre-made images: [64GB with all sample audio](https://storage.googleapis.com/open-nsynth-super/images/onss_1.1_full.img) or the [16GB 'lite' version](https://storage.googleapis.com/open-nsynth-super/images/onss_1.0_lite.img).
Use this guide to provision a new Open NSynth Super device from scratch. You may wish to skip this process and download one of the pre-made images: [64GB with all sample audio](https://storage.googleapis.com/open-nsynth-super/images/onss_1.2.0_full.img.bz2) or the [16GB 'lite' version](https://storage.googleapis.com/open-nsynth-super/images/onss_1.2.0_lite.img.bz2).

As part of the process of setting up a new system, you will also have to install the Open NSynth Super software application and firmware for the Open NSynth Super mainboard. There are separate documents in this repository to help with this, which are linked in this step-by-step guide. Creating a new OS image will take 1-2 hours (depending on your internet connection speed) however most of this time is spent downloading and compiling software; the 'hands-on' time required is considerably shorter.

Expand Down
2 changes: 1 addition & 1 deletion pcb_hardware/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

This folder contains all of the source files for making your own Open NSynth Super PCB hardware: a KiCAD project for the PCB in `projects/open-nsynth-super`, rendered gerber files from the KiCAD project in `render/`, and exported schematics from the KiCAD project in `schematics/`.

The PCB design includes a mix of SMT and through-hole components. It is possible to assemble individual boards by hand in a few hours, however for multiple boards it would be advisable to order multiple fully assembled (or at least SMT assembled) PCBs. If you wish to have the PCB manufactured, the files in `render/` should be all you need; additionally, a bill of materials is [available here](https://storage.googleapis.com/open-nsynth-super/onss_bom.xlsx).
The PCB design includes a mix of SMT and through-hole components. It is possible to assemble individual boards by hand in a few hours, however for multiple boards it would be advisable to order multiple fully assembled (or at least SMT assembled) PCBs. If you wish to have the PCB manufactured, the files in `render/` should be all you need; additionally, a bill of materials is [available here](https://storage.googleapis.com/open-nsynth-super/onss_bom_1.2.0.xlsx).

For reference, development PCBs were fabricated at the following specification:

Expand Down
24 changes: 17 additions & 7 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Open NSynth Super is super simple to integrate into any production music rig. Li

The physical interface of Open NSynth Super is constructed around a square touch interface. Using dials in the corners of the touch surface, musicians can select four source sounds and use the touch interface to explore the sounds that the NSynth algorithm has generated between them. In addition, the instrument also has controls for tuning the new sounds via the fine controls.

**(A) Instrument selectors** - These rotary dials are used to select the instruments that are assigned to the corners of the interface.
**(A) Instrument selectors & patch storage** - These rotary dials are used to select the instruments that are assigned to the corners of the interface. In version 1.2.0, these selectors can be pushed down to store or clicked to recall settings patches.

**(B) OLED display** - A high-contrast display shows you the state of the instrument and additional information about the controls that you are interacting with.

Expand All @@ -63,7 +63,7 @@ There are several distinct components to each Open NSynth Super unit: a custom P

The electronics are built around a Raspberry Pi 3 running Raspbian Linux, and a custom PCB used to read the inputs and control the outputs. A microcontroller on the PCB manages the physical inputs: there are four rotary encoders on the four corners for instrument selection; six potentiometers below the interface to control the position, envelope, and volume settings; and a capacitive grid on the surface of the PCB (exposed through the top layer of the case) used to select the mixing point of the four instruments.

More information on the electronics, hardware, and firmware can be found [here](/pcb_hardware), and [here](/firmware). A complete bill of materials for the case and electronics is available in this Excel [spreadsheet](https://storage.googleapis.com/open-nsynth-super/onss_bom.xlsx).
More information on the electronics, hardware, and firmware can be found [here](/pcb_hardware), and [here](/firmware). A complete bill of materials for the case and electronics is available in this Excel [spreadsheet](https://storage.googleapis.com/open-nsynth-super/onss_bom_1.2.0.xlsx).

##### Software
Open NSynth Super runs a multisampler audio application built on [openFrameworks](http://openframeworks.cc) to process incoming MIDI note data and generate sound output. More information about this application can be found in the [software readme file](/app).
Expand Down Expand Up @@ -118,14 +118,14 @@ In order to test the board, you will need to have a working Open NSynth Super so

### 3. Prepare the SD card

There are two preconfigured OS images available, both loaded with sample audio and fully configured for use with NSynth Super. Depending on the size of your SD card, you can choose either the [64GB image](https://storage.googleapis.com/open-nsynth-super/images/onss_1.1_full.img) or [16GB image](https://storage.googleapis.com/open-nsynth-super/images/onss_1.0_lite.img).
There are two preconfigured OS images available, both loaded with sample audio and fully configured for use with NSynth Super. Depending on the size of your SD card, you can choose either the [64GB image](https://storage.googleapis.com/open-nsynth-super/images/onss_1.2.0_full.img.bz2) or [16GB image](https://storage.googleapis.com/open-nsynth-super/images/onss_1.2.0_lite.img.bz2).

The easiest way to create the SD card is to use GUI software like [Etcher](https://etcher.io/), Win32DiskImager, or the [SD Card Association's](https://www.sdcard.org/downloads/formatter_4/) formatter to burn the example image to a card.

Alternatively, you can use the ``dd`` command natively on *NIX systems:
The supplied images are compressed in bz2 format. These can be decompressed on the fly when writing to an SD card using the following command:

```
$ sudo dd if=<IMAGE NAME> of=<DISK NAME>
$ bzcat <IMAGE NAME> | sudo dd of=<DISK NAME>
```

Connect a keyboard and screen to the Raspberry Pi, insert the SD card, and plug a USB power cable into the socket on the Open NSynth Super mainboard. You should see the Pi booting up on the connected display; when you receive a prompt, you can login with the default username and password: pi / raspberry. **Note that the device might run a file system check when you first boot up from the new card – this will take about 5 minutes depending on the size of the disk.**
Expand Down Expand Up @@ -172,7 +172,7 @@ $ sudo poweroff

### 5. Verify the installation

Before assembling the shell and 'finishing' the instrument, it's important to check that everything is functioning correctly. To do this, plug in a MIDI device (like a keyboard), a pair of headphones or speakers, and power on the instrument.
Before assembling the shell and 'finishing' the instrument, it's important to check that everything is functioning correctly. To do this, plug in a MIDI device (like a keyboard), a pair of headphones or speakers, and power on the instrument.

After a few seconds, you should see the grid interface appear on the OLED screen. Move your finger around the touch interface to test its responsiveness. Next, adjust the six controls at the base of the unit; the UI should update according to the control that you are adjusting. Finally, test the four instrument selection encoders, which will scroll through an instrument list on the screen.

Expand All @@ -193,7 +193,7 @@ With the case assembled, firmware installed, and the device tested, you're ready

# Audio creation overview

Sounds for Open NSynth Super are created using the neural synthesis technique implemented by Google Brain’s [Magenta](https://magenta.tensorflow.org/) team as part of their NSynth project. You can read more about Magenta and NSynth on their [project page](https://github.com/tensorflow/magenta/tree/master/magenta/models/nsynth).
Sounds for Open NSynth Super are created using the neural synthesis technique implemented by Google Brain’s [Magenta](https://magenta.tensorflow.org/) team as part of their NSynth project. You can read more about Magenta and NSynth on their [project page](https://github.com/tensorflow/magenta/tree/master/magenta/models/nsynth).

Because generating audio requires a great deal of processing power, this repository includes a set of scripts that you can run on a server which will take any audio recordings of your choice and convert them into a format compatible with the instrument. This audio pipeline is built on top of the NSynth implementation available through [Magenta's GitHub page](https://github.com/tensorflow/magenta/tree/master/magenta/models/nsynth).

Expand All @@ -210,6 +210,16 @@ The pipeline has the following stages:

---

### Changelog

##### Version 1.2.0
The latest version of Open NSynth Super is 1.2.0. This version adds support for storage and recall of patches and settings, swaps the instrument selector encoders for push-button variants, and introduces note looping to enable sustaining notes beyond their original sample length. Version 1.2.0 software is backwards compatible with version 1.0.0 hardware, although the push-button patch storage feature is not available.

##### Version 1.0.0
Version 1.0.0 is tagged in this repository. The example disk images for software version 1.0.0 are available for download as a [64GB image](https://storage.googleapis.com/open-nsynth-super/images/onss_1.1_full.img) or [16GB image](https://storage.googleapis.com/open-nsynth-super/images/onss_1.0_lite.img).

---

### Notes
This is a collaborative effort between Google Creative Lab and [Magenta](https://github.com/tensorflow/magenta), [Kyle McDonald](https://github.com/kylemcdonald), and our partners at [RRD Labs](https://github.com/dgym). This is not an official Google product.

Expand Down

0 comments on commit e8c750c

Please sign in to comment.