aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--README.md6
-rw-r--r--backends/jack.md2
-rw-r--r--backends/midi.md2
-rw-r--r--backends/mqtt.c13
-rw-r--r--backends/rtpmidi.md2
-rw-r--r--backends/winmidi.md2
7 files changed, 17 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index 674d42c..cc73718 100644
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,6 @@ CFLAGS += -fvisibility=hidden
RCCFLAGS += -I./
core/%: CFLAGS += -I./
-midimonster: LDLIBS = -ldl
# Replace version string with current git-describe if possible
ifneq "$(GITVERSION)" ""
CFLAGS += -DMIDIMONSTER_VERSION=\"$(GITVERSION)\"
@@ -56,6 +55,7 @@ backends-full:
$(MAKE) -C backends full
# This rule can not be the default rule because OSX the target prereqs are not exactly the build prereqs
+midimonster: LDLIBS = -ldl
midimonster: midimonster.c portability.h $(CORE_OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) $< $(CORE_OBJS) $(LDLIBS) -o $@
diff --git a/README.md b/README.md
index 638624e..91ce9aa 100644
--- a/README.md
+++ b/README.md
@@ -122,6 +122,12 @@ output eachothers events.
The last line is a shorter way to create a bi-directional mapping.
+You can map input channels to as many outputs as you like. This will deliver incoming
+events for each mapped output.
+You can also map multiple input channels to one common output channel.
+This will forward all events on the mapped inputs to the output channel (experienced
+show-control technicians call this a "latest takes precedence" bus).
+
### Multi-channel mapping
To make mapping large contiguous sets of channels easier, channel names may contain certain
diff --git a/backends/jack.md b/backends/jack.md
index c67f060..f57d303 100644
--- a/backends/jack.md
+++ b/backends/jack.md
@@ -65,7 +65,7 @@ used instead of the word `channel` (Note that `channel` here refers to the MIDI
The following values are recognized for `type`:
* `cc` - Control Changes
-* `note` - Note On/Off messages
+* `note` - Note On/Off messages (also known as note velocity)
* `pressure` - Note pressure/aftertouch messages
* `aftertouch` - Channel-wide aftertouch messages
* `pitch` - Channel pitchbend messages
diff --git a/backends/midi.md b/backends/midi.md
index 6280205..ae03440 100644
--- a/backends/midi.md
+++ b/backends/midi.md
@@ -27,7 +27,7 @@ Each instance also provides a virtual port, so MIDI devices can also be connecte
The MIDI backend supports mapping different MIDI events to MIDIMonster channels. The currently supported event types are
* `cc` - Control Changes
-* `note` - Note On/Off messages
+* `note` - Note On/Off messages (also known as note velocity)
* `pressure` - Note pressure/aftertouch messages
* `aftertouch` - Channel-wide aftertouch messages
* `pitch` - Channel pitchbend messages
diff --git a/backends/mqtt.c b/backends/mqtt.c
index 6bc366e..6d25fd3 100644
--- a/backends/mqtt.c
+++ b/backends/mqtt.c
@@ -121,7 +121,7 @@ static int mqtt_generate_instanceid(instance* inst){
mqtt_instance_data* data = (mqtt_instance_data*) inst->impl;
char clientid[24] = "";
- snprintf(clientid, sizeof(clientid), "MIDIMonster-%d-%s", (uint32_t) time(NULL), inst->name);
+ snprintf(clientid, sizeof(clientid) - 1, "MM-%s-%d", inst->name, (uint32_t) time(NULL));
return mmbackend_strdup(&(data->client_id), clientid);
}
@@ -287,6 +287,11 @@ static int mqtt_reconnect(instance* inst){
return 2;
}
+ if(!data->client_id && mqtt_generate_instanceid(inst)){
+ LOGPF("Failed to generate instance ID for %s", inst->name);
+ return 2;
+ }
+
if(data->fd >= 0){
mqtt_disconnect(inst);
}
@@ -456,9 +461,6 @@ static int mqtt_configure_instance(instance* inst, char* option, char* value){
mmbackend_strdup(&(data->client_id), value);
return 0;
}
- else{
- return mqtt_generate_instanceid(inst);
- }
}
else if(!strcmp(option, "protocol")){
data->mqtt_version = MQTT_VERSION_DEFAULT;
@@ -518,9 +520,6 @@ static int mqtt_instance(instance* inst){
data->current_alias = 1;
inst->impl = data;
- if(mqtt_generate_instanceid(inst)){
- return 1;
- }
return 0;
}
diff --git a/backends/rtpmidi.md b/backends/rtpmidi.md
index 8014572..dd9cb56 100644
--- a/backends/rtpmidi.md
+++ b/backends/rtpmidi.md
@@ -60,7 +60,7 @@ Common instance configuration parameters
The `rtpmidi` backend supports mapping different MIDI events to MIDIMonster channels. The currently supported event types are
* `cc` - Control Changes
-* `note` - Note On/Off messages
+* `note` - Note On/Off messages (also known as note velocity)
* `pressure` - Note pressure/aftertouch messages
* `aftertouch` - Channel-wide aftertouch messages
* `pitch` - Channel pitchbend messages
diff --git a/backends/winmidi.md b/backends/winmidi.md
index 9e7d9cc..6de6348 100644
--- a/backends/winmidi.md
+++ b/backends/winmidi.md
@@ -29,7 +29,7 @@ to the listing shown at startup when using the global `list` option.
The `winmidi` backend supports mapping different MIDI events as MIDIMonster channels. The currently supported event types are
* `cc` - Control Changes
-* `note` - Note On/Off messages
+* `note` - Note On/Off messages (also known as note velocity)
* `pressure` - Note pressure/aftertouch messages
* `aftertouch` - Channel-wide aftertouch messages
* `pitch` - Channel pitchbend messages