MIDI Mapping VU-meters and LED feedback in general

Could Algoriddim team or someone from the community provide some documentation, if not official reference on how to map hardware controller/mixer VU-meters on Djay ? Even if it means tweaking the mapping file with a text editor.

I could obtain results by copy-pasting from other mappings and change to my controller’s MIDI spec, but it doesn’t always work and I would like to understand the the logic fully.

More generally, some documentation on how to map LED feedback would be cool, again I tend to find my way but sometimes there are some headaches.

1 Like

As far as I know midi mapping the VU meters is not supported. I asked the question about a year ago when I moved over from Traktor. I’m happy to be corrected if it’s changed since then.

Hi @jayneural,

@Archiesbald is correct, at this time VU meters (LED Feedback) are not MIDI mappable in djay.

I will pass this along to our dev team though as a feature request for further consideration!

1 Like

Thank you @NathanielAlgo. I’m actually trying to map the Pioneer DDJ Rev1. I’m not far from something pretty usable.

My only difficulties are :

  • those Vu-meter LEDs,
  • the 3 FX selection buttons per side which are supposed to be lit either alternatively or in parallel when pressed together. Otherwise, could easily map the 4 decks + Neural Mix.
  • tracking feature does not seem to be present/mappable.

Transform is mapped right in the hardware and sends messages that move the line faders to cut, so no problem there.

However the tracking mode isn’t hardware controlled, I guess it would require Algoriddim to implement the scratch patterns in the software and provide a mapping entry.

I know you have some similar feature with SHIFT+scratch, so maybe it could be cool to provide more patterns and mappings for them to get a similar feature. I see you added some scratch courses. It’d make sense to add some of these scratching helper tools.

Hi @jayneural,

Please note that these are the three features of the REV1 that are not currently manually mappable.

Our team is working on a solution for this and I will update this thread when there is new information to present!

1 Like

Any news about this? I’m so sad I cannot map the Jogvision VU meter with DJay Pro AI. Considering to switch to Traktor as well :frowning:

Beat Leds and VU-Leds are still not working on the Hercules Jogvision. Do you have any updates on this?

1 Like

I’d like to add my voice to request this feature!

This would be great with a Traktor F1 or other brand midi controllers that provide colored pads that can be edited.

It seems like low-hanging fruit to allow the end user to use your midi editing menu to simply duplicate the existing midi data already being transmitted to reflect volume levels (assuming volume/levels are sent to LED’s via midi) visually displayed upon the four respective LED meter sections of all four channel controllers you support— and direct that duplicate data to a series custom mapped colored pads.

It would take awhile to map and color four rows of pads but offer super-helpful visual cues and cool-factor lv.10.

I would like vu meter feedback via midi as well, for my Traktor Kontrol S5.
I’m current using the VU meters on the S5 as feedback for channel level, so the vu meter follows the position of the channel volume fader.

+1

VU meters mapping for Hercules Inpulse 500 (and others) would be wonderful.

Thanks!

1 Like

