Add links
This commit is contained in:
644
static/archive/empr-cl-epss77.txt
Normal file
644
static/archive/empr-cl-epss77.txt
Normal file
@@ -0,0 +1,644 @@
|
||||
[1] logo [2]
|
||||
|
||||
• [3]about
|
||||
|
||||
• [4]signls
|
||||
□ [5]Overview
|
||||
□ [6]Installation
|
||||
☆ [7]Linux & macOS
|
||||
☆ [8]Windows
|
||||
☆ [9]Build it yourself
|
||||
□ [10]Usage
|
||||
☆ [11]Basic commands
|
||||
☆ [12]Keyboard mapping
|
||||
☆ [13]MIDI
|
||||
□ [14]Workflow
|
||||
☆ [15]User Interface
|
||||
☆ [16]Grid
|
||||
☆ [17]Nodes
|
||||
☆ [18]Signals
|
||||
☆ [19]Parameters
|
||||
☆ [20]Note parameters
|
||||
☆ [21]CC parameters
|
||||
☆ [22]Timing
|
||||
☆ [23]Transposition
|
||||
☆ [24]Randomization
|
||||
☆ [25]Bank
|
||||
□ [26]Nodes reference
|
||||
☆ [27] Bang
|
||||
☆ [28] Euclid
|
||||
☆ [29] Pass
|
||||
☆ [30] Spread
|
||||
☆ [31] Cycle
|
||||
☆ [32] Dice
|
||||
☆ [33] Toll
|
||||
☆ [34] Zone
|
||||
☆ [35] Hole
|
||||
|
||||
• [36]sektron
|
||||
|
||||
Overview
|
||||
|
||||
• [37]source code • [38]report an issue
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
[39]Signls by emprcl
|
||||
|
||||
|
||||
|
||||
Signls (pronounced signals) is a non-linear, generative MIDI sequencer designed
|
||||
for music composition and live performances, all within the terminal. It allows
|
||||
you to create complex, evolving musical patterns using a grid-based approach.
|
||||
You can place nodes on the grid, and these nodes can emit signals, relay them,
|
||||
or trigger MIDI notes. There are 9 different types of nodes to explore, each
|
||||
with its own unique behavior.
|
||||
|
||||
With Signls, you can generate dynamic, generative music, meaning that the
|
||||
patterns evolve and change over time. It's designed to give you a powerful
|
||||
creative tool to build intricate sequences without being stuck in a rigid
|
||||
timeline or structure.
|
||||
|
||||
It takes inspiration from [40]Orca and [41]Nodal.
|
||||
|
||||
Features
|
||||
|
||||
• Non-linear sequencing: unlike traditional sequencers, Signls doesn't force
|
||||
you into a single direction. Your sequences can move and shift in multiple
|
||||
ways, allowing for complex and unique arrangements.
|
||||
• Randomize everything: create evolving musical patterns that shift over
|
||||
time, adding depth and unpredictability to your compositions.
|
||||
• Live performance: designed to be used in real-time, making it a adequate
|
||||
tool for live performances where improvisation is key.
|
||||
• Keyboard first: Signls operates directly from your terminal, giving you
|
||||
control in a simple, lightweight environment, where everything is
|
||||
controllable via keyboard.
|
||||
• Cross-platform: runs on Linux, macOS, and Windows
|
||||
|
||||
Installation
|
||||
|
||||
Signls is available for Linux, macOS and Windows.
|
||||
|
||||
[42]Download the last release for your platform.
|
||||
|
||||
Linux & macOS
|
||||
|
||||
In your terminal:
|
||||
|
||||
# Extract files
|
||||
mkdir -p signls && tar -zxvf signls_VERSION_PLATFORM.tar.gz -C signls
|
||||
cd signls
|
||||
|
||||
# Run signls
|
||||
./signls
|
||||
|
||||
Windows
|
||||
|
||||
We recommend using [43]Windows Terminal with a good monospace font like
|
||||
[44]Iosevka to display Signls correctly on Windows.
|
||||
|
||||
Some specific Windows [45]bugs regarding unicode characters prevent us to
|
||||
display some UI elements (randomization indicator or non-empty bank slot)
|
||||
but it should not degrade the experience that much.
|
||||
|
||||
Unzip the archive and, in the same directory, run:
|
||||
|
||||
.\signls.exe
|
||||
|
||||
Replace ./signls by .\signls.exe for every following commands.
|
||||
|
||||
Build it yourself
|
||||
|
||||
You can also [46]build it yourself if your want to.
|
||||
|
||||
Usage
|
||||
|
||||
Basic commands
|
||||
|
||||
# Run signls
|
||||
./signls
|
||||
|
||||
# Display current version
|
||||
./signls --version
|
||||
|
||||
Hit ? to see all keybindings. esc to quit.
|
||||
|
||||
Keyboard mapping
|
||||
|
||||
Keys mapping is fully customizable. After running signls for the first time, a
|
||||
config.json is created. You can edit all the keys inside it.
|
||||
|
||||
You can select one of the default keyboard layouts available:
|
||||
|
||||
# QWERTY
|
||||
./signls --keyboard qwerty
|
||||
|
||||
# AZERTY
|
||||
./signls --keyboard azerty
|
||||
|
||||
# QWERTY MAC
|
||||
./signls --keyboard qwerty-mac
|
||||
|
||||
# AZERTY MAC
|
||||
./signls --keyboard azerty-mac
|
||||
|
||||
Default keybindings
|
||||
|
||||
For qwerty keyboards, here's the default mapping:
|
||||
|
||||
• space play or stop
|
||||
• tab show bank
|
||||
• 1 ... 9 add nodes
|
||||
• ↑ ↓ ← → move cursor
|
||||
• shift+↑ ↓ ← → multiple selection (or modify alt parameter mode in edit
|
||||
mode)
|
||||
• ctrl+↑ ↓ ← → modify selected node direction (modify parameter or alt
|
||||
parameter value)
|
||||
• . modify selected parameter
|
||||
• backspace remove selected nodes (or grid in bank)
|
||||
• enter edit selected nodes
|
||||
• m toggle selected nodes mute
|
||||
• M mute/unmute all selected nodes
|
||||
• / trigger selected node
|
||||
• - = modify tempo
|
||||
• ' ; modify root note
|
||||
• " : modify scale
|
||||
• ctrl+c x v copy, cut, paste selection
|
||||
• escape exit parameter edit or bank selection
|
||||
• f2 edit midi configuration
|
||||
• f10 fit grid to window
|
||||
• ? show help
|
||||
• ctrl+q quit
|
||||
|
||||
Key binding reference
|
||||
|
||||
• [47]qwerty
|
||||
• [48]qwerty mac
|
||||
• [49]azerty
|
||||
• [50]azerty mac
|
||||
|
||||
MIDI
|
||||
|
||||
Signls doesn't generate sound on its own, but it works seamlessly with MIDI
|
||||
software or hardware. You can connect it to your favorite synthesizers, virtual
|
||||
instruments, or any MIDI-compatible devices for live performances or
|
||||
production.
|
||||
|
||||
On each [51]node, you can configure NoteOn and NoteOff messages, using [52]note
|
||||
parameters. Each node can also send up to 8 CC messages, using [53]CC
|
||||
parameters.
|
||||
|
||||
Press the f2 to open the MIDI configuration menu, where you can adjust three
|
||||
parameters:
|
||||
|
||||
• Clock: enable or disable clock send messages
|
||||
• Transport: enable or disable transport start and stop messages
|
||||
• Device: select the midi output device
|
||||
|
||||
Use ← and → to navigate between the parameters, and modify their values with
|
||||
ctrl+↑ and ctrl+↓.
|
||||
|
||||
On macOS, you might need to [54]enable the IAC driver if you're only using
|
||||
webmidi instruments.
|
||||
|
||||
Some companion apps that receive MIDI for testing Signls:
|
||||
|
||||
• [55]Webmidi synths
|
||||
• [56]Enfer ([57]github) works only on linux
|
||||
• [58]QSynth
|
||||
|
||||
Workflow
|
||||
|
||||
User Interface
|
||||
|
||||
UI 1
|
||||
|
||||
1. Grid: The [59]grid is where you place [60]nodes. Each nodes displays its
|
||||
type and emit/relay directions. Signals are displayed in white.
|
||||
2. Cursor: The cursor is the tool to place, select or edit nodes.
|
||||
3. Selection indicator: Shows the currently selected [61]nodes.
|
||||
4. Mode indicator: Shows the current mode - move, [62]edit or [63]bank.
|
||||
5. Selector position: Shows the current selector position.
|
||||
6. Grid size: Shows the current grid size. Useful to know if the grid is
|
||||
bigger than the current terminal window.
|
||||
7. Tempo: Shows the current [64]tempo in bpm (beats per minute).
|
||||
8. Play status: Shows if the grid is currently playing (▶) or stopped (■).
|
||||
Also shows the number of 1/16 notes since it started to play.
|
||||
9. Root key: Shows the current [65]root key.
|
||||
10. Scale: Shows the current [66]scale.
|
||||
11. Bank: Shows the currently selected grid in the [67]bank, and the name of
|
||||
the bank (which is the bank filename).
|
||||
12. Control zone: Shows either [68]grid informations and parameters (move
|
||||
mode), selected [69]node parameters (edit mode) or [70]bank grid slots (
|
||||
bank mode).
|
||||
|
||||
Grid
|
||||
|
||||
The grid serves as a canvas for your sequencing, where you control the flow of
|
||||
MIDI signals across various [71]nodes. You can start or stop the grid's
|
||||
underlying sequencer by pressing space.
|
||||
|
||||
By default, the size of the grid adapts to your terminal size. If you increase
|
||||
the terminal window, the grid will expand accordingly. However, if you decrease
|
||||
the terminal size, the grid remains unchanged to prevent the accidental loss of
|
||||
nodes outside the visible bounds. You can still scroll through the grid even if
|
||||
the terminal is smaller.
|
||||
|
||||
If you want to force the grid to resize and match the terminal (which may
|
||||
result in some nodes being deleted), you can press f10 to do so manually.
|
||||
|
||||
Nodes
|
||||
|
||||
Nodes can perform three main functions based on their type:
|
||||
|
||||
• they can emit new signals
|
||||
• they can relay incoming signals to up to 4 directions
|
||||
• they can trigger MIDI messages
|
||||
|
||||
To add nodes on the grid, move the cursor using the arrow keys and press keys 1
|
||||
to 9 to choose one of the [72]9 available node types.
|
||||
|
||||
To remove nodes from the grid, move the cursor using the arrow keys and press
|
||||
backspace.
|
||||
|
||||
You can manually trigger a node by using /.
|
||||
|
||||
You can mute nodes to temporarily silence their behavior:
|
||||
|
||||
• Press m to toggle mute on the selected nodes.
|
||||
• Press M to force mute sync across all selected nodes, ensuring they are all
|
||||
muted or unmuted together.
|
||||
|
||||
This is useful for controlling which nodes are active during live performances
|
||||
or while experimenting with different parts of your sequence.
|
||||
|
||||
You can easily manage nodes on the grid by copying, cutting, and pasting them
|
||||
using the usual key bindings:
|
||||
|
||||
• ctrl+C to copy,
|
||||
• ctrl+X to cut
|
||||
• ctrl+V to paste.
|
||||
|
||||
To move nodes in bulk, you can select multiple nodes by holding shift + ↑ ↓ ← →
|
||||
to define a selection area. This makes it easy to reposition or replicate parts
|
||||
of your sequence.
|
||||
|
||||
Signals
|
||||
|
||||
A key feature of each node is the direction in which it emits or relays signals
|
||||
. You can configure up to four directions: up, down, left, and right. To modify
|
||||
a node's directions, move the cursor to the desired node and press Ctrl + ↑ ↓ ←
|
||||
→ to add or remove directions. The way a node uses these directions (one or
|
||||
multiple) depends on its specific behavior.
|
||||
|
||||
directions
|
||||
|
||||
Parameters
|
||||
|
||||
Each node has adjustable parameters that you can edit to modify its behavior.
|
||||
To enter node editing mode, move the cursor to the node you want to modify and
|
||||
press enter. The available parameters will appear in the control bar at the
|
||||
bottom. You can navigate between parameters using ← → key and switch between
|
||||
parameter pages with using ↑ ↓ keys.
|
||||
|
||||
To change a parameter value, press ctrl+↑ to increase or ctrl+↓ to decrease it.
|
||||
|
||||
You can edit a parameter value precisely by pressing the . key. This opens a
|
||||
text input where you can type the value manually. Press enter to confirm the
|
||||
change.
|
||||
|
||||
Each node parameter can have up to four alternative values:
|
||||
|
||||
• Main 1 Ctrl+↑/↓: adjusts the main value
|
||||
• Main 2 Ctrl+←/→: adjusts a second value, often used for randomization
|
||||
• Alt 1 Shift+↑/↓: adjusts a third alternative value
|
||||
• Alt 2 Shift+←/→: adjusts a fourth alternative value
|
||||
|
||||
We will refer to these as Main 1, Main 2, Alt 1, and Alt 2 for simplicity
|
||||
|
||||
Each node (except "The Hole") shares five common MIDI parameters.
|
||||
|
||||
UI 2
|
||||
|
||||
Parameters are displayed in two parts if an alternative value (for example [73]
|
||||
randomization) is set:
|
||||
|
||||
1. the actual value: here F5 for the key or 100 for the velocity
|
||||
2. the alternative value: here +8 for the key or -18 for the velocity
|
||||
|
||||
You can edit multiple nodes at once by selecting them together.The common
|
||||
parameters for all selected nodes will be displayed, and any changes you
|
||||
make will apply to all of them simultaneously.
|
||||
|
||||
Note parameters
|
||||
|
||||
The first parameter page will display the note parameters.
|
||||
|
||||
Key (key): key of the MIDI note
|
||||
|
||||
• Value Range: A1 - G10
|
||||
• Main 1: key value for the note
|
||||
• Main 2: randomization range
|
||||
• Alt 1: unused
|
||||
• Alt 2: note modes (random | silent)
|
||||
|
||||
Velocity (vel): intensity of the MIDI note
|
||||
|
||||
• Value Range: 0 - 127
|
||||
• Main 1: velocity value for the note
|
||||
• Main 2: randomization range
|
||||
• Alt 1: unused
|
||||
• Alt 2: unused
|
||||
|
||||
Length (len): duration of the MIDI note.
|
||||
|
||||
• Value Range: 1/64 - inf
|
||||
• Main 1: length value of the note
|
||||
• Main 2: randomization range
|
||||
• Alt 1: unused
|
||||
• Alt 2: unused
|
||||
|
||||
Channel (cha): MIDI channel
|
||||
|
||||
• Value Range: 1 - 16
|
||||
• Main 1: channel value
|
||||
• Main 2: randomization range
|
||||
• Alt 1: unused
|
||||
• Alt 2: unused
|
||||
|
||||
Probability (prb): the chance of triggering the MIDI note
|
||||
|
||||
• Value Range: 0 - 100
|
||||
• Main 1: probability value
|
||||
• Main 2: unused
|
||||
• Alt 1: unused
|
||||
• Alt 2: unused
|
||||
|
||||
CC parameters
|
||||
|
||||
On the second parameter page, you can configure up to 8 MIDI CC messages which
|
||||
will be sent alongside the note messages.
|
||||
|
||||
CC (cc): the control change message
|
||||
|
||||
• Value Range: 0 - 127
|
||||
• Main 1: cc value
|
||||
• Main 2: randomization range
|
||||
• Alt 1: cc number (only for cc mode)
|
||||
• Alt 2: message mode - disabled, cc, after touch, pitch bend, program change
|
||||
|
||||
Timing
|
||||
|
||||
Each position on the grid represents a 1/16 note. You can adjust the tempo (in
|
||||
beats per minute, or BPM) to control how fast signals move across the grid. To
|
||||
modify the tempo, simply press = to increase the BPM or - to decrease it,
|
||||
allowing you to set the pace of your sequence in real time.
|
||||
|
||||
Transposition
|
||||
|
||||
The MIDI notes assigned to each node are fixed. However, when the root key or
|
||||
scale of the grid is changed, these notes are transposed according to the new
|
||||
root key and scale. This means the original note values are shifted in relation
|
||||
to the grid's updated musical context, allowing you to easily adjust the
|
||||
overall harmony without manually changing the notes on each node. The
|
||||
transposition happens relative to the set root and scale, providing a flexible
|
||||
way to experiment with different keys and tonalities.
|
||||
|
||||
To modify the root key and scale, use:
|
||||
|
||||
• ' ; to decrease and increase the root key
|
||||
• " : to cycle through the available scales
|
||||
|
||||
Available scales include the chromatic scale, the 7 diatonic modes, a few
|
||||
pentatonic scales and a tetratonic scale:
|
||||
|
||||
• chromatic
|
||||
• ionian
|
||||
• dorian
|
||||
• phrygian
|
||||
• lydian
|
||||
• mixolydian
|
||||
• aeolian
|
||||
• locrian
|
||||
• pentatonic major
|
||||
• pentatonic minor
|
||||
• hirajoshi
|
||||
• iwato
|
||||
• tetratonic
|
||||
|
||||
Randomization
|
||||
|
||||
You can apply randomization to most node parameters. When editing
|
||||
randomization, you can specify positive or negative randomization values.
|
||||
|
||||
For example, if you set the velocity to 80+5, the random value will be picked
|
||||
between 80 and 85. If you set the velocity to 80-5, the random value will be
|
||||
picked between 75 and 80. This allows for subtle variations in your sequences,
|
||||
adding a layer of unpredictability while keeping control over the range of
|
||||
changes.
|
||||
|
||||
Randomized node keys will always conform to the current [74]scale.
|
||||
|
||||
Bank
|
||||
|
||||
You manage your projects using a bank. When you start the program, you can
|
||||
provide a bank JSON file, or if none is provided, a default file (default.json)
|
||||
will be created or loaded automatically. Each bank can store up to 32 grids.
|
||||
|
||||
./signls --bank my-grids.json
|
||||
|
||||
The grids are saved automatically whenever you make changes or exit the
|
||||
program, so you never have to worry about losing progress.
|
||||
|
||||
To load a specific grid from the bank, press tab to switch to the bank view,
|
||||
then use the arrow keys to select a grid slot and press enter to load it. This
|
||||
allows you to quickly swap between different configurations during live
|
||||
performances or while working on different projects.
|
||||
|
||||
UI 3
|
||||
|
||||
The ̠character under the grid number indicates that the grid slot is not empty.
|
||||
|
||||
Like nodes, you can copy, cut and paste grids in the bank.
|
||||
|
||||
Nodes reference
|
||||
|
||||
Here is a reference guide for all the node types available in Signls. Each node
|
||||
has common [75]note parameters (except for the Hole) like key, velocity,
|
||||
length, channel, and probability. Some nodes also have extra parameters that
|
||||
give them unique behavior.
|
||||
|
||||
bang Bang
|
||||
|
||||
• Description: emits a signal when the grid starts playing and relays signals
|
||||
on all configured directions
|
||||
• Key binding: 1
|
||||
• Extra Parameters: none
|
||||
|
||||
euclid Euclid
|
||||
|
||||
• Description: emits signals based on the euclidean rhythm algorithm,
|
||||
ensuring an even distribution of steps across the grid. Relays signals on
|
||||
all configured directions
|
||||
• Key binding: 2
|
||||
• Extra Parameters:
|
||||
□ Steps (stp): number of total steps in the pattern
|
||||
☆ Value Range: 1 - 128
|
||||
☆ Main 1: steps value
|
||||
☆ Main 2: randomization range
|
||||
☆ Alt 1: unused
|
||||
☆ Alt 2: unused
|
||||
□ Triggers (trg): number of signals to emit within the total steps
|
||||
☆ Value Range: 1 - 128
|
||||
☆ Main 1: triggers value
|
||||
☆ Main 2: randomization range
|
||||
☆ Alt 1: unused
|
||||
☆ Alt 2: unused
|
||||
□ Offset (off): shifts the start point of the pattern
|
||||
☆ Value Range: 0 - 128
|
||||
☆ Main 1: offset value
|
||||
☆ Main 2: randomization range
|
||||
☆ Alt 1: unused
|
||||
☆ Alt 2: unused
|
||||
|
||||
pass Pass
|
||||
|
||||
• Description: passes signals through without affecting their direction. No
|
||||
direction configuration is possible
|
||||
• Key binding: 3
|
||||
• Extra Parameters: none
|
||||
|
||||
spread Spread
|
||||
|
||||
• Description: relays signals on all configured directions, distributing them
|
||||
evenly
|
||||
• Key binding: 4
|
||||
• Extra Parameters: None
|
||||
|
||||
cycle Cycle
|
||||
|
||||
• Description: relays signals in a clockwise direction, starting from the
|
||||
"up" direction, one at a time
|
||||
• Key binding: 5
|
||||
• Extra Parameters: none
|
||||
|
||||
dice Dice
|
||||
|
||||
• Description: relays signals in a randomly selected direction each time it
|
||||
is triggered
|
||||
• Key binding: 6
|
||||
• Extra Parameters: none
|
||||
|
||||
toll Toll
|
||||
|
||||
• Description: relays signals on all configured directions, but only after
|
||||
being triggered a specific number of times
|
||||
• Key binding: 7
|
||||
• Extra Parameters:
|
||||
□ Threshold (thd): the number of times the node must be triggered before
|
||||
it relays a signal
|
||||
☆ Value Range: 1 - no upper limit
|
||||
☆ Main 1: offset value
|
||||
☆ Main 2: randomization range
|
||||
☆ Alt 1: unused
|
||||
☆ Alt 2: unused
|
||||
|
||||
zone Zone
|
||||
|
||||
• Description: relays signals on all configured directions and immediately
|
||||
propagates the trigger to all neighboring nodes, making it ideal for
|
||||
triggering chords
|
||||
• Key binding: 8
|
||||
• Extra Parameters: none
|
||||
|
||||
hole Hole
|
||||
|
||||
• Description: instantly teleports the signal to a specified location on the
|
||||
grid without triggering any notes
|
||||
• Key binding: 9
|
||||
• Extra Parameters:
|
||||
□ Destination (dest): The coordinate of the destination
|
||||
☆ Value Range: 1 - grid width/height
|
||||
☆ Main 1: y-coordinate value of the destination
|
||||
☆ Main 2: x-coordinate value of the destination
|
||||
☆ Alt 1: randomization range for the y-coordinate
|
||||
☆ Alt 2: randomization range for the y-coordinate
|
||||
|
||||
|
||||
References:
|
||||
|
||||
[1] https://empr.cl/
|
||||
[2] javascript:void(0);
|
||||
[3] https://empr.cl/
|
||||
[4] https://empr.cl/signls/
|
||||
[5] https://empr.cl/signls/#overview
|
||||
[6] https://empr.cl/signls/#installation
|
||||
[7] https://empr.cl/signls/#linux-macos
|
||||
[8] https://empr.cl/signls/#windows
|
||||
[9] https://empr.cl/signls/#build-it-yourself
|
||||
[10] https://empr.cl/signls/#usage
|
||||
[11] https://empr.cl/signls/#basic-commands
|
||||
[12] https://empr.cl/signls/#keyboard-mapping
|
||||
[13] https://empr.cl/signls/#midi
|
||||
[14] https://empr.cl/signls/#workflow
|
||||
[15] https://empr.cl/signls/#user-interface
|
||||
[16] https://empr.cl/signls/#grid
|
||||
[17] https://empr.cl/signls/#nodes
|
||||
[18] https://empr.cl/signls/#signals
|
||||
[19] https://empr.cl/signls/#parameters
|
||||
[20] https://empr.cl/signls/#note-parameters
|
||||
[21] https://empr.cl/signls/#cc-parameters
|
||||
[22] https://empr.cl/signls/#timing
|
||||
[23] https://empr.cl/signls/#transposition
|
||||
[24] https://empr.cl/signls/#randomization
|
||||
[25] https://empr.cl/signls/#bank
|
||||
[26] https://empr.cl/signls/#nodes-reference
|
||||
[27] https://empr.cl/signls/#bang
|
||||
[28] https://empr.cl/signls/#euclid
|
||||
[29] https://empr.cl/signls/#pass
|
||||
[30] https://empr.cl/signls/#spread
|
||||
[31] https://empr.cl/signls/#cycle
|
||||
[32] https://empr.cl/signls/#dice
|
||||
[33] https://empr.cl/signls/#toll
|
||||
[34] https://empr.cl/signls/#zone
|
||||
[35] https://empr.cl/signls/#hole
|
||||
[36] https://empr.cl/sektron/
|
||||
[37] https://github.com/emprcl/signls
|
||||
[38] https://github.com/emprcl/signls/issues/new
|
||||
[39] https://emprcl.itch.io/signls
|
||||
[40] https://100r.co/site/orca.html
|
||||
[41] https://nodalmusic.com/
|
||||
[42] https://emprcl.itch.io/signls
|
||||
[43] https://apps.microsoft.com/detail/9n0dx20hk701
|
||||
[44] https://typeof.net/Iosevka/
|
||||
[45] https://github.com/emprcl/signls/issues/5
|
||||
[46] https://github.com/emprcl/signls?tab=readme-ov-file#build-it-yourself
|
||||
[47] https://github.com/emprcl/signls/blob/7d9c8016e99fc9c973f61764fb9801d92eee21db/filesystem/keymap.go#L183
|
||||
[48] https://github.com/emprcl/signls/blob/7d9c8016e99fc9c973f61764fb9801d92eee21db/filesystem/keymap.go#L244
|
||||
[49] https://github.com/emprcl/signls/blob/7d9c8016e99fc9c973f61764fb9801d92eee21db/filesystem/keymap.go#L62
|
||||
[50] https://github.com/emprcl/signls/blob/7d9c8016e99fc9c973f61764fb9801d92eee21db/filesystem/keymap.go#L123
|
||||
[51] https://empr.cl/signls/#nodes
|
||||
[52] https://empr.cl/signls/#note-parameters
|
||||
[53] https://empr.cl/signls/#cc-parameters
|
||||
[54] https://discussions.apple.com/thread/8096575?answerId=32319872022&sortBy=rank#32319872022
|
||||
[55] https://synth.playtronica.com/
|
||||
[56] https://neauoire.github.io/Enfer/
|
||||
[57] https://github.com/neauoire/Enfer
|
||||
[58] https://qsynth.sourceforge.io/
|
||||
[59] https://empr.cl/signls/#grid
|
||||
[60] https://empr.cl/signls/#nodes
|
||||
[61] https://empr.cl/signls/#nodes
|
||||
[62] https://empr.cl/signls/#parameters
|
||||
[63] https://empr.cl/signls/#bank
|
||||
[64] https://empr.cl/signls/#timing
|
||||
[65] https://empr.cl/signls/#transposition
|
||||
[66] https://empr.cl/signls/#transposition
|
||||
[67] https://empr.cl/signls/#bank
|
||||
[68] https://empr.cl/signls/#grid
|
||||
[69] https://empr.cl/signls/#parameters
|
||||
[70] https://empr.cl/signls/#bank
|
||||
[71] https://empr.cl/signls/#nodes
|
||||
[72] https://empr.cl/signls/#nodes-reference
|
||||
[73] https://empr.cl/signls/#randomization
|
||||
[74] https://empr.cl/signls/#transposition
|
||||
[75] https://empr.cl/signls/#parameters
|
||||
Reference in New Issue
Block a user