Mapping something (e.g. loop size/out) to jog wheel

11718192022

Answers

  • Psyka
    Psyka Member Posts: 45 Member

    Oh, no problem :)

  • DuneArchitect
    DuneArchitect Member Posts: 19 Member

    Which mod is that? If I take a look through it I might be able to figure it out

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod

    https://drive.google.com/drive/folders/1uPSzrTuxgwvYzAVninP07KxqrfLSdoSK?usp=sharing

    This one. It has the beatcounter in the deck file. I think. As far as i remember, it uses the 8 virtual MIDI buttons as output. It may be a bit complicated to send 16 different MIDI signals, maybe ON and OFF can be used individually and sequentially to extend this to 16. Or one of the other virtual MIDI controls (faders/knobs) can be used in their ON/OFF variant (using only 0.0 and 1.0 and nothing in between).

  • Psyka
    Psyka Member Posts: 45 Member

    Hi.

    Yes it's this one. But I don't want to have 8 or 16 midi buttons, I just would have only one midi button which send cc61 (for example), every first of 16 times.

    Hope this is clear :)

  • Psyka
    Psyka Member Posts: 45 Member

    Hi Sûlherokhh.

    By chance, did you have time to take a look at the midi cc every 16 times?

    Best regards.

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod

    Well done reminding me. No other project at the moment, so this is what i am going to do next.

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod
    edited June 5

    Okay, so i will modify the Moonbeam-On-Beats mod so that every 16 beats, on the first beat, you will get a single MIDI button get switched to ON, on the second beat it will get set to OFF.

    Correct?

    Edit: If so, this is what i did…

    I changed line 551 of 'D2.qml' from

    readonly property var deckBeat: (deckBeats < 0.0) ? (8 - (parseInt(Math.abs(deckBeats) % 8))) : parseInt(Math.abs(deckBeats) % 8) + 1
    

    to

    readonly property var deckBeat: (deckBeats < 0.0) ? (16 - (parseInt(Math.abs(deckBeats) % 16))) : parseInt(Math.abs(deckBeats) % 16) + 1
    

    It all still works with MIDIbutton 1.

    Test away and tell me if it works. Apologies for the long delay.

  • Psyka
    Psyka Member Posts: 45 Member

    Hi :)

    Very thanks for your modif, but unfortunately it doesn't work :/

    Midi button 1 send always 1 of 8, none 1 of 16.

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod
  • Psyka
    Psyka Member Posts: 45 Member

    Sorry I speak too quickly.

    That's partially work. (In my Traktor file I have 2 mod you've made, one with 1 of 16 and the other with 1 of 8…sorry)

    The 1 of 16 work on time when charged the deck and play it BUT if I change the tempo of the deck (when play), the midi button 1 is not on time…

    (The tempo change work perfectly with the last version of 1st of 8)

    I just have another question : You've made a VERY useful beatdelais for send the 1st of 8 (or 16). 2200ms in my case

    It's possible to adjust this time with a math formula? By example : 2200 + ("bmp of the master deck" . 0,001)

    In fact, if the bmp is to fast I'm not perfectly in time, so just if it's possible, I would ajust it with a coefficient.

    Many thanks :)

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod

    Delay can be dynamically calculated as you proposed. I'll make you a test version.

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod

    You can just replace the 'beat delay' line yourself. This is the format it would need to have to dynamically adjust to the master clock bpm:

    readonly property real beatDelay: 2200 + deckMixerBpm.value * 0.001
    

    0.001 can be replaced by any reasonable value. Try out a variety of values until you hit the sweet spot. :)

  • Psyka
    Psyka Member Posts: 45 Member

    Oh yes, in my mind I think in second…

    But 2200 + deckMixerBpm.value seem more reasonable :)

  • Psyka
    Psyka Member Posts: 45 Member

    Hi Sûlherokhh :)

    Hope you're well.

    I tried to copy your very useful mod of my D2.qml for a beatcounter in Traktor Pro 4 but nothing happened :(

    Is this normal or not? If it's possible I could use it also with the new TP4.

    Thanks a lot.

    //----------------------------------- Beatcounter LED ------------------------------------//

    AppProperty { id: masterIdProp; path: "app.traktor.masterclock.source_id" } //-1: MasterClock, 0: Deck A, 1: Deck B, 2: Deck C, 3: Deck D
    readonly property int masterId: masterIdProp.value + 1
    AppProperty { id: deckTypeProp; path: "app.traktor.decks." + masterId + ".type"; }
    AppProperty { id: deckElapsedTime; path: "app.traktor.decks." + masterId + ".track.player.elapsed_time" }
    AppProperty { id: deckGridOffset; path: "app.traktor.decks." + masterId + ".content.grid_offset" }
    AppProperty { id: deckMixerBpm; path: "app.traktor.decks." + masterId + ".tempo.base_bpm" } //true_bpm
    AppProperty { id: remixBeatPos; path: "app.traktor.decks." + masterId + ".remix.current_beat_pos" }
    AppProperty { id: midiButtonProp1; path: "app.traktor.midi.buttons.1" }

    // enter a custom delay value in ms; can be negative
    readonly property real beatDelay: 2260

    readonly property var turnSpeedFactor: deckMixerBpm.value / 8 // Tempo varies with track's bpm
    readonly property var deckBeats: deckTypeProp.value != 1 ? (((deckElapsedTime.value * 1000 - deckGridOffset.value + beatDelay) * turnSpeedFactor) / 7500.0) : parseInt(remixBeatPos.value) * 2
    // readonly property var deckBeat: (deckBeats < 0.0) ? (8 - (parseInt(Math.abs(deckBeats) % 8))) : parseInt(Math.abs(deckBeats) % 8) + 1
    readonly property var deckBeat: (deckBeats < 0.0) ? (16 - (parseInt(Math.abs(deckBeats) % 16))) : parseInt(Math.abs(deckBeats) % 16) + 1

    onDeckBeatChanged:
    {
    if (deckBeat == 1) {
    midiButtonProp1.value = true
    }
    else {
    midiButtonProp1.value = false
    }
    }

  • Sûlherokhh
    Sûlherokhh Member, Traktor Mapping Mod Posts: 2,599 mod

    What are you trying to achieve as your end result? How do you want the beats to be displayed?

Back To Top