User Tools

Site Tools


prime2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
prime2 [2023/12/23 17:22] ounsatnprime2 [2024/05/13 23:19] (current) ounsatn
Line 1: Line 1:
 +**This project is in progess, and not still finished**
 +
 {{http://dnttalo.cluster029.hosting.ovh.net/Pictures/P2toAKF.jpg}} {{http://dnttalo.cluster029.hosting.ovh.net/Pictures/P2toAKF.jpg}}
  
Line 6: Line 8:
 Prime use QML from QT to do assignments and map functions.  Prime use QML from QT to do assignments and map functions. 
 You can write your own javascript / qml code to suit your needs.  You can write your own javascript / qml code to suit your needs. 
-I'm not a QT expert, i'm still learning :p  
  
 +Qml below allow to map these functions : 
 +
 +Back , Forward, load Right & Left , Rotary button are mapped like this :
 +(Load R/L is mapped below) 
 +
 +{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/BackForward.jpg}}
  
-Import section to get all the QT/QML prime objects  
  
 <code> <code>
 +
 +### Code Header with Air Imports ###
 +
 import airAssignments 1.0 import airAssignments 1.0
 import ControlSurfaceModules 0.1 import ControlSurfaceModules 0.1
Line 18: Line 27:
 import Planck 1.0 import Planck 1.0
 import QtQuick 2.12 import QtQuick 2.12
-</code> 
  
 +### Then assignment begin for global parameters ###
  
-Then Assignments begin  
  
-<code> 
 MidiAssignment { MidiAssignment {
  objectName: 'PRIME 2 Controller Assignment'  objectName: 'PRIME 2 Controller Assignment'
Line 56: Line 63:
  ledType: LedType.Simple  ledType: LedType.Simple
  }  }
- 
-</code> 
- 
-Back , Forward, load Right & Left , Rotary button are mapped like this : 
-(Load R/L is mapped below)  
- 
-{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/BackForward.jpg}} 
- 
-<code> 
- 
  
  
Line 106: Line 103:
  
 </code> </code>
 +
  
 Then we create one repeater bloc for deck1 and further, another for deck2  Then we create one repeater bloc for deck1 and further, another for deck2 
