Support for the Roland DJ 707m

Here are screenshots (3 posts, because “new users can only attach one image” ?!) from djay itself.

Also, there is no reason for this conttroller not to be mapped in the desktop version. Virtual DJ works flawlessly with it.

2 Likes

Second picture

2 Likes

And finally, the option to switch USB-B between “vendor” mode (Serato and VDJ) and “generic” (iOS)

2 Likes

Excellent! Thanks @Marius_Stuparu. This is very helpful! I have passed this onto the dev team.

3 Likes

Hi @Marius_Stuparu
Are you corrently working with the Roland 707 with Djay?
Have you mapped it to al the features?

Really waiting on this one…

2 Likes

No, I don’t have the time (nor the patience) to fully map it. But I guess that, since Virtual DJ was able to do it better than Serato, years ago, so could Algoriddim.

I might give it a shot this coming week and will update this thread if I make any progress.

2 Likes

@Marius_Stuparu The real question does it show up as an audio device in DJay. Class Compliance has to do with audio not midi.

It does, ive tried and started to map in on Mac. i’d guess its a 2 hour work to fully map it, ill give it a go once i finish with other project.

1 Like

From what I tried (few years ago before giving up), the turntables and LEDs are trickier to map. Buttons and sliders are quite easy.

FYI, VirtualDJ works best with the first USB (A) or with USB (B) set in “vendor” mode.

Also cc @Omar_Becerra

I am not able to upload the XML file with VDJ mappings, but if it helps:

<?xml version="1.0" encoding="UTF-8"?>
<mapper device="ROL707M" author="Atomix Productions" version="850" date="2023-07-07">
	<info>http://www.virtualdj.com/manuals/hardware/roland/dj707m.html</info>
	<map value="ONINIT" action="fake_master on &amp; fake_filter on &amp; fake_hp on &amp; deck all pad_pages 1" />
	<map value="ONEXIT" action="fake_master off &amp; fake_filter off &amp; fake_hp off" />
	<map value="SHIFT" action="shift" />
	<map value="DNC_KEY_DECK" action="get_key &apos;roland&apos;" />
	<map value="DNC_USB_A_CON" action="set &apos;$rol707_usbab&apos; 1" />
	<map value="DNC_USB_B_CON" action="set &apos;$rol707_usbab&apos; 2" />
	<map value="DNC_USB_A" action="var &apos;$rol707_usbab&apos; 2 ? mute on : var &apos;$rol707_usbab&apos; 1 ? mute off : nothing" />
	<map value="DNC_USB_B" action="var &apos;$rol707_usbab&apos; 2 ? mute off : var &apos;$rol707_usbab&apos; 1 ? mute on : nothing" />
	<map value="DNC_MODE" action="blink 200ms" />
	<map value="DNC_TRS_START" action="set &apos;$trs_start&apos; 1" />
	<map value="DNC_TRS_STOP" action="set &apos;$trs_start&apos; 0" />
	<map value="DNC_TRS_SYNC" action="set &apos;$trs_sync&apos; 1" />
	<map value="DNC_SHIFT_TRS_SYNC" action="set &apos;$trs_sync&apos; 0" />
	<map value="DNC_LED_TRS_BEATNUM 1" action="var &apos;$trs_start&apos; ? var &apos;$trs_sync&apos; ? master_beat_num 1" />
	<map value="DNC_LED_TRS_BEATNUM 2" action="var &apos;$trs_start&apos; ? var &apos;$trs_sync&apos; ? master_beat_num 2" />
	<map value="DNC_LED_TRS_BEATNUM 3" action="var &apos;$trs_start&apos; ? var &apos;$trs_sync&apos; ? master_beat_num 3" />
	<map value="DNC_LED_TRS_BEATNUM 4" action="var &apos;$trs_start&apos; ? var &apos;$trs_sync&apos; ? master_beat_num 4" />
	<map value="DNC_LED_TRS_SYNC" action="var &apos;$trs_sync&apos; ? true : false" />
	<map value="DNC_LED_TRS_SYNC_OFF" action="var &apos;$trs_sync&apos; ? false : true" />
	<map value="DNC_LCD_BPM" action="load_pulse ? get_bpm &amp; param_multiply 10 &amp; param_cast &apos;integer&apos;" />
	<map value="DNC_CLEAR_LCD" action="not load_pulse" />
	<map value="DNC_LCD_BPM_TRS" action="var &apos;$trs_sync&apos; ? masterbpm &amp; param_multiply 10 &amp; param_cast &apos;integer&apos;" />
	<map value="PLAY" action="pioneer_play" />
	<map value="CUE" action="pioneer_cue" />
	<map value="SHIFT_CUE" action="goto_start" />
	<map value="SHIFT_PLAY" action="play_stutter" />
	<map value="SYNC" action="custom_button 4" />
	<map value="SHIFT_SYNC" action="masterdeck" />
	<map value="SHIFT_LED_SYNC" action="masterdeck" />
	<map value="LED_SYNC" action="is_sync" />
	<map value="JOG_TOUCH" action="touchwheel_touch" />
	<map value="JOG" action="touchwheel" />
	<map value="SHIFT_JOG_TOUCH" action="touchwheel_touch &apos;search&apos;" />
	<map value="SHIFT_JOG" action="touchwheel &apos;search&apos;" />
	<map value="DECKC" action="deck 3 leftdeck" />
	<map value="DECKA" action="deck 1 leftdeck" />
	<map value="DECKD" action="deck 4 rightdeck" />
	<map value="DECKB" action="deck 2 rightdeck" />
	<map value="SHIFT_VINYL" action="vinyl_mode" />
	<map value="RANGE" action="pitch_range +1" />
	<map value="SHIFT_RANGE" action="key_lock" />
	<map value="PITCH" action="pitch &apos;dual&apos;" />
	<map value="BROWSE" action="browser_scroll" />
	<map value="LOAD" action="browser_window &apos;folders&apos; ? browser_window &apos;songs&apos; : load" />
	<map value="BACK" action="browser_folder" />
	<map value="SHIFT_VIEW" action="skin_panelgroup &apos;mixer&apos; +1" />
	<map value="SHIFT_AREA" action="browser_window +1" />
	<map value="ADD_PREPARE" action="playlist_add" />
	<map value="SHIFT_ADD_PREPARE" action="sideview +1" />
	<map value="VOLUME" action="volume" />
	<map value="EQ_LOW" action="eq_low" />
	<map value="EQ_MID" action="eq_mid" />
	<map value="EQ_HIGH" action="eq_high" />
	<map value="GAIN" action="gain" />
	<map value="PFL" action="pfl" />
	<map value="FILTER" action="filter" />
	<map value="VU_METER" action="get_level" />
	<map value="LINE_CH" action="param_bigger 0.4 ? linein on : linein off" />
	<map value="CROSSFADER" action="crossfader" />
	<map value="CF_ASSIGN_LEFT" action="cross_assign &apos;left&apos;" />
	<map value="CF_ASSIGN_THRU" action="cross_assign &apos;thru&apos;" />
	<map value="CF_ASSIGN_RIGHT" action="cross_assign &apos;right&apos;" />
	<map value="CF_CURVE" action="crossfader_curve" />
	<map value="MASTER_VOLUME" action="master_volume" />
	<map value="SAMPLER_VOL" action="sampler_volume_master" />
	<map value="PADMODE_HOTCUES" action="pad_pages 1" />
	<map value="PADMODE_AUTO" action="pad_pages 2" />
	<map value="PADMODE_MANUAL" action="pad_pages 3" />
	<map value="PADMODE_SLICER" action="pad_pages 4" />
	<map value="PADMODE_SAMPLER" action="pad_pages 12" />
	<map value="PADMODE_SAMPLER_VEL" action="pad_pages 16" />
	<map value="SHIFT_PADMODE_HOTCUES" action="pad_pages 5" />
	<map value="PADMODE_HOTCUES2" action="pad_pages 9" />
	<map value="SHIFT_PADMODE_AUTO" action="pad_pages 6" />
	<map value="SHIFT_PADMODE_MANUAL" action="pad_pages 7" />
	<map value="SHIFT_PADMODE_SLICER" action="pad_pages 8" />
	<map value="SHIFT_PADMODE_SAMPLER" action="pad_pages 20" />
	<map value="PAD_1" action="pad 1" />
	<map value="PAD_2" action="pad 2" />
	<map value="PAD_3" action="pad 3" />
	<map value="PAD_4" action="pad 4" />
	<map value="PAD_5" action="pad 5" />
	<map value="PAD_6" action="pad 6" />
	<map value="PAD_7" action="pad 7" />
	<map value="PAD_8" action="pad 8" />
	<map value="LED_PAD_1" action="pad_button_color 1" />
	<map value="LED_PAD_2" action="pad_button_color 2" />
	<map value="LED_PAD_3" action="pad_button_color 3" />
	<map value="LED_PAD_4" action="pad_button_color 4" />
	<map value="LED_PAD_5" action="pad_button_color 5" />
	<map value="LED_PAD_6" action="pad_button_color 6" />
	<map value="LED_PAD_7" action="pad_button_color 7" />
	<map value="LED_PAD_8" action="pad_button_color 8" />
	<map value="PAD_1_VEL" action="pad_pressure 1" />
	<map value="PAD_2_VEL" action="pad_pressure 2" />
	<map value="PAD_3_VEL" action="pad_pressure 3" />
	<map value="PAD_4_VEL" action="pad_pressure 4" />
	<map value="PAD_5_VEL" action="pad_pressure 5" />
	<map value="PAD_6_VEL" action="pad_pressure 6" />
	<map value="PAD_7_VEL" action="pad_pressure 7" />
	<map value="PAD_8_VEL" action="pad_pressure 8" />
	<map value="PAD_PARAM-" action="pad_param -1" />
	<map value="PAD_PARAM+" action="pad_param +1" />
	<map value="SHIFT_PAD_PARAM-" action="pad_param2 -1" />
	<map value="SHIFT_PAD_PARAM+" action="pad_param2 +1" />
	<map value="SHIFT_PAD_PARAM-" action="pad_param2 -1" />
	<map value="SHIFT_PAD_PARAM+" action="pad_param2 +1" />
	<map value="FX_PARAM_1" action="var &apos;samplerfx&apos; ? effect_slider &apos;sampler&apos; 1 : effect_slider 1" />
	<map value="FX_PARAM_2" action="var &apos;samplerfx&apos; ? nothing : effect_slider 2 1" />
	<map value="FX_PARAM_3" action="var &apos;samplerfx&apos; ? nothing : effect_slider 3 1" />
	<map value="FX_ON_1" action="var &apos;samplerfx&apos; ? effect_active &apos;sampler&apos; : effect_active" />
	<map value="FX_ON_2" action="var &apos;samplerfx&apos; ? down ? set &apos;fx2down&apos; 1 : set &apos;fx2down&apos; 0 : effect_3slots_layout ? effect_active 2 : down ? set &apos;fx2down&apos; 1 : set &apos;fx2down&apos; 0 " />
	<map value="FX_ON_3" action="var &apos;samplerfx&apos; ? down ? set &apos;fx3down&apos; 1 : set &apos;fx3down&apos; 0 : effect_3slots_layout ? effect_active 3 : down ? set &apos;fx3down&apos; 1 : set &apos;fx3down&apos; 0 " />
	<map value="SHIFT_FX_ON_1" action="var &apos;samplerfx&apos; ? effect_select &apos;sampler&apos; +1 : effect_select 1 +1" />
	<map value="SHIFT_FX_ON_2" action="effect_select 2 +1" />
	<map value="SHIFT_FX_ON_3" action="effect_select 3 +1" />
	<map value="SHIFT_FX_PARAM" action="effect_slider 2 &amp; effect_slider 2 2 &amp; effect_slider 3 2 " />
	<map value="FX_PARAM_2_SOLO" action="var &apos;samplerfx&apos; ? effect_slider &apos;sampler&apos; 2 : effect_3slots_layout ? nothing : effect_slider 2" />
	<map value="FX_PARAM_3_SOLO" action="var &apos;samplerfx&apos; ? effect_slider &apos;sampler&apos; 3 : effect_3slots_layout ? nothing : effect_slider 3" />
	<map value="LED_FX_ON_2" action="var &apos;samplerfx&apos; ? var &apos;fx2down&apos; ? blink 400ms : off : effect_3slots_layout ? effect_active 2 : var &apos;fx2down&apos; ? blink 400ms : off" />
	<map value="LED_FX_ON_3" action="var &apos;samplerfx&apos; ? var &apos;fx3down&apos; ? blink 400ms : off : effect_3slots_layout ? effect_active 3 : var &apos;fx3down&apos; ? blink 400ms : off" />
	<map value="FX_ASSIGN_AUX" action="toggle &apos;samplerfx&apos; &amp; setting &apos;samplerShoweffects&apos; 1" />
	<map value="LED_FX_ASSIGN_CH2" action="var &apos;samplerfx&apos; ? blink : effect_bank_load 2" />
	<map value="FX_ASSIGN_CH2" action="var &apos;samplerfx&apos; ? set &apos;samplerfx&apos; 0 : effect_bank_load 2" />
	<map value="FX_ASSIGN_CH1" action="var &apos;samplerfx&apos; ? set &apos;samplerfx&apos; 0 : effect_bank_load 1" />
	<map value="SHIFT_FX_ASSIGN_CH1" action="effect_bank_save 1" />
	<map value="SHIFT_FX_ASSIGN_CH2" action="effect_bank_save 2" />
</mapper>
1 Like

I’m wondering what works what doesn’t, is it ipad with djay pro?
@Omar_Becerra are you able to make it work?
I cant wait see if its working on dj707m with ipad, that will be so awesome, maybe you guys make video if possible please

I don’t understand this company ignoring a great controller that people love? We pay money for the software, how hard is it to support it?

Hi @djwolffie, thanks for your interest in adding support for this hardware. The dev team is aware of user interest in this hardware and is investigating it further. In the meantime, please use the blue Vote button at the top left of this page so we can gauge user demand and prioritize it against other hardware requests. Thanks!

1 Like

@djwolffie please also refer to this topic regarding Voting and Hardware. Thanks again for pushing the discussion ahead for this hardware!

First thing I did. thanks. Currently working with Apple on a refund as I only signed up for a trial. None of my controllers work with the software! I had cancelled so it should not have charged my account.

Thanks for the additional info @djwolffie. I have also passed these comments onto our dev team. Out of curiosity, what other controllers do you have that are not supported?

1 Like

Hello everyone,

is there any news about this controller?
For now I’m only using Algoriddim on a late 2023 macbook pro with shortcuts, but I’m looking to buy a controller.

Anyhow I felt in love with the Roland dj707m. So if you see a possibility to use it on a macbook pro let me know it :sweat_smile:

Greetings from Germany

2 Likes

Its been more than a year I was hoping this to happen, I hate to be the one tell you this “Not happening”
Roland is not active in Dj segment now, and Algoriddim only interested in hot selling products, regardless a handful of us voting and asking it to happen, I suggest, choose a hardware from their supported hardware list, don’t buy a hardware with hope of software to support in future, its tiring

1 Like

actually this request, I put in three years ago. I’ve moved on. Agree with your assessment. Never buy with hope of a future enhancement.

2 Likes