Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Launchpad X #17

Open
wants to merge 165 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
165 commits
Select commit Hold shift + click to select a range
12bc156
Launchpad X
worikgh Dec 16, 2020
e3cbf2d
Initial commit
worikgh Dec 19, 2020
81df145
Initial commit
worikgh Dec 19, 2020
cb0a844
Be quiet!
worikgh Dec 19, 2020
ad8e157
Launchpad X
worikgh Dec 22, 2020
81dd412
Update midi
worikgh Dec 25, 2020
2bf0958
Starts with a @reboot griode.sh entry
worikgh Dec 25, 2020
6bb0f02
Prior to reformatting the SD card. A backup.
worikgh Dec 28, 2020
8b7b1b1
Initial commit
worikgh Dec 28, 2020
23ba831
Reads commands from a pipe
worikgh Dec 29, 2020
9cc6797
Commands to griode via named pipe taking shape
worikgh Dec 29, 2020
2ef6cf2
Changing scale by command redraws the surface of the Launchpad
worikgh Dec 30, 2020
ed6a064
Comments
worikgh Dec 31, 2020
b866dac
Comments
worikgh Dec 31, 2020
de68f0c
Implemented command `draw`
worikgh Dec 31, 2020
5490727
Comments
worikgh Jan 2, 2021
e5aaf5c
Added command to set instrument
worikgh Jan 2, 2021
1823be9
Initial commit
worikgh Jan 3, 2021
c8695ad
Initial commit
worikgh Jan 3, 2021
66bf427
Upgraded?
worikgh Jan 5, 2021
9b70218
Initial commit
worikgh Jan 7, 2021
77e7faf
Initial commit
worikgh Jan 7, 2021
5d907d2
Debugged commands
worikgh Jan 7, 2021
3ab4e77
Write pid file
worikgh Jan 7, 2021
dc2dbc6
Edited
worikgh Jan 7, 2021
030752d
Enable the command pipe
worikgh Jan 7, 2021
8372a1b
Here it is....
worikgh Jan 7, 2021
ca7b2ee
Rename front-end
worikgh Jan 7, 2021
744abdb
LV2 Plugins started...
worikgh Jan 8, 2021
5cc55e7
Initial commit
worikgh Jan 9, 2021
559f048
Initial commit
worikgh Jan 9, 2021
2ece086
Updated
worikgh Jan 9, 2021
6ebba07
Name change
worikgh Jan 9, 2021
ef96f76
Compiles
worikgh Jan 9, 2021
a976da3
Initial commit
worikgh Jan 11, 2021
2a348e1
Commit to safety!
worikgh Jan 11, 2021
2d57e7f
Improve class detection
worikgh Jan 12, 2021
2429359
Partially ready
worikgh Jan 12, 2021
c160e06
Update `README.md`s to track design changes
worikgh Jan 12, 2021
f44b180
Delete old and no longer used code
worikgh Jan 12, 2021
0c89e73
Add jack and griode commands
worikgh Jan 14, 2021
b4784bd
Updated path
worikgh Jan 14, 2021
192d086
Got griode commands working
worikgh Jan 17, 2021
4832943
Commenting
worikgh Jan 17, 2021
59b5a9d
Order ports numerically
worikgh Jan 19, 2021
f77ff6a
Improved Port data
worikgh Jan 19, 2021
0d0ca96
Bug fix
worikgh Jan 19, 2021
487ba0b
Grouping commands
worikgh Jan 19, 2021
9cfe6be
Directly command mod-host
worikgh Jan 19, 2021
423d0ac
Added griode commands
worikgh Jan 19, 2021
56868ed
Updated writing history
worikgh Jan 21, 2021
56debcd
Reads commands off stdin
worikgh Jan 22, 2021
2b510f9
Fix history writing
worikgh Jan 22, 2021
f35da64
Tidied up
worikgh Jan 22, 2021
b0a7d0f
Add control for root note
worikgh Jan 22, 2021
d69f02a
Updated
worikgh Jan 22, 2021
6f3bd35
Initial commit
worikgh Jan 22, 2021
f771d12
Minor fixups
worikgh Feb 2, 2021
9155446
iIt is what it is....
worikgh Feb 2, 2021
79fcc16
No longer uses a pipe to send commands to `griode`
worikgh Feb 18, 2021
5510e1b
Set default root note. Not persistant
worikgh Feb 18, 2021
47bf89b
Major changes and development
worikgh Feb 18, 2021
87a1551
Evolving....
worikgh Feb 18, 2021
fe83c15
Set root note via offset from AQ
worikgh Feb 18, 2021
d5aea42
Initial commit
worikgh Feb 20, 2021
3a34b3c
Renamed
worikgh Feb 20, 2021
ce89c7b
Initial commit
worikgh Feb 20, 2021
1f85b59
Times in log messages and selcted instrument in Model
worikgh Mar 2, 2021
07e3249
Run commands to set up the instrument
worikgh Mar 2, 2021
0b2e218
Minor update
worikgh Mar 2, 2021
e6dd0aa
Compile chrono
worikgh Mar 2, 2021
fa32d66
Fix documentaton
worikgh Mar 2, 2021
3092012
Visual indication of which instrument selected
worikgh Mar 2, 2021
fcd43cd
Implement command "root" properly
worikgh Mar 13, 2021
86747a9
Started illustrating setting up the instrument
worikgh Mar 13, 2021
e54438f
Quieten timing warnings so they are only emitted at debug level
worikgh Mar 13, 2021
c78d2a4
Set timing information into log method. Set font onfront end
worikgh Mar 13, 2021
bd36f27
Give the realnames for instruments so the front end can see them
worikgh Mar 13, 2021
2f16d70
Animate selection while being processed
worikgh Mar 13, 2021
3186a20
Fix(!) home directory
worikgh Mar 13, 2021
f13d350
minor edits
worikgh Mar 13, 2021
1da4096
Get LEDs to display correctly if key shifted by a root command
worikgh Mar 13, 2021
0130991
Minor change
worikgh Mar 15, 2021
789a69a
Translate jack ports
worikgh Mar 15, 2021
723d6cf
Translate jack ports
worikgh Mar 15, 2021
f00cd53
Initial commit
worikgh Mar 22, 2021
d867429
Improved error handling and uses `find_lv2`
worikgh Mar 22, 2021
0fab97e
A mostly working build
worikgh Apr 3, 2021
387eb2b
Explicit name spacing for ws types.
worikgh Apr 3, 2021
3790f8e
Compiles
worikgh Apr 19, 2021
b4ff83e
Minor change
worikgh Apr 19, 2021
a2c46b5
Still a chaotic mess!
worikgh Apr 19, 2021
2a77a4a
Two examples of songs/settings
worikgh Apr 19, 2021
0f7df2e
Compiles
worikgh Apr 26, 2021
413f69a
Revove dead code
worikgh Apr 26, 2021
2492cac
Minor edit
worikgh Apr 26, 2021
ad96f0c
Connect up the song files and internal data structures
worikgh Apr 26, 2021
c07c2db
Minor edits
worikgh Apr 26, 2021
156bede
Compiles cleanly
worikgh Apr 30, 2021
5aeb36c
Minor edits
worikgh May 1, 2021
8e4c1ca
Reorder functions to group more rationally
worikgh May 1, 2021
5c512ac
minor edit
worikgh May 1, 2021
ac9d1a3
Process INIT from server
worikgh May 1, 2021
9950c47
Cleaned up a bit
worikgh May 1, 2021
008dcb4
Cleaning up....
worikgh May 1, 2021
d8340e8
Starting to read from pedal
worikgh May 5, 2021
ebed104
Reads keys for pedal
worikgh May 6, 2021
6b27787
Missed code for ncurses
worikgh May 6, 2021
16111ec
Reviewed and updated niitialisation code for `ServerState`
worikgh May 6, 2021
d7aea96
Added ncurses
worikgh May 8, 2021
202cd20
Initial commit
worikgh May 9, 2021
88ad16a
New environment variable to find directory and start of pedlal code
worikgh May 9, 2021
67b75c8
Reorganised
worikgh May 9, 2021
84b76ce
Add Debug to structures
worikgh May 9, 2021
0877998
Adding Pedal
worikgh May 9, 2021
bcd12a8
Edited for clarity
worikgh May 15, 2021
f339c2b
Inintial commit
worikgh May 15, 2021
f6edc78
Minor edits
worikgh May 15, 2021
dd80dfe
Use env var PATH_MI_ROOT
worikgh May 16, 2021
b6a2ffd
Use env var PATH_MI_ROOT
worikgh May 16, 2021
be5a1f6
Typo
worikgh May 16, 2021
92e3012
Added pedals
worikgh May 16, 2021
1a64ff5
Got rid of unneeded abstractions
worikgh May 16, 2021
ce136da
Do not need these abstractions
worikgh May 16, 2021
8c6ec7d
Add persistent state
worikgh May 18, 2021
41a1fb9
Implemented saving state
worikgh May 20, 2021
6668f29
Initial commit.
worikgh May 20, 2021
9fca5c5
Started implementation of pedal switching
worikgh May 20, 2021
fc37c2c
Updated logging so it goes to a file
worikgh May 22, 2021
4a99f3a
Updated names and comments
worikgh May 22, 2021
0f68540
Tidy up...
worikgh May 25, 2021
ec45de1
Working!
worikgh May 26, 2021
728a57b
Make valid
worikgh May 27, 2021
7a98b32
Better logging
worikgh May 27, 2021
85c99c5
typo fix
worikgh May 27, 2021
fd8603c
Minor changes
worikgh May 27, 2021
80aaf87
DO not start front end (yet)
worikgh May 27, 2021
9673209
Fixup case error
worikgh May 27, 2021
26bea4a
Move client to its own directory
worikgh May 29, 2021
9e88785
Move client to its own directory
worikgh May 29, 2021
bb76bf8
Move client to its own directory
worikgh May 29, 2021
804cbd3
Move client to its own directory
worikgh May 29, 2021
b007a5f
Move client to its own directory
worikgh May 29, 2021
54bb38c
Bugfix
worikgh May 29, 2021
db3bf80
Moving client....
worikgh May 29, 2021
cf797e7
Formatted (cargo fmt) and invalid instruments no longer panic
worikgh May 29, 2021
eec2c9a
Working.
worikgh May 29, 2021
2de4fda
Tweek colours
worikgh May 29, 2021
ba68bfe
Quietened. Nothing on stdout now
worikgh May 29, 2021
fc78095
Renable pedal via stdin
worikgh May 29, 2021
0ffd8a4
Redircting output from sub-processes
worikgh May 31, 2021
00ec0f2
Pedal display
worikgh May 31, 2021
458cb90
Manage to delete client communication channels when client closes
worikgh Jun 1, 2021
587c432
Code cleanups
worikgh Jun 8, 2021
ec8c586
Connect to VU meters if present
worikgh Jun 9, 2021
84ab52c
Update for new CSS
worikgh Jun 9, 2021
620bfba
Minor edits
worikgh Jun 9, 2021
5321e54
Not specific to particular pedals
worikgh Jun 9, 2021
8371fd1
Minor change
worikgh Jun 9, 2021
f224e29
idempotent and run front end
worikgh Jun 9, 2021
011d5ad
Logging changes
worikgh Jun 9, 2021
1f81972
Minor change
worikgh Jun 9, 2021
93f64f2
Updated
worikgh Jun 9, 2021
7a99c32
Updated
worikgh Jun 9, 2021
85824d8
Replumbed....
worikgh Jun 9, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
.gitignore
__pycache__
*.swp
*.sf2
*.sav
*.db
*~
*.sh
#*
.commands
.griode.pid
*.lock
lv2.json

135 changes: 135 additions & 0 deletions MODHOST_COMMANDS
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
add <lv2_uri> <instance_number>
* add an LV2 plugin encapsulated as a jack client
e.g.: add http://lv2plug.in/plugins/eg-amp 0
instance_number must be any value between 0 ~ 9999, inclusively

remove <instance_number>
* remove an LV2 plugin instance (and also the jack client)
e.g.: remove 0

preset_load <instance_number> <preset_uri>
* load a preset state to given effect instance
e.g.: preset_load 0 "http://drobilla.net/plugins/mda/presets#JX10-moogcury-lite"

preset_save <instance_number> <preset_name> <dir> <file_name>
* save a preset state from given effect instance
e.g.: preset_save 0 "My Preset" /home/user/.lv2/my-presets.lv2 mypreset.ttl

preset_show <instance_number> <preset_uri>
* show the preset information of requested instance / URI
e.g.: preset_show 0 http://drobilla.net/plugins/mda/presets#EPiano-bright

connect <origin_port> <destination_port>
* connect two effect audio ports
e.g.: connect system:capture_1 effect_0:in

disconnect <origin_port> <destination_port>
* disconnect two effect audio ports
e.g.: disconnect system:capture_1 effect_0:in

bypass <instance_number> <bypass_value>
* toggle effect processing
e.g.: bypass 0 1
if bypass_value = 1 bypass effect
if bypass_value = 0 process effect

