Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated mappings for the Hercules Inpulse 300 #12503

Open
wants to merge 28 commits into
base: 2.4
Choose a base branch
from

Conversation

BoredGuy1
Copy link

@BoredGuy1 BoredGuy1 commented Jan 3, 2024

I made some improvements to Mixxx's included Inpulse 300 mapping. I tried to stay close to the manufacturer mappings listed in this manual.

Full list of changes:

  • Added ability to stop samplers (shift + button)

  • Added toneplay

    • Pressing a pad jumps to the most recently used hotcue and changes the pitch
    • Shift + toneplay changes the pitch without jumping
    • Pads 1-4 increase the pitch by +0 to +3 semitones
    • Pads 5-8 decrease the pitch by -4 to -1 semitones
    • LED reflects total adjustment to current key
  • Added slicer/slicer loop:

    • Press slicer button to activate a slicer section, press again to deactivate it
    • Slicer length is dependent on loop length
    • Exiting slicer mode or pressing LOOP OUT also deactivates the slicer section
    • Creating a slicer section overrides active loops, and creating a 4-beat loop overrides active slicer sections
    • Only works on constant BPM (also true in native software DJUCED)
    • Slicer section does not move backwards when scratching (also true in native software DJUCED)
  • Added actual beatmatch guide functionality to the LEDs

    • This replaces the LEDs' old end-of-track warning functionality. Hopefully no one missed it :P
  • Changed the way scratching works

    • Wheels have inertia rather than instantly stopping when released (this allows backspins and other tricks)
    • Removed scratchPad in XML (not sure what it was doing there)
  • Updated VU meter syntax

    • Replaced vu_meter with VuMeter to comply with new version of Mixxx
    • Replaced connectControl with makeConnection to allow multiple connections (and also to comply with newer versions)
  • Replaced "hotcue_X_enabled" with "hotcue_X_status" in XML file to comply with newer version of Mixxx

Manual is being updated accordingly in another PR: PR#604.

@JoergAtGithub
Copy link
Member

Welcome at Mixxx!
As a first-time contributor we need you to sign the Mixxx Contributor Agreement and comment here when you have done so. It gives us permission to distribute your contribution under the GPL v2 or later license and the Apple Mac App Store. It is also helpful for us to have contact information for contributors in case we may need it in the future.

@JoergAtGithub
Copy link
Member

The pre-commit check is failing. The best way to fix pre-commit issues is to install pre-commit locally on your system, as described here: https://github.com/mixxxdj/mixxx/wiki/Using-Git#set-up-automatic-code-checking
Than it will fix these issues automatically before every commit.
Alternatively, you can download the pre-commit.patch file from the artifacts of this PR
grafik
unzip it, and apply it using:
git apply pre-commit.patch

Please note, that this will not fix the typo, that the codespell check reports - this one must be fixed manually.

@BoredGuy1
Copy link
Author

Alright, I've filled out the agreement, installed pre-commit, and fixed all the typos and style issues. Let me know if there's anything else I need to do.

@JoergAtGithub
Copy link
Member

Target for this PR should be 2.4 not main. Please rebase.

@BoredGuy1 BoredGuy1 changed the base branch from main to 2.4 January 3, 2024 21:27
@JoergAtGithub
Copy link
Member

If you need help with Git, have a look here: https://github.com/mixxxdj/mixxx/wiki/Using-Git#targeting-another-base-branch

@BoredGuy1
Copy link
Author

I'm still figuring my way around git, but assuming I rebased it properly, it should be ready to merge now. I also took the opportunity to add a whole bunch of other stuff, but now the manual PR is no longer up to date. I will be busy in the coming weeks, but hopefully I can get the manual up to speed after that.

In the meantime, it would be nice to have some feedback on this mapping (especially from @DJPhatso ;)

@DJPhatso
Copy link
Contributor

DJPhatso commented Feb 6, 2024

Pretty busy right now, but I'll see what I can do.

@DJPhatso
Copy link
Contributor

DJPhatso commented Feb 13, 2024

Some feedback of what I was able to try:

  • Samplers stop:

Work as expected.

  • Toneplay:

Been a while since I used this functionality in Traktor, so I might not be the best to judge if the flow is correct, but all functions were assigned as described.

  • Beatmatch guide to LEDs

Glad you could make it work as intended :-)

  • Changed the way scratching works

I noticed some unexpected scratching on occasion (i.e. without actually touching the wheels), which did no occur when I switched back to the default mapping (even tried with another unit to rule out some hardware problems), so there might be some adjustments to be done on that side.

Looking at the script, there are a few User Options I might try to modify next time.

  • Updated VU meter syntax

No problems there

@BoredGuy1
Copy link
Author

BoredGuy1 commented Feb 14, 2024

Thanks for the feedback!

I just used the script at a small house gig, and I can confirm the scratching issue exists (where the engine activates scratching briefly without jogwheel input). I will need to look into that.

In regards to the shift+pad mode, I can see how the pitch up/pitch down functions can be hard to use. I've only used Mixxx and DJUCED, so I'm not sure how other softwares do it.

I was looking at a CDJ the other day - it has a button that, when pressed, changes the functionality of the jogwheel so that it tighten a loop instead of scratching. Would it be more intuitive if I did something like that, but for pitch? I could make it so that when you hold down a toneplay+shift pad, the jogwheel enters some sort of "pitch mode" where you can rotate the jogwheel to pitch.

I would like to retain the "shift keyboard" pads (I know the DDJ-400 has a similar feature), but I'm not sure how important the reset key/sync key pads are. I was also thinking about making some of the pads reset the toneplay keyboard. So many ideas, so little time...

I could also get rid of the shift+toneplay mappings entirely, but I feel like I'm in too far to give up now :P

@BoredGuy1 BoredGuy1 marked this pull request as draft February 19, 2024 20:52
@ronso0 ronso0 added this to the 2.4.2 milestone Apr 13, 2024
@BoredGuy1 BoredGuy1 marked this pull request as ready for review May 13, 2024 03:10
@BoredGuy1
Copy link
Author

For some reason, the Ubuntu Qt 6.2 build always fails. That seems strange - the script doesn't involve Qt at all, does it?
image

@BoredGuy1
Copy link
Author

Never mind, I figured out the QT issue.

This should be ready for review. The manual is also done, sans the broken link checks.

@BoredGuy1
Copy link
Author

Never mind, the random scratching is still there.

@BoredGuy1 BoredGuy1 marked this pull request as draft August 21, 2024 16:58
@daschuer daschuer removed this from the 2.4.2 milestone Sep 15, 2024
@BoredGuy1 BoredGuy1 marked this pull request as ready for review October 5, 2024 06:54
@BoredGuy1
Copy link
Author

Scratching issue has been resolved. Ready for review again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants