Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/p3r7/librarian


https://github.com/p3r7/librarian

midi mod monome-norns norns

Last synced: 7 days ago
JSON representation

Awesome Lists containing this project

README

        

# librarian

![](./rsc/img/librarian_5x.png)

mod that allows binding external hw to norns params.

for now configuration has to be done manually by editing a conf file.

## configuration

hw devices need to be listed under the `.device` field.

each hw device takes the following fields:

| field | type | mandatory | description | default value |
|----------|-------------------------|--------------------|-----------------------------------------------------|-------------------------------|
| `model` | `string` | :heavy_check_mark: | model of the device | |
| `device` | `string` | :x: | name of the midi device us to communicate w/ the hw | `ALL` (sends & listen to all) |
| `ch` | `int` | :heavy_check_mark: | main midi channel | |
| `params` | `map[string]` | :x: | additional configuration supported by the hw | `{}` |

## example configuration

create file `/home/we/dust/data/librarian/default.inventory`

```lua
return {
devices = {
{
model = "nord_drum_2",
device = 'ALL',
ch = 10,
params = {
voice_channels = {1, 2, 3, 4, 5, 6},
global_channel_notes = {60, 62, 64, 65, 67, 69},
}
}
},
version = "0.1"
}
```

## supported devices

#### Arturia Keystep (`arturia_keystep_32`)

[implem](./lib/models/arturia_keystep_32.lua), [manual (PDF)](http://downloads.arturia.com/products/keystep/manual/KeyStep_Manual_1_0_0_EN.pdf)

the most basic Keystep in the range.

if connected to norns over USB, you don't hve to configure the `device` as `"Arturia KeyStep 32"` is assumed by default. otherwise (using midi ports) you'd have to precise the name of the midi device it is connected to (or when in doubt use `"ALL"`).

#### Alesis Akira (`alesis_akira`)

WARN: very wip, untested

[implem](./lib/models/alesis_akira.lua), [manual (PDF)](https://archive.org/details/manualzz-id-1311965)

a powerful multi effect. rack version of the Ineko, related to the ModFx series.

#### Eventide H3000 (`eventide_h3000`)

WARN: incomplete implem

![](./rsc/img/device/h3000_5x.png)

[implem](./lib/models/eventide_h3000.lua), [manual (PDF)](https://cdn.eventideaudio.com/uploads/2021/09/H3000-Service.pdf)

maybe the most ubiquitous studio multi effect.

partial support for bilateral editing (on algos that are supported).

sadly, extracting the current `pgm_id` from PGM DUMP isn't reliable past a given index. so, in order to work properly, this profile needs to be fed a file [`~/dust/data/librarian/h3000_pgm_list.lua`](./data/h3000_pgm_list.lua) (dumped using [`h3000_pgm_scanner.lua`](https://github.com/p3r7/h3000/blob/main/h3000_pgm_scanner.lua))

| param | type | mandatory | default (factory) value | comment |
|-------------|-------|-----------|-------------------------|---------------------------------------------------------------------|
| `device_id` | `int` | :x: | `0` | unique H3000 midi id, set to a different value if you customized it |

#### Meng Qi Wingie2

WARN: very wip, untested

[implem](./lib/models/meng_qi_wingie2.lua), [manual (PDF)](https://static1.squarespace.com/static/56122b94e4b01402b90cce28/t/64e5efea36c20464d084b93e/1692790765339/Wingie2+Manual+v3.1+-+EN.pdf)

#### Nord Drum 2 (`nord_drum_2`)

![](./rsc/img/device/nord_drum_2_5x.png)

[implem](./lib/models/nord_drum_2.lua), [manual (PDF)](https://www.nordkeyboards.com/sites/default/files/files/downloads/manuals/nord-drum-2/Nord%20Drum%202%20English%20User%20Manual%20v3.0x%20Edition%20F.pdf)

the Nord Drum 2 is a drum synth exposing 6 completely individual voices.

each voice can be triggered through the main midi channel (factory default `10`) w/ dedicated notes (`global_channel_notes`) or through dedicated midi channels (`voice_channels`), in which case any note value can be send to play the voice melodically.

the global channel approach works better w/ percusive sequencer scripts (such as `argen`) & traditional dum kit presets (bank `#1` & `#2`).

the individual voice channel approach works better w/ melodic sequencers (`awake`, `less_concepts`, `washi`...) & presets in bank `#3`.

| param | type | mandatory | default (factory) value | comment |
|------------------------|---------|-----------|----------------------------|------------------------------------------------------------------------------|
| `voice_channels` | `int[]` | :x: | `{1, 2, 3, 4, 5, 6}` | additional midi channels that can be used to play & access individual voices |
| `global_channel_notes` | `int[]` | :x: | `{60, 62, 64, 65, 67, 69}` | midi notes to trig individual voices using the global midi channel |

## adding support to new models

see [`DEV_GUIDE.md`](./DEV_GUIDE.md)