This is a fork of the sched_ext scheduler repo with experimental support for MIDI. The idea is to be able to interact with schedulers via MIDI to observer and adjust the runtime properties of a scheduler. To interface with MIDI the schedulers use the midir crate.
I don't have a lot of MIDI devices, so I picked up a APC Key 25 for ~$100 USD. I chose this device because the MIDI interface was rather well documented and it had decent reviews. I'm by no means a DJ or music maker so everything is just for fun. The device has a nice RBG LED pad and 360 rotary encoders. I plan on adding support for tuning scheduling domains via the RGB matrix and rotary encoders.
scx_layered --midi-port 'APC Key 25 mk2:APC Key 25 mk2 APC Key 25 mk2 C 32:1' --stats 1 f:/home/daniel/layered.json
sample scx_layered
config:
[{
"name":"chrome",
"comment":"chrome",
"matches":[
[
{"CommPrefix": "chrome"}
],
[
{"PcommPrefix": "chrome"}
]
],
"kind": {
"Confined":{
"exclusive": true,
"util_range": [0.04, 0.50]
}
}
},{
"name":"ppid 1",
"comment":"ppid 1",
"matches":[
[{"PPIDEquals":1}]
],
"kind": {
"Confined":{
"exclusive": true,
"util_range": [0.01, 0.20]
}
}
},{
"name":"user",
"comment":"user",
"matches":[
[{"UIDEquals":1000}]
],
"kind": {
"Confined":{
"exclusive": true,
"util_range": [0.01, 0.20]
}
}
},{
"name":"stress-ng",
"comment":"stress-ng",
"matches":[
[{"CommPrefix":"stress-ng"}],
[{"PcommPrefix":"stress-ng"}]
],
"kind": {
"Confined":{
"exclusive": true,
"util_range": [0.01, 0.20]
}
}
},
{
"name":"the rest",
"comment":"the rest",
"matches":[[]],
"kind":{
"Grouped": {
"util_range": [0.05, 0.60]
}
}
}]
In the past I experimented with generating audio via bpf.