I found a great mapping file for DJay Pro with the NI Kontrol Z1 and working VU meter. Hope that helps.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>outputs</key>
	<array>
		<dict>
			<key>controlType</key>
			<string>control</string>
			<key>keyPath</key>
			<string>turntable1.monoMeter</string>
			<key>midiChannel</key>
			<integer>2</integer>
			<key>midiData</key>
			<integer>3</integer>
			<key>midiMaxValue</key>
			<real>127</real>
			<key>midiMessageType</key>
			<integer>3</integer>
			<key>midiMinValue</key>
			<real>0</real>
		</dict>
		<dict>
			<key>controlType</key>
			<string>control</string>
			<key>keyPath</key>
			<string>turntable2.monoMeter</string>
			<key>midiChannel</key>
			<integer>2</integer>
			<key>midiData</key>
			<integer>4</integer>
			<key>midiMaxValue</key>
			<real>127</real>
			<key>midiMessageType</key>
			<integer>3</integer>
			<key>midiMinValue</key>
			<real>0</real>
		</dict>
	</array>
	<key>controls</key>
	<array>
		<dict>
			<key>keyPath</key>
			<string>turntable1.gain</string>
			<key>midiChannel</key>
			<integer>0</integer>
			<key>midiData</key>
			<integer>0</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>turntable1.highEQ</string>
			<key>midiChannel</key>
			<integer>0</integer>
			<key>midiData</key>
			<integer>1</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>turntable1.midEQ</string>
			<key>midiChannel</key>
			<integer>0</integer>
			<key>midiData</key>
			<integer>2</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>turntable1.lowEQ</string>
			<key>midiChannel</key>
			<integer>0</integer>
			<key>midiData</key>
			<integer>3</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>turntable1.filter</string>
			<key>midiChannel</key>
			<integer>0</integer>
			<key>midiData</key>
			<integer>4</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
		</dict>
		<dict>
			<key>buttonMode</key>
			<string>hold</string>
			<key>controlType</key>
			<string>button</string>
			<key>keyPath</key>
			<string>turntable1.fxActive</string>
			<key>midiChannel</key>
			<integer>0</integer>
			<key>midiData</key>
			<integer>5</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
			<key>output</key>
			<dict/>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>mixer.lineVolume1</string>
			<key>midiChannel</key>
			<integer>0</integer>
			<key>midiData</key>
			<integer>6</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
			<key>output</key>
			<dict>
				<key>midiChannel</key>
				<integer>2</integer>
				<key>midiMinValue</key>
				<real>1</real>
			</dict>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>turntable2.gain</string>
			<key>midiChannel</key>
			<integer>1</integer>
			<key>midiData</key>
			<integer>0</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>turntable2.highEQ</string>
			<key>midiChannel</key>
			<integer>1</integer>
			<key>midiData</key>
			<integer>1</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>turntable2.midEQ</string>
			<key>midiChannel</key>
			<integer>1</integer>
			<key>midiData</key>
			<integer>2</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>turntable2.lowEQ</string>
			<key>midiChannel</key>
			<integer>1</integer>
			<key>midiData</key>
			<integer>3</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>turntable2.filter</string>
			<key>midiChannel</key>
			<integer>1</integer>
			<key>midiData</key>
			<integer>4</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
		</dict>
		<dict>
			<key>buttonMode</key>
			<string>hold</string>
			<key>controlType</key>
			<string>button</string>
			<key>keyPath</key>
			<string>turntable2.fxActive</string>
			<key>midiChannel</key>
			<integer>1</integer>
			<key>midiData</key>
			<integer>5</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
			<key>output</key>
			<dict/>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>mixer.lineVolume2</string>
			<key>midiChannel</key>
			<integer>1</integer>
			<key>midiData</key>
			<integer>6</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
			<key>output</key>
			<dict>
				<key>midiChannel</key>
				<integer>2</integer>
				<key>midiData</key>
				<integer>7</integer>
				<key>midiMinValue</key>
				<real>0.0</real>
			</dict>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>mixer.monitorMix</string>
			<key>midiChannel</key>
			<integer>2</integer>
			<key>midiData</key>
			<integer>0</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
		</dict>
		<dict>
			<key>buttonMode</key>
			<string>hold</string>
			<key>controlType</key>
			<string>button</string>
			<key>flipped</key>
			<true/>
			<key>keyPath</key>
			<string>mixer.monitorActive1</string>
			<key>midiChannel</key>
			<integer>2</integer>
			<key>midiData</key>
			<integer>1</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
			<key>output</key>
			<dict/>
		</dict>
		<dict>
			<key>buttonMode</key>
			<string>hold</string>
			<key>controlType</key>
			<string>button</string>
			<key>flipped</key>
			<true/>
			<key>keyPath</key>
			<string>mixer.monitorActive2</string>
			<key>midiChannel</key>
			<integer>2</integer>
			<key>midiData</key>
			<integer>2</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
			<key>output</key>
			<dict/>
		</dict>
		<dict>
			<key>keyPath</key>
			<string>mixer.crossfade</string>
			<key>midiChannel</key>
			<integer>2</integer>
			<key>midiData</key>
			<integer>5</integer>
			<key>midiMessageType</key>
			<integer>3</integer>
		</dict>
	</array>
	<key>editor</key>
	<string>djay Pro AI-4.0.3</string>
	<key>endpointName</key>
	<string>Traktor Kontrol Z1</string>
	<key>schemeVersion</key>
	<integer>1</integer>
	<key>version</key>
	<integer>0</integer>
</dict>
</plist>

Can also be downloaded here: DJ TechTools - NI Traktor Kontrol Z1 for Algoriddim djay Pro with VU meter

2 Likes

Hi,

In the latest version, have you already activated the mapping of the VU meter in Hercules Jogvision?