Line 116: Line 114:
  
 <code> <code>
 +
 +### Repeater 1 for Deck Left ###
  
  Repeater {  Repeater {
Line 216: Line 216:
 Below some pics of these functions.  Below some pics of these functions. 
  
-** Cues +** Cues ** 
 + 
 {{http://dnttalo.cluster029.hosting.ovh.net/Pictures/AKF_Cues.jpg}} {{http://dnttalo.cluster029.hosting.ovh.net/Pictures/AKF_Cues.jpg}}
  
-** Loops+** Loops ** 
 {{http://dnttalo.cluster029.hosting.ovh.net/Pictures/AKF_Loops.jpg}} {{http://dnttalo.cluster029.hosting.ovh.net/Pictures/AKF_Loops.jpg}}
  
 ** Slicer  ** Slicer 
 +
 {{http://dnttalo.cluster029.hosting.ovh.net/Pictures/AKF_Slice1.jpg}} {{http://dnttalo.cluster029.hosting.ovh.net/Pictures/AKF_Slice1.jpg}}
 {{http://dnttalo.cluster029.hosting.ovh.net/Pictures/AKF_Slice2.jpg}} {{http://dnttalo.cluster029.hosting.ovh.net/Pictures/AKF_Slice2.jpg}}
Line 285: Line 289:
 <code>  <code> 
  
 +### Repeater 2 for Deck Right ###
  
 Repeater { Repeater {
Line 388: Line 393:
 </code> </code>
  
-Next I configure Filter Sweep button for the 2 decks like below, and parameters button used to change note repeat speed in slice mode.  
  
-{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/FilterSweep.jpg}}+Code below allow to map functions on the pic below 
 +{{http://dnttalo.cluster029.hosting.ovh.net/Pictures/Prime2Layout.jpg}} 
  
  
Line 432: Line 438:
   
   
- readonly property QObjProperty padsView2: Planck.getProperty("/Engine/Deck%1/Pads/View".arg(2))+ readonly property QObjProperty padsView2: Planck.getProperty("/Engine/Deck%1/Pads/View".arg(2))
   
- property string padsMode2: padsView2.translator.string+ property string padsMode2: padsView2.translator.string
   
- readonly property bool padsModeIsAutoLoop2: padsMode2 === "AUTO" + readonly property bool padsModeIsAutoLoop2: padsMode2 === "AUTO" 
- readonly property bool padsModeIsLoop2: padsMode2 === "LOOPS" + readonly property bool padsModeIsLoop2: padsMode2 === "LOOPS" 
- readonly property bool padsModeIsLoopRoll2: padsMode2 === "ROLL" + readonly property bool padsModeIsLoopRoll2: padsMode2 === "ROLL" 
- readonly property bool padsModeIsSlicerContinuous2: padsMode2 === "SLICER" + readonly property bool padsModeIsSlicerContinuous2: padsMode2 === "SLICER" 
- readonly property bool padsModeIsSlicer2: padsModeIsSlicerContinuous2 || padsMode2 === "FIXED"+ readonly property bool padsModeIsSlicer2: padsModeIsSlicerContinuous2 || padsMode2 === "FIXED"
   
- readonly property bool loopEnabled2: Planck.getProperty("/Engine/Deck%1/Track/LoopEnableState".arg(2)).translator.state + readonly property bool loopEnabled2: Planck.getProperty("/Engine/Deck%1/Track/LoopEnableState".arg(2)).translator.state 
- readonly property bool loopEditable2: Planck.getProperty("/Engine/Deck%1/Track/LoopEnableState".arg(2)).translator.editable+ readonly property bool loopEditable2: Planck.getProperty("/Engine/Deck%1/Track/LoopEnableState".arg(2)).translator.editable
  
  
Line 486: Line 492:
 </code> </code>
  
-Then we will map FX section / Buttons. +Then we will map Parameters buttons, used when you are in slice or loop modes 
  
-<code> 
  
-Repeater { 
- model: ListModel { 
- ListElement { 
- deckName: "Left" 
- deckMidiChannel: 0 
- } 
-  
- ListElement { 
- deckName: "Right" 
- deckMidiChannel: 0 
- } 
-  
-  
- } 
- 
- Item { 
- id: deckmixer 
-  
- readonly property QObjProperty padsView1: Planck.getProperty("/Engine/Deck%1/Pads/View".arg(1)) 
-  
- property string padsMode1: padsView1.translator.string 
-  
- readonly property bool padsModeIsAutoLoop1: padsMode1 === "AUTO" 
- readonly property bool padsModeIsLoop1: padsMode1 === "LOOPS" 
- readonly property bool padsModeIsLoopRoll1: padsMode1 === "ROLL" 
- readonly property bool padsModeIsSlicerContinuous1: padsMode1 === "SLICER" 
- readonly property bool padsModeIsSlicer1: padsModeIsSlicerContinuous1 || padsMode1 === "FIXED" 
-  
- readonly property bool loopEnabled1: Planck.getProperty("/Engine/Deck%1/Track/LoopEnableState".arg(1)).translator.state 
- readonly property bool loopEditable1: Planck.getProperty("/Engine/Deck%1/Track/LoopEnableState".arg(1)).translator.editable 
-  
-  
-  
-  
- readonly property QObjProperty padsView2: Planck.getProperty("/Engine/Deck%1/Pads/View".arg(2)) 
-  
- property string padsMode2: padsView2.translator.string 
-  
- readonly property bool padsModeIsAutoLoop2: padsMode2 === "AUTO" 
- readonly property bool padsModeIsLoop2: padsMode2 === "LOOPS" 
- readonly property bool padsModeIsLoopRoll2: padsMode2 === "ROLL" 
- readonly property bool padsModeIsSlicerContinuous2: padsMode2 === "SLICER" 
- readonly property bool padsModeIsSlicer2: padsModeIsSlicerContinuous2 || padsMode2 === "FIXED" 
-  
- readonly property bool loopEnabled2: Planck.getProperty("/Engine/Deck%1/Track/LoopEnableState".arg(2)).translator.state 
- readonly property bool loopEditable2: Planck.getProperty("/Engine/Deck%1/Track/LoopEnableState".arg(2)).translator.editable 
-  
-  
-  
- ValueCCAssignment { 
- objectName: "Channel Trim Deck%1".arg(deckName) 
- cc: 3 
- normalizeValue: false 
- channel: deckMidiChannel 
- output: ValueOutput { 
- useSoftTakeover: false 
- target: PropertyTarget { 
- path: "/Engine/Mixer/Channel%1/Trim/Knob".arg(index + 1) 
- } 
- } 
- } 
-</code> 
-<code>  
- 
-I Define CCAsssignement for Filter Cutoff DeckL and DeckR 
- 
-  
- ValueCCAssignment { 
- objectName: "Dual Filter Cutoff Deck%1".arg(1) 
- cc: 16 
- channel: deckMidiChannel 
-  
- output: JogOutput { 
- jogAcceleration: 1.5; 
- jogSensitivity: 0.5; 
- type: 0 
- target: PropertyTarget { path: "/Engine/Mixer/Channel%1/SweepFx/Value".arg(1) }  
- } 
-  
- } 
-  
-  
-  
-  
-  
- ValueCCAssignment { 
- objectName: "Dual Filter Cutoff Deck%1".arg(2) 
- cc: 23 
- channel: deckMidiChannel 
-  
- 
- output: JogOutput { 
- jogAcceleration: 1.5; 
- jogSensitivity: 0.5; 
- type: 0 
- target: PropertyTarget { path: "/Engine/Mixer/Channel%1/SweepFx/Value".arg(2) } 
-  
-  
- } 
- 
-  
- } 
- 
-</code> 
 <code> <code>
  
Line 1531: Line 1432:
  
 } // Closing assignment } // Closing assignment
- 
  
  
  
 </code> </code>
 +
 +
 +Files for this project are available there : 
 +
 +[[http://dnttalo.cluster029.hosting.ovh.net/Akai/|Akai Prime2 Files]]
 +
prime2.1703348559.txt.gz · Last modified: 2023/12/23 17:22 by ounsatn

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki