James Evans wrote:
Grayyoga wrote:
Hi Albert
Thank you for detailed answer.

I think I'd go with improving the Mk2 support at first. I've managed to compile 1.7 version from the bzr repository and played around with my console. The support isn't as smooth as in Virtual DJ. Basically I miss the smooth scratching capability of the VDJ, effects/cue/looping controls(I've read that looping isn't finished yet and will be one of the "feature of interest" for the 1.8), and smart use of joystick for fast track navigation/insertion. If someone could explain me where to start hacking(scripting?) I would be very grateful.


Hi Siarhei,

I've just got hold of a Hercules Mk2 and have started doing some midi mapping/scripting with help and pointers from Garth Dahlstrom.

I have midi mapping and scripting files for the Mk2 that Garth supplied me with (copied from the current RMX one). It has the code in for 'doing stuff' with the jog wheels including scratching mode. I'll tidy these up a bit later and send them to you. I reckon this will be a good start for you (having read the docs in the wiki). I'm no scratcher so am ill qualified for sorting out that side of it really.

Would certainly be good to have someone else working towards improving the Mk2 support.


On second thoughts I've attached them email Garth sent me with the files he supplied. I have worked on it since then, but nothing on the jog wheels. The version I'm working on in is flux at present so best not confusing you with it.

Cheers,

Jim.

Best Regards, Siarhei Rachytski

On Mon, May 18, 2009 at 7:53 PM, Albert Santoni <[email protected] <mailto:[email protected]>> wrote:

    Hi Siarhei,

    A few of us also came from OpenGL/C++ backgrounds before we started
    working on Mixxx, without any prior sound processing knowledge, so that
    definitely shouldn't be a problem. (Heck, most of us didn't know
    anything about Qt either!)

    A good place to start would be to build Mixxx on your respective
    platform. There's documentation on the wiki for this under "Build
    Mixxx": http://www.mixxx.org/wiki/doku.php

    It's also worth taking a quick peek at our development roadmap to see
    our main design principles and where we're going:
    http://www.mixxx.org/wiki/doku.php/development_roadmap

    You're basically free to work on whatever you want, but keep in mind
    that we're "feature frozen" for 1.7, and we're just picked our feature
    targets for 1.8:
    http://www.mixxx.org/wiki/doku.php/5_17_2009_developer_meeting_minutes

    If you want to work on improving support for your Hercules MK2, you
    might want to play around with MIDI scripting.
    http://www.mixxx.org/wiki/doku.php/midi_scripting
    I'm not entirely sure what the state of the Hercules MK2 controller is
    at the moment, but perhaps Garth could better advise you on where to
    start hacking that stuff.

    Otherwise, we're looking for someone to work on finishing up LADSPA
    support:
    http://www.mixxx.org/wiki/doku.php/ladspa

    The good news is that all of the audio processing and a large part of
    the GUI are done. There's just quirks here and there in the GUI that
    need fixing, and a the odd deployment issue here and there. If you're
    interested in working on it, get in touch and I'll advise you in more
    detail.

    Thanks, and feel free to ask for help if you need it!
    Albert

    P.S. Many of our developers and contributors hang out on IRC in #mixxx
    on Freenode, and we can help you get started hacking Mixxx from there
    too.

    On Sun, 2009-05-17 at 13:54 +0300, Grayyoga wrote:
     > Hi
     >
     > I want to participate in Mixxx developement. I'm totally new to the
     > sound processing applications, but have a good expertise in
     > OpenGL and C++ is my primary programming language. I also own a
     > Hercules DJ Mk2 console and could perform some of the related
    work and
     > testing. Could you give me some insights on where to start?
     >
     >
     > Best regards, Siarhei Rachytski
     >
    
------------------------------------------------------------------------------
     > Crystal Reports - New Free Runtime and 30 Day Trial
     > Check out the new simplified licensing option that enables
     > unlimited royalty-free distribution of the report engine
     > for externally facing server and web deployment.
     > http://p.sf.net/sfu/businessobjects
     > _______________________________________________ Mixxx-devel
    mailing list [email protected]
    <mailto:[email protected]>
    https://lists.sourceforge.net/lists/listinfo/mixxx-devel



