Skip to content

Commit

Permalink
refactor(playermanager): Move player num_* COs to [App] group
Browse files Browse the repository at this point in the history
  • Loading branch information
Holzhaus committed Sep 14, 2023
1 parent 375e0bc commit f324542
Show file tree
Hide file tree
Showing 42 changed files with 133 additions and 112 deletions.
2 changes: 1 addition & 1 deletion res/controllers/Denon-DN-SC2000.midi.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ DenonDNSC2000.Deck = function (deckNumber, group) {
}

DenonDNSC2000.init = function (id) {
engine.setValue("[Master]", "num_decks", 4);
engine.setValue("[App]", "num_decks", 4);
var leds = [0x11,0x13,0x15,0x17,0x19,0x1B,0x1D,0x20,/* cues */
0x24,0x40,0x2B,/* loops */
0x27,0x26,/* play,cue */
Expand Down
8 changes: 4 additions & 4 deletions res/controllers/Denon-MC6000MK2-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -1342,24 +1342,24 @@ DenonMC6000MK2.initValues = function() {
DenonMC6000MK2.SAMPLE_RATE);
engine.setValue("[App]", "samplerate", DenonMC6000MK2.SAMPLE_RATE);
}
DenonMC6000MK2.backupNumDecks = DenonMC6000MK2.getValue("num_decks");
DenonMC6000MK2.backupNumDecks = engine.getValue("[App]", "num_decks");
if (DenonMC6000MK2.backupNumDecks !== DenonMC6000MK2.DECK_COUNT) {
DenonMC6000MK2.logInfo(
"Adjusting number of decks: " +
DenonMC6000MK2.backupNumDecks +
" -> " +
DenonMC6000MK2.DECK_COUNT);
DenonMC6000MK2.setValue("num_decks", DenonMC6000MK2.DECK_COUNT);
engine.setValue("[App]", "num_decks", DenonMC6000MK2.DECK_COUNT);
}
DenonMC6000MK2.backupNumSamplers = DenonMC6000MK2.getValue("num_samplers");
DenonMC6000MK2.backupNumSamplers = engine.getValue("[App]", "num_samplers");
var numSamplers = DenonMC6000MK2.SIDE_COUNT * DenonMC6000MK2.SAMPLER_COUNT_PER_SIDE;
if (DenonMC6000MK2.backupNumSamplers !== numSamplers) {
DenonMC6000MK2.logInfo(
"Adjusting number of samplers: " +
DenonMC6000MK2.backupNumSamplers +
" -> " +
numSamplers);
DenonMC6000MK2.setValue("num_samplers", numSamplers);
engine.setValue("[App]", "num_samplers", numSamplers);
}
};

Expand Down
4 changes: 2 additions & 2 deletions res/controllers/Electrix-Tweaker-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,8 @@ ElectrixTweaker.channelRegEx = /\[Channel(\d+)\]/;
// ================================================= INITIALIZATION & SHUTDOWN ============================================