param_set <instance_number> <param_symbol> <param_value>
* set a value to given control
e.g.: param_set 0 gain 2.50

param_get <instance_number> <param_symbol>
* get the value of the request control
e.g.: param_get 0 gain

param_monitor <instance_number> <param_symbol> <cond_op> <value>
* do monitoring a effect instance control port according given condition
e.g: param_monitor 0 gain > 2.50

licensee <instance_number>
* get the licensee name for a commercial plugin
e.g.: licensee 0

monitor <addr> <port> <status>
* open a socket port to monitoring parameters
e.g: monitor localhost 12345 1
if status = 1 start monitoring
if status = 0 stop monitoring

monitor_output <instance_number> <param_symbol>
* request monitoring of an output control port in the feedback port
e.g.: monitor_output 0 meter

midi_learn <instance_number> <param_symbol> <minimum> <maximum>
* start MIDI learn for a parameter
e.g.: midi_learn 0 gain 0.0 1.0

midi_map <instance_number> <param_symbol> <midi_channel> <midi_cc> <minimum> <maximum>
* map a MIDI controller to a parameter
e.g.: midi_map 0 gain 0 7 0.0 1.0

midi_unmap <instance_number> <param_symbol>
* unmap the MIDI controller from a parameter
e.g.: unmap 0 gain

set_midi_program_change_pedalboard_bank_channel <enable> <midi_channel>
* set the MIDI channel which changes pedalboard banks on MIDI program change. <midi_channel> is in the range of [0,15].
e.g.: set_midi_program_change_pedalboard_bank_channel 1 5 to enable listening for bank changes on channel 6

set_midi_program_change_pedalboard_snapshot_channel <enable> <midi_channel>
* set the MIDI channel which changes pedalboard snapshots on MIDI program change. <midi_channel> is in the range of [0,15].
e.g.: set_midi_program_change_pedalboard_snapshot_channel 1 4 to enable listening for preset changes on channel 5

cc_map <instance_number> <param_symbol> <device_id> <actuator_id> <label> <value> <minimum> <maximum> <steps> <unit> <scalepoints_count> <scalepoints...>
* map a Control Chain actuator to a parameter
e.g.: cc_map 0 gain 0 1 "Gain" 0.0 -24.0 3.0 33 "dB" 0

cc_unmap <instance_number> <param_symbol>
* unmap the Control Chain actuator from a parameter
e.g.: unmap 0 gain

cv_map <instance_number> <param_symbol> <source_port_name> <minimum> <maximum> <operational-mode>
* map a CV source port to a parameter, operational-mode being one of '-', '+', 'b' or '='
e.g.: cv_map 0 gain "AMS CV Source:CV Out 1" -24.0 3.0 =

cv_unmap <instance_number> <param_symbol>
* unmap the CV source port actuator from a parameter
e.g.: cv_unmap 0 gain

cpu_load
* return current jack cpu load

load <file_name>
* load a history command file
* dummy way to save/load workspace state
e.g.: load my_setup

save <file_name>
* saves the history of typed commands
* dummy way to save/load workspace state
e.g.: save my_setup

bundle_add <bundle_path>
* add a bundle to the running lv2 world
e.g.: bundle_add /path/to/bundle.lv2

bundle_remove <bundle_path>
* remove a bundle from the running lv2 world
e.g.: bundle_remove /path/to/bundle.lv2

feature_enable <feature> <enable>
* enable or disable a feature
e.g.: feature_enable link 1
current features are "link", "processing" and "midi_clock_slave"

transport <rolling> <beats_per_bar> <beats_per_minute>
* change the current transport state
e.g.: transport 1 4 120

output_data_ready
* report feedback port ready for more messages

help
* show a help message

quit
bye!
Loading