------------------------------------------------------------------------

------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://www.creativitycat.com

------------------------------------------------------------------------

_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel


------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://www.creativitycat.com _______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel


--- Begin Message ---
Hi Jim,

I'm attaching a modified version of the Mk2 mapping file which has a jog
binding to HerculesMk2.jog_wheel and a script load to find that bit of
javascript in Hercules-DJ-Console-Mk2-scripts.js...
Hercules-DJ-Console-Mk2-scripts.js is a basic copy of the RMX version, with
most of the RMX specific stuff commented out (use a syntax highlighting
editor to save yourself a lot of grief) and just the wheels and the wheel
decay functions left.

The currently enabled behaviour for the jog is scratchMode == true,
scratchMode == false just passes through to "[ChannelN] jog" (which sounds
the same as r2415), feel free to flip it back to false to get the normal
behaviour back.   You'll have to go into the midi dialog and reload the
mapping file each time you save the .xml or .js files to get the new binds /
javascript functions to load.   There's also a HerculesMk2.debug flag that
can be toggled to get more verbose messages in the console.

I realize the code is a bit of a mess (part of that is historical - i.e
channel used to be "[ChannelN]" now it is a midi chan &  part just
experimenting to get stuff to work)...  so feel free to change it anyway you
see fit.    The only requirement for it to work is the method signatures
must contain the correct arguments.

Cheers,

-G
              __
--- == __/ t.O ==--
http://stacktrace.org/


On Sat, May 16, 2009 at 6:45 PM, James Evans <[email protected]> wrote:

