From e8c750cb238f8f666d6fef0bb0b3e4f834e14d07 Mon Sep 17 00:00:00 2001 From: NSynth Super Date: Tue, 11 Dec 2018 16:27:09 +0000 Subject: [PATCH] Updates to readme files --- app/readme.md | 10 ++++++++-- audio/readme.md | 2 +- case/readme.md | 2 +- linux/readme.md | 2 +- pcb_hardware/README.md | 2 +- readme.md | 24 +++++++++++++++++------- 6 files changed, 29 insertions(+), 13 deletions(-) diff --git a/app/readme.md b/app/readme.md index 508969c..bf74dd1 100644 --- a/app/readme.md +++ b/app/readme.md @@ -21,7 +21,7 @@ This document includes a guide for setting up the application, and additional de $ scp -r open-nsynth-super-master pi@:~ ``` -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. @@ -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 @@ -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.) diff --git a/audio/readme.md b/audio/readme.md index 85c7b1f..7e3d135 100644 --- a/audio/readme.md +++ b/audio/readme.md @@ -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. diff --git a/case/readme.md b/case/readme.md index 210d237..d3845dc 100644 --- a/case/readme.md +++ b/case/readme.md @@ -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 diff --git a/linux/readme.md b/linux/readme.md index 6557dc6..ad7935e 100644 --- a/linux/readme.md +++ b/linux/readme.md @@ -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. diff --git a/pcb_hardware/README.md b/pcb_hardware/README.md index 3076253..902674c 100644 --- a/pcb_hardware/README.md +++ b/pcb_hardware/README.md @@ -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: diff --git a/readme.md b/readme.md index 28f9a26..54f9bb7 100644 --- a/readme.md +++ b/readme.md @@ -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. @@ -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). @@ -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= of= +$ bzcat | sudo dd of= ``` 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.** @@ -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. @@ -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). @@ -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.