Heres a patch against 1.8 branch for Vestax VCI100. I have not been
able to try it, but it seems from the comments at the forum like it is
working.

Cheers
//Anders

2010/9/21 Anders Gunnarsson <[email protected]>:
> Ok, I thought the forum wasn't configured to sent mail. I'll try it out.
>
> How about enabling e-mail confirmation for the forum? Isn't that one
> of the best ways to keep spammers out? At least we know every user has
> a valid mail address, so it's possible to send them a message that
> will reach them even if they don't go to the forum themselves.
>
> //Anders
>
> 2010/9/21 Albert Santoni <[email protected]>:
>> On Mon, Sep 20, 2010 at 12:45 PM, RJ Ryan <[email protected]> wrote:
>>> That would be great! The VCI-100 mapping we include with Mixxx is ancient
>>> and hasn't been touched since we started 1.7.x. I don't have a VCI-100 to
>>> play with so I don't feel comfortable making those edits myself. If you send
>>> out an updated mapping in the next day or so I can include it in 1.8.0.
>>> We're getting ready to tag 1.8.0 as final.
>>> I agree, adding email updates to the forums would be really useful. Albert?
>>>
>>
>> At the bottom left of each thread, there's now a link called
>> "Subscribe topic". I flipped the big "enable board-wide emails" switch
>> that supposedly is needed in order for this to work, so hopefully it
>> does now. If this somehow gives spammers yet another way to wreak
>> havoc on our forums, I'm going to punch phpBB3 in the face.
>>
>> Thanks,
>> Albert
>>
>>> Cheers,
>>> RJ
>>>
>>> On Mon, Sep 20, 2010 at 3:36 PM, Anders Gunnarsson <[email protected]>
>>> wrote:
>>>>
>>>> I've helped out a bit with the VCI-100 mapping lately. The changes
>>>> there is to use touch sensitivity of the wheels with the new scratch
>>>> function, to map unused buttons on the left side for hotcues and
>>>> loops, and to map unused effect knobs to flanger effect.
>>>>
>>>> The only comment I got for the last change is that everything works.
>>>> In that case the dependency against wheel is removed, and Pegasus new
>>>> scratch and 'jog' is used instead. My guess is that Vestax users will
>>>> be happier, but I can't promise. You can read the conversation here.
>>>>
>>>> http://mixxx.org/forums/viewtopic.php?f=7&t=1585&start=20#p5784
>>>>
>>>> It kind of died the MrF got happy and yakas went for holidays. If the
>>>> mail functionality was used in the forum it would be easier to request
>>>> comments...
>>>>
>>>>
>>>> If this mapping is to be included, there is a jog multiplier that
>>>> should be removed since its tested with beta2. Maybe it should be
>>>> replaced by a division of 3 since VCI-100 seem to have a wheel
>>>> resolution of 400, instead of the common 128 that 'jog' seem to be
>>>> adapted for. Also there has been comments about the order of the
>>>> flanger effect knobs, in relation to skins. Now they are mapped in the
>>>> same order as outline skins, which isn't the same as the order for the
>>>> newer skins with full functionality. Which skin will be default for
>>>> 1.8? Is there a natural order for these knobs that the skins should be
>>>> adjusted to?
>>>>
>>>> I can make the changes for VCI-100 if you want to include it.
>>>>
>>>> //Anders
>>>>
>>>> 2010/9/20 RJ Ryan <[email protected]>:
>>>> > Hi all,
>>>> > Anybody out there use the 'wheel' control in their MIDI mappings? Of the
>>>> > mappings included in MIxxx the only ones that use wheel are the Windows
>>>> > DM2
>>>> > mappings and the Vestax VCI-100.
>>>> > RJ
>>>> >
>>>> > ------------------------------------------------------------------------------
>>>> > Start uncovering the many advantages of virtual appliances
>>>> > and start using them to simplify application deployment and
>>>> > accelerate your shift to cloud computing.
>>>> > http://p.sf.net/sfu/novell-sfdev2dev
>>>> > _______________________________________________
>>>> > Mixxx-devel mailing list
>>>> > [email protected]
>>>> > https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>>> >
>>>> >
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Start uncovering the many advantages of virtual appliances
>>> and start using them to simplify application deployment and
>>> accelerate your shift to cloud computing.
>>> http://p.sf.net/sfu/novell-sfdev2dev
>>> _______________________________________________
>>> Mixxx-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>>
>>>
>>
>
=== modified file 'mixxx/res/midi/Vestax VCI-100.midi.xml'
--- mixxx/res/midi/Vestax VCI-100.midi.xml	2009-04-18 20:23:29 +0000
+++ mixxx/res/midi/Vestax VCI-100.midi.xml	2010-09-21 17:19:25 +0000
@@ -1,11 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
-<MixxxMIDIPreset schemaVersion="1" mixxxVersion="1.6.2+">
+<MixxxMIDIPreset schemaVersion="1" mixxxVersion="1.8.0+">
   <info>
     <name>Vestax VCI-100.midi.xml</name>
-    <author>Auto-converted by madjesta's PHP script</author>
-    <description>Automatic conversion of the file Vestax VCI-100.midi.xml for Mixxx 1.6.2</description>
+    <author>Anders Gunnarsson</author>
+    <description>Preliminary controller mapping for Vestax VCI-100 with scripts</description>
   </info>
-  <controller id="Vestax VCI-100" port="Port">
+  <controller id="Vestax VCI-100">
+    <scriptfiles>
+       <file filename="Vestax-VCI-100-scripts.js" functionprefix="VestaxVCI100"/>
+    </scriptfiles>
     <controls>
       <control>
         <group>[Master]</group>
@@ -76,12 +79,30 @@
       </control>
       <control>
         <group>[Channel1]</group>
-        <key>wheel</key>
-        <status>0xB0</status>
-        <midino>0x10</midino>
-        <options/>
-        <sensitivity>50</sensitivity>
-        <translations/>
+        <key>VestaxVCI100.vinyl_mode</key>
+        <status>0x90</status>
+        <midino>0x6B</midino>
+        <options>
+           <Script-Binding/>
+        </options>
+      </control>
+      <control>
+        <group>[Channel1]</group>
+        <key>VestaxVCI100.jog_touch</key>
+        <status>0x90</status>
+        <midino>0x30</midino>
+        <options>
+           <Script-Binding/>
+        </options>
+      </control>
+      <control>
+          <group>[Channel1]</group>
+          <key>VestaxVCI100.jog_wheel</key>
+          <status>0xB0</status>
+          <midino>0x10</midino>
+          <options>
+              <Script-Binding/>
+          </options>
       </control>
       <control>
         <group>[Channel1]</group>
@@ -265,13 +286,31 @@
         <options/>
       </control>
       <control>
-        <group>[Channel2]</group>
-        <key>wheel</key>
-        <status>0xB0</status>
-        <midino>0x11</midino>
-        <options/>
-        <sensitivity>50</sensitivity>
-        <translations/>
+         <group>[Channel2]</group>
+         <key>VestaxVCI100.vinyl_mode</key>
+         <status>0x90</status>
+         <midino>0x6C</midino>
+         <options>
+            <Script-Binding/>
+         </options>
+      </control>
+      <control>
+         <group>[Channel2]</group>
+         <key>VestaxVCI100.jog_touch</key>
+         <status>0x90</status>
+         <midino>0x31</midino>
+         <options>
+            <Script-Binding/>
+         </options>
+      </control>
+      <control>
+         <group>[Channel2]</group>
+         <key>VestaxVCI100.jog_wheel</key>
+         <status>0xB0</status>
+         <midino>0x11</midino>
+         <options>
+            <Script-Binding/>
+         </options>
       </control>
       <control>
         <group>[Channel2]</group>

=== added file 'mixxx/res/midi/Vestax-VCI-100-scripts.js'
--- mixxx/res/midi/Vestax-VCI-100-scripts.js	1970-01-01 00:00:00 +0000
+++ mixxx/res/midi/Vestax-VCI-100-scripts.js	2010-09-20 20:32:21 +0000
@@ -0,0 +1,75 @@
+VestaxVCI100 = new function() {
+   this.group = "[Master]";
+   this.shiftMode = false;
+   this.jogPlaylistScrollMode = false;
+   this.Controls = [];
+   this.Buttons = [];
+};
+
+VestaxVCI100.Deck = function (deckNumber, group) {
+   this.deckNumber = deckNumber;
+   this.group = group;
+   this.vinylMode = true;
+   this.scratching = false;
+   this.Buttons = [];
+};
+
+VestaxVCI100.Deck.prototype.jogMove = function(jogValue) {
+   if(VestaxVCI100.jogPlaylistScrollMode) {
+      if (jogValue > 0) {
+         engine.setValue("[Playlist]","SelectNextTrack", 1);
+      } else if (jogValue < 0) {
+         engine.setValue("[Playlist]","SelectPrevTrack", 1);
+      }
+   } else if(this.scratching) {
+      engine.scratchTick(this.deckNumber, jogValue);
+   } else {
+      jogValue = jogValue / 3;
+      engine.setValue(this.group,"jog", jogValue);
+   }
+};
+
+VestaxVCI100.Decks = {"Left":new VestaxVCI100.Deck(1,"[Channel1]"), "Right":new VestaxVCI100.Deck(2,"[Channel2]")};
+VestaxVCI100.GroupToDeck = {"[Channel1]":"Left", "[Channel2]":"Right"};
+
+VestaxVCI100.GetDeck = function(group) {
+   try {
+      return VestaxVCI100.Decks[VestaxVCI100.GroupToDeck[group]];
+   } catch(ex) {
+      return null;
+   }
+};
+
+//Mapping functions
+VestaxVCI100.vinyl_mode = function (channel, control, value, status, group) {
+//   var deck = VestaxVCI100.GetDeck(group);
+//   if(value) {
+//      if(deck.vinylMode) {
+//         deck.vinylMode = false;
+//         midi.sendShortMsg(0xB0, control, 0x00);
+//      } else {
+//         deck.vinylMode = true;
+//         midi.sendShortMsg(0xB0, control, 0x7F);
+//      }
+//   }
+};
+
+VestaxVCI100.jog_touch = function (channel, control, value, status, group) {
+   var deck = VestaxVCI100.GetDeck(group);
+   if(value) {
+      if(deck.vinylMode) {
+         engine.scratchEnable(deck.deckNumber, 128, 45, 1.0/8, (1.0/8)/32);
+         deck.scratching = true;
+      }
+   } else {
+      deck.scratching = false;
+      engine.scratchDisable(deck.deckNumber);
+   }
+};
+
+VestaxVCI100.jog_wheel = function (channel, control, value, status, group) {
+  // 41 > 7F: CW Slow > Fast ??? 
+  // 3F > 0 : CCW Slow > Fast ???
+  var jogValue = value - 0x40; // -64 to +63, - = CCW, + = CW
+  VestaxVCI100.GetDeck(group).jogMove(jogValue);
+};
\ No newline at end of file

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to