> Garth Dahlstrom wrote:
>
>>
>> On Sat, May 16, 2009 at 7:41 AM, Robin Sheat <[email protected]<mailto:
>> [email protected]>> wrote:
>>
>>    On Sat, 16 May 2009, Garth Dahlstrom wrote:
>>     > I didn't play with the jogs on the Mk2, but the ones on the RMX
>>    also have
>>     > this problem.   This may be due to how HercJog option works (or
>>    rather that
>>     > its been depricated).
>>    I think I fixed that up for the control MP3. I don't remember
>>    exactly what it
>>    was I changed, and can't check right now, but it was a simple fix.
>>
>>
>> Hi Robin, thanks for pointing this out, I diff-ed the files, looks like
>> you are using "jog" instead of "wheel"...  I've switched the Mk2 mapping to
>> use that and it seems to work more like 1.6.
>> Jim give that a spin (rev 2415) and see if it works better for you.
>>
>>
>
> Yep, it's good now thanks Garth. Thanks for your input Robin.
>
> I have read the midi controller mapping and midi scripting pages in the
> wiki and it all seems pretty straightforward. Have a copy of the existing
> Hercules DJ Console Mk2.midi.xml using a script binding in place of hercjog.
> This simply calls a function to print "Wheel" when either wheel is moved,
> just to prove I have it working.
>
> So I'm still up for producing or tweaking a midi script for the Mk2 in view
> of the deprecation of hercjog. You still want to send me one Garth?
>
>
>>
>>     > I started writing a MIDI script (javascript) for
>>     > the RMX to "decelerate" the speed of the track over time after a
>>    jog wheel
>>     > movement, maybe this code would be useful for the Mk2 as well.
>>
>>    I dunno if that's a good thing, at least for the control. If you
>>    stop the
>>    wheel spinning, do you want it to decelerate? I would have thought
>>    you'd want
>>    it to stop immediately. If you want it to decelerate, then you just
>>    let it
>>    spin free until it slows and stops itself.
>>
>>
>> Well, I think this is an effect of using wheel instead of jog.
>> The jog wheels give  +1 or -1 values (after applying a formula to the midi
>> vals) when they move, but they don't give you a 0 when they stop...  so you
>> have to decay the momentum problematically so they eventually get back to 0,
>> if you follow me.
>>
>>
> Yes, makes sense.
>
>  If changing from wheel to jog works for pitch adjust, then I only have to
>> do this decay for scratching mode.
>>
>> -G
>>
>>
>> ------------------------------------------------------------------------
>>
>>
>> ------------------------------------------------------------------------------
>> Crystal Reports - New Free Runtime and 30 Day Trial
>> Check out the new simplified licensing option that enables unlimited
>> royalty-free distribution of the report engine for externally facing server
>> and web deployment. http://p.sf.net/sfu/businessobjects
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Mixxx-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>
>
>
<?xml version="1.0" encoding="utf-8"?>
<MixxxMIDIPreset schemaVersion="1" mixxxVersion="1.7.0">
    <info>
        <name>Hercules DJ Console Mk2</name>
        <author>Garth Dahlstrom</author>
        <description>This is a complete mapping for a Hercules DJ Console Mk2.</description>
    </info>
  <controller id="Hercules DJ Console Mk2 MIDI">
        <scriptfiles>
            <file filename="Hercules-DJ-Console-Mk2-scripts.js" functionprefix="HerculesMk2"/>
        </scriptfiles>
    <controls>
      <control>
        <group>[Master]</group>
        <key>crossfader</key>
        <status>0xB0</status>
        <midino>0x31</midino>
        <options/>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>play</key>
        <status>0xB0</status>
        <midino>0x08</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>cue_default</key>
        <status>0xB0</status>
        <midino>0x09</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>PrevTrack</key>
        <status>0xB0</status>
        <midino>0x0B</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>NextTrack</key>
        <status>0xB0</status>
        <midino>0x0C</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>volume</key>
        <status>0xB0</status>
        <midino>0x32</midino>
        <options/>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>rate</key>
        <status>0xB0</status>
        <midino>0x34</midino>
        <options>
          <Diff/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>HerculesMk2.jog_wheel</key>
        <status>0xB0</status>
        <midino>0x36</midino>
        <options>
                    <Script-Binding/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>pfl</key>
        <status>0xB0</status>
        <midino>0x21</midino>
        <options>
          <Switch/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>filterLow</key>
        <status>0xB0</status>
        <midino>0x2E</midino>
        <options/>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>filterMid</key>
        <status>0xB0</status>
        <midino>0x2F</midino>
        <options/>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>filterHigh</key>
        <status>0xB0</status>
        <midino>0x30</midino>
        <options/>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>filterLowKill</key>
        <status>0xB0</status>
        <midino>0x0F</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>filterMidKill</key>
        <status>0xB0</status>
        <midino>0x0E</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>filterHighKill</key>
        <status>0xB0</status>
        <midino>0x0D</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>rate_temp_up</key>
        <status>0xB0</status>
        <midino>0x13</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>rate_temp_down</key>
        <status>0xB0</status>
        <midino>0x14</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>beatsync</key>
        <status>0xB0</status>
        <midino>0x0A</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>play</key>
        <status>0xB0</status>
        <midino>0x02</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>cue_default</key>
        <status>0xB0</status>
        <midino>0x03</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>PrevTrack</key>
        <status>0xB0</status>
        <midino>0x05</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>NextTrack</key>
        <status>0xB0</status>
        <midino>0x06</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>reverse</key>
        <status>0xB0</status>
        <midino>0x01</midino>
        <options>
          <Switch/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>volume</key>
        <status>0xB0</status>
        <midino>0x033</midino>
        <options/>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>rate</key>
        <status>0xB0</status>
        <midino>0x35</midino>
        <options>
          <Diff/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>HerculesMk2.jog_wheel</key>
        <status>0xB0</status>
        <midino>0x37</midino>
        <options>
                    <Script-Binding/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>pfl</key>
        <status>0xB0</status>
        <midino>0x22</midino>
        <options>
          <Switch/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>filterLow</key>
        <status>0xB0</status>
        <midino>0x2B</midino>
        <options/>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>filterMid</key>
        <status>0xB0</status>
        <midino>0x2C</midino>
        <options/>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>filterHigh</key>
        <status>0xB0</status>
        <midino>0x2D</midino>
        <options/>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>filterLowKill</key>
        <status>0xB0</status>
        <midino>0x10</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>filterMidKill</key>
        <status>0xB0</status>
        <midino>0x11</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>filterHighKill</key>
        <status>0xB0</status>
        <midino>0x12</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>rate_temp_up</key>
        <status>0xB0</status>
        <midino>0x17</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>rate_temp_down</key>
        <status>0xB0</status>
        <midino>0x18</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>beatsync</key>
        <status>0xB0</status>
        <midino>0x04</midino>
        <options>
          <Button/>
        </options>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>reverse</key>
        <status>0xB0</status>
        <midino>0x07</midino>
        <options>
          <Switch/>
        </options>
      </control>
      <control>
        <group>[Playlist]</group>
        <key>SelectPrevTrack</key>
        <status>0xB0</status>
        <midino>0x16</midino>
        <options/>
      </control>
      <control>
        <group>[Playlist]</group>
        <key>SelectNextTrack</key>
        <status>0xB0</status>
        <midino>0x1A</midino>
        <options/>
      </control>
      <control>
        <group>[Channel1]</group>
        <key>LoadSelectedTrack</key>
        <status>0xB0</status>
        <midino>0x1B</midino>
        <options/>
      </control>
      <control>
        <group>[Channel2]</group>
        <key>LoadSelectedTrack</key>
        <status>0xB0</status>
        <midino>0x1C</midino>
        <options/>
      </control>
    </controls>
    <outputs>
      <output>
        <group>[Channel1]</group>
        <key>play</key>
        <status>0xB0</status>
        <midino>0x08</midino>
        <minimum>0.5</minimum>
      </output>
      <output>
        <group>[Channel2]</group>
        <key>play</key>
        <status>0xB0</status>
        <midino>0x02</midino>
        <minimum>0.5</minimum>
      </output>
      <output>
        <group>[Channel1]</group>
        <key>playposition</key>
        <status>0xB0</status>
        <midino>0x00</midino>
        <minimum>0.9</minimum>
        <maximum>0.99</maximum>
      </output>
      <output>
        <group>[Channel2]</group>
        <key>playposition</key>
        <status>0xB0</status>
        <midino>0x05</midino>
        <minimum>0.9</minimum>
        <maximum>0.99</maximum>
      </output>
      <output>
        <group>[Channel1]</group>
        <key>VuMeter</key>
        <status>0xB0</status>
        <midino>0x0A</midino>
        <minimum>0.4</minimum>
        <maximum>1</maximum>
      </output>
      <output>
        <group>[Channel1]</group>
        <key>VuMeter</key>
        <status>0xB0</status>
        <midino>0x16</midino>
        <minimum>0.5</minimum>
        <maximum>1</maximum>
      </output>
      <output>
        <group>[Channel1]</group>
        <key>VuMeter</key>
        <status>0xB0</status>
        <midino>0x0D</midino>
        <minimum>0.6</minimum>
      </output>
      <output>
        <group>[Channel1]</group>
        <key>VuMeter</key>
        <status>0xB0</status>
        <midino>0x0E</midino>
        <minimum>0.7</minimum>
      </output>
      <output>
        <group>[Channel1]</group>
        <key>VuMeter</key>
        <status>0xB0</status>
        <midino>0x0F</midino>
        <minimum>0.8</minimum>
      </output>
      <output>
        <group>[Channel2]</group>
        <key>VuMeter</key>
        <status>0xB0</status>
        <midino>0x04</midino>
        <minimum>0.4</minimum>
      </output>
      <output>
        <group>[Channel2]</group>
        <key>VuMeter</key>
        <status>0xB0</status>
        <midino>0x1A</midino>
        <minimum>0.5</minimum>
      </output>
      <output>
        <group>[Channel2]</group>
        <key>VuMeter</key>
        <status>0xB0</status>
        <midino>0x12</midino>
        <minimum>0.6</minimum>
      </output>
      <output>
        <group>[Channel2]</group>
        <key>VuMeter</key>
        <status>0xB0</status>
        <midino>0x11</midino>
        <minimum>0.7</minimum>
      </output>
      <output>
        <group>[Channel2]</group>
        <key>VuMeter</key>
        <status>0xB0</status>
        <midino>0x10</midino>
        <minimum>0.8</minimum>
      </output>
    </outputs>
  </controller>
</MixxxMIDIPreset>

Attachment: Hercules-DJ-Console-Mk2-scripts.js
Description: JavaScript source


--- End Message ---
------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com 
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to