ElectrixTweaker.init = function() {
if (engine.getValue("[Master]", "num_samplers") < 8) {
engine.setValue("[Master]", "num_samplers", 8);
if (engine.getValue("[App]", "num_samplers") < 8) {
engine.setValue("[App]", "num_samplers", 8);
}
for (const group in ElectrixTweaker.encoders) { // loop over each [Channel]
// engine.softTakeover('[QuickEffectRack1_'+group+']', 'super1', true)
Expand Down
4 changes: 2 additions & 2 deletions res/controllers/Hercules-DJ-Control-AIR-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ HerculesAir.init = function(id) {
}

// Set soft-takeover for all Sampler volumes
for (var i=engine.getValue("[Master]","num_samplers"); i>=1; i--) {
for (var i=engine.getValue("[App]", "num_samplers"); i>=1; i--) {
engine.softTakeover("[Sampler"+i+"]","pregain",true);
}
// Set soft-takeover for all applicable Deck controls
for (var i=engine.getValue("[Master]","num_decks"); i>=1; i--) {
for (var i=engine.getValue("[App]", "num_decks"); i>=1; i--) {
engine.softTakeover("[Channel"+i+"]","volume",true);
engine.softTakeover("[Channel"+i+"]","filterHigh",true);
engine.softTakeover("[Channel"+i+"]","filterMid",true);
Expand Down
4 changes: 2 additions & 2 deletions res/controllers/Hercules-P32-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ P32.init = function() {
components.Component.prototype.shiftChannel = true;
components.Button.prototype.sendShifted = true;

if (engine.getValue("[Master]", "num_samplers") < 32) {
engine.setValue("[Master]", "num_samplers", 32);
if (engine.getValue("[App]", "num_samplers") < 32) {
engine.setValue("[App]", "num_samplers", 32);
}

P32.leftDeck = new P32.Deck([1, 3], 1);
Expand Down
4 changes: 2 additions & 2 deletions res/controllers/Korg-nanoKONTROL-2-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@ NK2.beatloopLengths=new Array(0.03125,0.0625, 0.125, 0.25, 0.5, 1, 2, 4, 8, 16,

NK2.init = function init() { // called when the device is opened & set up
if (NK2.debug>2){print("##function: "+NK2.getFunctionName())};
engine.setValue("[Master]", "num_decks", NK2.numDecks);
engine.setValue("[App]", "num_decks", NK2.numDecks);
NK2.setup()

NK2.updateLEDs();
print("decks: "+engine.getValue("[Master]", "num_decks"))
print("decks: "+engine.getValue("[App]", "num_decks"))
};

NK2.shutdown = function shutdown() {
Expand Down
2 changes: 1 addition & 1 deletion res/controllers/Novation-Launchpad MK2-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -3851,7 +3851,7 @@ var NLMK2 = (function () {
type: 'binary'
},
num_samplers: {
group: '[Master]',
group: '[App]',
name: 'num_samplers',
type: 'number'
}
Expand Down
2 changes: 1 addition & 1 deletion res/controllers/Novation-Launchpad-Mini-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ NLM.init = function()
{
NLM.page = 0;
NLM.shiftstate = false;
NLM.numofdecks = engine.getValue("[Master]", "num_decks");
NLM.numofdecks = engine.getValue("[App]", "num_decks");
// For testing NLM.numofdecks = 4;

//Init hw
Expand Down
2 changes: 1 addition & 1 deletion res/controllers/Novation-Launchpad-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -3851,7 +3851,7 @@ var NLMK1 = (function () {
type: 'binary'
},
num_samplers: {
group: '[Master]',
group: '[App]',
name: 'num_samplers',
type: 'number'
}
Expand Down
16 changes: 8 additions & 8 deletions res/controllers/Reloop Terminal Mix 2-4.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,14 +83,14 @@ TerminalMix.init = function (id,debug) {
TerminalMix.effectUnit24.init();

// Enable four decks in v1.11.x
engine.setValue("[Master]", "num_decks", 4);
engine.setValue("[App]", "num_decks", 4);

// Set soft-takeover for all Sampler volumes
for (var i=engine.getValue("[Master]","num_samplers"); i>=1; i--) {
for (var i=engine.getValue("[App]", "num_samplers"); i>=1; i--) {
engine.softTakeover("[Sampler"+i+"]","pregain",true);
}
// Set soft-takeover for all applicable Deck controls
for (var i=engine.getValue("[Master]","num_decks"); i>=1; i--) {
for (var i=engine.getValue("[App]", "num_decks"); i>=1; i--) {
engine.softTakeover("[Channel"+i+"]","volume",true);
engine.softTakeover("[Channel"+i+"]","filterHigh",true);
engine.softTakeover("[Channel"+i+"]","filterMid",true);
Expand Down Expand Up @@ -167,7 +167,7 @@ TerminalMix.wheelTurn = function (channel, control, value, status, group) {

TerminalMix.samplerVolume = function (channel, control, value) {
// Link all sampler volume controls to the Sampler Volume knob
for (var i=engine.getValue("[Master]","num_samplers"); i>=1; i--) {
for (var i=engine.getValue("[App]", "num_samplers"); i>=1; i--) {
engine.setValue("[Sampler"+i+"]","pregain",
script.absoluteNonLin(value, 0.0, 1.0, 4.0));
}
Expand Down Expand Up @@ -441,7 +441,7 @@ TerminalMix.crossFader = function (channel, control, value, status, group) {

// If CF is now full left and decks assigned to R are playing, cue them
if (cfValue==-1.0) {
for (var i=engine.getValue("[Master]","num_decks"); i>=1; i--) {
for (var i=engine.getValue("[App]", "num_decks"); i>=1; i--) {
group = "[Channel"+i+"]";
if (TerminalMix.faderStart[group]
&& engine.getValue(group,"orientation")==2
Expand All @@ -453,7 +453,7 @@ TerminalMix.crossFader = function (channel, control, value, status, group) {

if (cfValue==1.0) {
// If CF is now full right and decks assigned to L are playing, cue them
for (var i=engine.getValue("[Master]","num_decks"); i>=1; i--) {
for (var i=engine.getValue("[App]", "num_decks"); i>=1; i--) {
group = "[Channel"+i+"]";
if (TerminalMix.faderStart[group]
&& engine.getValue(group,"orientation")==0
Expand All @@ -465,7 +465,7 @@ TerminalMix.crossFader = function (channel, control, value, status, group) {

// If the CF is moved from full left, start any decks assigned to R
if (TerminalMix.lastFader["crossfader"]==-1.0) {
for (var i=engine.getValue("[Master]","num_decks"); i>=1; i--) {
for (var i=engine.getValue("[App]", "num_decks"); i>=1; i--) {
group = "[Channel"+i+"]";
if (TerminalMix.faderStart[group]
&& engine.getValue(group,"orientation")==2) {
Expand All @@ -476,7 +476,7 @@ TerminalMix.crossFader = function (channel, control, value, status, group) {

if (TerminalMix.lastFader["crossfader"]==1.0) {
// If the CF is moved from full right, start any decks assigned to L
for (var i=engine.getValue("[Master]","num_decks"); i>=1; i--) {
for (var i=engine.getValue("[App]", "num_decks"); i>=1; i--) {
group = "[Channel"+i+"]";
if (TerminalMix.faderStart[group]
&& engine.getValue(group,"orientation")==0) {
Expand Down
2 changes: 1 addition & 1 deletion res/controllers/Reloop-Beatmix-2-4-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ ReloopBeatmix24.ShiftSamplerPad = function(channel, control, value, status,
};

ReloopBeatmix24.SamplerVol = function(channel, control, value, _status, _group) {
for (let i = 1; i <= engine.getValue("[Master]", "num_samplers"); i++) {
for (let i = 1; i <= engine.getValue("[App]", "num_samplers"); i++) {
engine.setValue("[Sampler" + i + "]", "volume", value / 127.0);
}
};
Expand Down
4 changes: 2 additions & 2 deletions res/controllers/Reloop-Beatpad-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -1655,11 +1655,11 @@ ReloopBeatpad.init = function(id, debug) {
ReloopBeatpad.initobjects();

// Set soft-takeover for all Sampler volumes
for (i = engine.getValue("[Master]", "num_samplers"); i >= 1; i--) {
for (i = engine.getValue("[App]", "num_samplers"); i >= 1; i--) {
engine.softTakeover("[Sampler" + i + "]", "pregain", true);
}
// Set soft-takeover for all applicable Deck controls
for (i = engine.getValue("[Master]", "num_decks"); i >= 1; i--) {
for (i = engine.getValue("[App]", "num_decks"); i >= 1; i--) {
engine.softTakeover("[Channel" + i + "]", "volume", true);
engine.softTakeover("[Channel" + i + "]", "filterHigh", true);
engine.softTakeover("[Channel" + i + "]", "filterMid", true);
Expand Down
4 changes: 2 additions & 2 deletions res/controllers/Roland_DJ-505-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,8 @@ DJ505.init = function() {
engine.makeConnection("[Channel3]", "track_loaded", DJ505.autoShowDecks);
engine.makeConnection("[Channel4]", "track_loaded", DJ505.autoShowDecks);

if (engine.getValue("[Master]", "num_samplers") < 16) {
engine.setValue("[Master]", "num_samplers", 16);
if (engine.getValue("[App]", "num_samplers") < 16) {
engine.setValue("[App]", "num_samplers", 16);
}

// Send Serato SysEx messages to request initial state and unlock pads
Expand Down
4 changes: 2 additions & 2 deletions res/controllers/Stanton-DJC-4-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ DJC4.init = function() {
engine.makeConnection("[Channel3]", "track_loaded", DJC4.autoShowDecks);
engine.makeConnection("[Channel4]", "track_loaded", DJC4.autoShowDecks);

if (engine.getValue("[Master]", "num_samplers") < 8) {
engine.setValue("[Master]", "num_samplers", 8);
if (engine.getValue("[App]", "num_samplers") < 8) {
engine.setValue("[App]", "num_samplers", 8);
}

DJC4.browseEncoder = new components.Encoder({
Expand Down
4 changes: 2 additions & 2 deletions res/controllers/Stanton-SCS1d-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ StantonSCS1d.init2 = function () {
// Force change to first deck, initializing the LEDs and connecting signals in the process
StantonSCS1d.state["Oldknob"]=1;
// Set active deck to last available so the below will switch to #1.
StantonSCS1d.deck = engine.getValue("[Master]","num_decks");
StantonSCS1d.deck = engine.getValue("[App]", "num_decks");
// Set the default platter mode for this last deck
if (!StantonSCS1d.platterMode["[Channel"+StantonSCS1d.deck+"]"])
StantonSCS1d.platterMode["[Channel"+StantonSCS1d.deck+"]"] = StantonSCS1d.platterMode["default"];
Expand Down Expand Up @@ -791,7 +791,7 @@ StantonSCS1d.DeckChange = function (channel, control, value, status) {
StantonSCS1d.newPlatterMode = StantonSCS1d.platterMode["[Channel"+StantonSCS1d.deck+"]"];

// Supports n-decks
if (StantonSCS1d.deck == engine.getValue("[Master]","num_decks")) StantonSCS1d.deck=1;
if (StantonSCS1d.deck == engine.getValue("[App]", "num_decks")) StantonSCS1d.deck=1;
else StantonSCS1d.deck++;

if (StantonSCS1d.debug) print("StantonSCS1d: Switching to deck "+StantonSCS1d.deck);
Expand Down
4 changes: 2 additions & 2 deletions res/controllers/Stanton-SCS1m-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ StantonSCS1m.init = function (id) { // called when the MIDI device is opened

// Force change to first deck, initializing the LEDs and connecting signals in the process
// Set active deck to last available so the below will switch to #1.
StantonSCS1m.hotCueDeck = engine.getValue("[Master]","num_decks");
StantonSCS1m.hotCueDeck = engine.getValue("[App]", "num_decks");
StantonSCS1m.hotCueDeckChange(StantonSCS1m.channel, 34, 0x7F, 0x90+StantonSCS1m.channel);
StantonSCS1m.hotCueDeckChange(StantonSCS1m.channel, 34, 0x00, 0x80+StantonSCS1m.channel);

Expand Down Expand Up @@ -464,7 +464,7 @@ StantonSCS1m.hotCueDeckChange = function (channel, control, value, status) {
if (StantonSCS1m.modifier["hotCueToggleTime"] != 0.0 && ((new Date() - StantonSCS1m.modifier["hotCueToggleTime"])>300)) return;

StantonSCS1m.connectPresetSignals(channel,true); // Disconnect previous ones
if (StantonSCS1m.hotCueDeck == engine.getValue("[Master]","num_decks")) StantonSCS1m.hotCueDeck=1;
if (StantonSCS1m.hotCueDeck == engine.getValue("[App]", "num_decks")) StantonSCS1m.hotCueDeck=1;
else StantonSCS1m.hotCueDeck++;
// Change bank button color
if (StantonSCS1m.hotCueDeck % 2 == 0) midi.sendShortMsg(0x90 + channel,34,64); // On
Expand Down
6 changes: 3 additions & 3 deletions res/controllers/Stanton-SCS3d-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ StantonSCS3d.init2 = function () {
// Force change to first deck, initializing the control surface & LEDs and connecting signals in the process

// Set active deck to the last one so the below will switch to #1.
StantonSCS3d.deck = engine.getValue("[Master]","num_decks");
StantonSCS3d.deck = engine.getValue("[App]", "num_decks");
if (StantonSCS3d.singleDeck) // Force timer to expire so the deck change happens
StantonSCS3d.modifier["deckTime"] = new Date() - StantonSCS3d.deckChangeWait;
StantonSCS3d.DeckChangeP1(StantonSCS3d.channel, StantonSCS3d.buttons["deck"], "null", 0x90+StantonSCS3d.channel);
Expand Down Expand Up @@ -1100,7 +1100,7 @@ StantonSCS3d.deckChangeFlash = function (channel, value, targetSide) {
// Finish the deck change
StantonSCS3d.deckIndicator(byte1,true); // Deck indicator on
if (!StantonSCS3d.state["logoLit"] && StantonSCS3d.deck > 0 &&
StantonSCS3d.deck <= engine.getValue("[Master]","num_decks")) {
StantonSCS3d.deck <= engine.getValue("[App]", "num_decks")) {
// Re-light the Stanton logo if we're within deck #1-4 and if it had
// been extinguished before
midi.sendShortMsg(byte1,0x7A,0x01);
Expand Down Expand Up @@ -1188,7 +1188,7 @@ StantonSCS3d.DeckChangeP1 = function (channel, control, value, status) {
StantonSCS3d.mode_store["[Channel"+StantonSCS3d.deck+"]"].substring(0,4) == "loop")
for (i=0x48; i<=0x5c; i++) midi.sendShortMsg(byte1,i,0x40); // Set surface LEDs to black
StantonSCS3d.deck++;
if (StantonSCS3d.deck > engine.getValue("[Master]","num_decks")) StantonSCS3d.deck = 1; // Wrap around
if (StantonSCS3d.deck > engine.getValue("[App]", "num_decks")) StantonSCS3d.deck = 1; // Wrap around
if (StantonSCS3d.debug) print("StantonSCS3d: Switching to deck "+StantonSCS3d.deck);
midi.sendShortMsg(byte1,0x71,0x00); // Deck A light off
midi.sendShortMsg(byte1,0x72,0x00); // Deck B light off
Expand Down
4 changes: 2 additions & 2 deletions res/controllers/Traktor-Kontrol-S4-MK3.js
Original file line number Diff line number Diff line change
Expand Up @@ -2722,8 +2722,8 @@ class S4Mk3MixerColumn extends ComponentContainer {

class S4MK3 {
constructor() {
if (engine.getValue("[Master]", "num_samplers") < 16) {
engine.setValue("[Master]", "num_samplers", 16);
if (engine.getValue("[App]", "num_samplers") < 16) {
engine.setValue("[App]", "num_samplers", 16);
}

this.inReports = [];
Expand Down
6 changes: 3 additions & 3 deletions res/controllers/Vestax-VCI-300-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -281,13 +281,13 @@ VestaxVCI300.updatePitchValue = function(group, pitchHigh, pitchLow) {

VestaxVCI300.initValues = function() {
VestaxVCI300.scrollState = false;
VestaxVCI300.numDecksBackup = engine.getValue(VestaxVCI300.group, "num_decks");
engine.setValue(VestaxVCI300.group, "num_decks", 2);
VestaxVCI300.numDecksBackup = engine.getValue("[App]", "num_decks");
engine.setValue("[App]", "num_decks", 2);
engine.setValue(VestaxVCI300.group, "headMix", 0.0);
};

VestaxVCI300.restoreValues = function() {
engine.setValue(VestaxVCI300.group, "num_decks", VestaxVCI300.numDecksBackup);
engine.setValue("[App]", "num_decks", VestaxVCI300.numDecksBackup);
};

VestaxVCI300.connectControl = function(group, ctrl, func) {
Expand Down
2 changes: 1 addition & 1 deletion res/controllers/Vestax-VCI-400-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ VestaxVCI400.ModeEnum = {
* Called when the MIDI device is opened for set up
*/
VestaxVCI400.init = function (id) {
engine.setValue("[Master]", "num_decks", 4);
engine.setValue("[App]", "num_decks", 4);
//Initialize controls and their default values here
VestaxVCI400.Decks.A.init();
VestaxVCI400.Decks.B.init();
Expand Down
2 changes: 1 addition & 1 deletion res/controllers/common-hid-packet-parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -2085,7 +2085,7 @@ class HIDController {
deck = 1;
} else {
// This is unusable: num_decks has always minimum 4 decks
// var totalDecks = engine.getValue("[Master]","num_decks");
// var totalDecks = engine.getValue("[App]", "num_decks");
// deck = (this.activeDeck+1) % totalDecks;
deck = this.deckSwitchMap[this.activeDeck];
if (deck === undefined) {
Expand Down
6 changes: 3 additions & 3 deletions res/qml/LibraryControl.qml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ Item {
Mixxx.ControlProxy {
id: numDecksControl

group: "[Master]"
group: "[App]"
key: "num_decks"
}

Expand All @@ -118,7 +118,7 @@ Item {
Mixxx.ControlProxy {
id: numPreviewDecksControl

group: "[Master]"
group: "[App]"
key: "num_preview_decks"
}

Expand All @@ -139,7 +139,7 @@ Item {
Mixxx.ControlProxy {
id: numSamplersControl

group: "[Master]"
group: "[App]"
key: "num_samplers"
}

Expand Down
6 changes: 3 additions & 3 deletions res/skins/Deere (64 Samplers)/skin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
<license>Creative Commons Attribution, Share-Alike 3.0 Unported</license>
<attributes>
<!-- Set skin defaults. -->
<attribute config_key="[Master],num_decks">4</attribute>
<attribute config_key="[Master],num_samplers">64</attribute>
<attribute config_key="[Master],num_preview_decks">1</attribute>
<attribute config_key="[App],num_decks">4</attribute>
<attribute config_key="[App],num_samplers">64</attribute>
<attribute config_key="[App],num_preview_decks">1</attribute>
<attribute persist="true" config_key="[Deere],show_parallel_waveforms">1</attribute>
<!-- Decks -->
<attribute persist="true" config_key="[Skin],show_4decks">0</attribute>
Expand Down
6 changes: 3 additions & 3 deletions res/skins/Deere/skin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
<license>Creative Commons Attribution, Share-Alike 3.0 Unported</license>
<attributes>
<!-- Set skin defaults. -->
<attribute config_key="[Master],num_decks">4</attribute>
<attribute config_key="[Master],num_samplers">16</attribute>
<attribute config_key="[Master],num_preview_decks">1</attribute>
<attribute config_key="[App],num_decks">4</attribute>
<attribute config_key="[App],num_samplers">16</attribute>
<attribute config_key="[App],num_preview_decks">1</attribute>
<attribute persist="true" config_key="[Deere],show_parallel_waveforms">1</attribute>
<!-- Decks -->
<attribute persist="true" config_key="[Skin],show_4decks">0</attribute>
Expand Down
4 changes: 2 additions & 2 deletions res/skins/LateNight (64 Samplers)/skin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@
<license>Creative Commons Attribution, Share-Alike 3.0 Unported</license>
<attributes>
<!-- Set skin defaults -->
<attribute config_key="[Master],num_decks">4</attribute>
<attribute config_key="[Master],num_samplers">64</attribute>
<attribute config_key="[App],num_decks">4</attribute>
<attribute config_key="[App],num_samplers">64</attribute>
<attribute persist="true" config_key="[Skin],show_waveforms">1</attribute>
<attribute persist="true" config_key="[Skin],timing_shift_buttons">0</attribute>

Expand Down
Loading

0 comments on commit f324542

Please sign in to comment.