Skip to content

Commit

Permalink
PolySort
Browse files Browse the repository at this point in the history
  • Loading branch information
chinenual committed Jul 19, 2023
1 parent c098fcd commit 4a67f6f
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## 2.6.0

* New modules, SplitSort and MergeSort, split and merge polyphonic cables while sorting the channels. Sort criteria can be shared across modules via a LINK cable. A reimplementation of Aria Salvatrice's Splort and Smerge modules.
* A related module, PolySort, sorts polyphonic signals, optionally reusing sort order foe each signal.

## 2.5.0

Expand Down
25 changes: 25 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ The [Changelog](./CHANGELOG.md) describes changes.
[![module-screenshot](./doc/Inv.png)](#inv)
[![module-screenshot](./doc/SplitSort.png)](#splitsort)
[![module-screenshot](./doc/MergeSort.png)](#mergesort)
[![module-screenshot](./doc/PolySort.png)](#polysort)

* [MIDI Recorder](#midi-recorder) - a polyphonic multi-track recorder
to convert CV to standard MIDI files.
Expand All @@ -34,6 +35,8 @@ The [Changelog](./CHANGELOG.md) describes changes.
* [SplitSort](#splitsort) - Split a polyphonic cable and optionally sort the channels, with possibility to share sort criteria with another SplitSort or MergeSort.

* [MergeSort](#mergesort) - Merge monophonic cables into a polyphonic output and optionally sort the channels, with possibility to share sort criteria with another SplitSort or MergeSort.

* [PolySort](#polysort) - Sort polyphonic signals, optionally reusing the same sort order as other inputs.

### MIDI Recorder

Expand Down Expand Up @@ -320,6 +323,28 @@ Outputs:

* **Link** - a polyphonic signal that can be used to control the sort order of another MergeSort or SplitSort module. Can be daisy chained - the first module in the chain determines the sort order.

### PolySort

![module-screenshot](./doc/PolySort.png)

Sort polyphonic signals, optionally reusing the same sort order as other inputs. Sorted output remain in sync with one another at the sample level.

Buttons:

* **Link** - When pressed, the input is sorted using the same sort order and the previous input above it. When unpressed, the input is sorted on its own.

Inputs:

* **In** - 10 separate polyphonic inputs.

Outputs:

* **Out** - 10 polyphonic sorted output corresponding to each input.

For example, an alternate way to sort MIDI similar to the example above for SplitSort](#splitsort) would be:

![module-screenshot](./doc/PolySort-chained.png)


## Acknowledgements

Expand Down
12 changes: 11 additions & 1 deletion plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"slug": "Chinenual-VCV",
"name": "Chinenual",
"version": "2.6.0-beta1",
"version": "2.6.0-beta2",
"license": "GPL-3.0-or-later",
"brand": "Chinenual",
"author": "Steve Tynor",
Expand Down Expand Up @@ -97,6 +97,16 @@
"polyphonic",
"utility"
]
},
{
"slug": "PolySort",
"name": "Polyphonic signal sorter with linked sort",
"description": "Sorts polyphonic signals, optionally linking the sort order to other signals",
"manualUrl": "https://github.com/chinenual/Chinenual-VCV/blob/main/README.md#polysort",
"tags": [
"polyphonic",
"utility"
]
}
]
}
2 changes: 1 addition & 1 deletion src/plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ void init(Plugin* p)
pluginInstance = p;

// Add modules here
// p->addModel(modelMyModule);
p->addModel(modelMIDIRecorder);
p->addModel(modelMIDIRecorderCC);
p->addModel(modelDrumMap);
Expand All @@ -16,6 +15,7 @@ void init(Plugin* p)
p->addModel(modelInv);
p->addModel(modelSplitSort);
p->addModel(modelMergeSort);
p->addModel(modelPolySort);

// Any other plugin initialization may go here.
// As an alternative, consider lazy-loading assets and lookup tables when your
Expand Down
1 change: 1 addition & 0 deletions src/plugin.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ extern Model* modelMergeSort;
extern Model* modelMIDIRecorder;
extern Model* modelMIDIRecorderCC;
extern Model* modelNoteMeter;
extern Model* modelPolySort;
extern Model* modelSplitSort;
extern Model* modelTint;

0 comments on commit 4a67f6f

Please sign in to comment.