{"action":"created","comment":{"url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/comments/50420627","id":50420627,"diff_hunk":"@@ -0,0 +1,444 @@\n+function Jockey3ME() {}\n+\n+// Variables\n+Jockey3ME.EffectLedMeter = 0;\n+Jockey3ME.EffectLedMeterValue = 1;\n+Jockey3ME.LedMeterShowValue = 1;\n+Jockey3ME.LedMeterShowValueTwo = false;\n+Jockey3ME.VuMeter = 0;\n+Jockey3ME.scratching = [];\n+Jockey3ME.hotcueClearVal = 0;\n+Jockey3ME.crossfaderScratch = false;\n+Jockey3ME.effectSelectTimer = 0;\n+Jockey3ME.num_effectsValue = [0,0,0,0];\n+Jockey3ME.effectsAvailable = 5; // Sets how many Effects are Loadable\n+Jockey3ME.move_beat_value = 4; // Sets how many Beats Jumping when \"MOVE\" is Turned\n+Jockey3ME.CUP_value = 0;\n+Jockey3ME.MixerDeck1 = 0;\n+Jockey3ME.MixerDeck2 = 0;\n+Jockey3ME.noVolHopValue = [false,false,false,false,false];\n+\n+// Functions\n+Jockey3ME.EffectLedMeterShow = function () {\n+  midi.sendShortMsg(0x90,0x1D,Jockey3ME.EffectLedMeterValue);\n+  midi.sendShortMsg(0x91,0x1D,Jockey3ME.EffectLedMeterValue);\n+  Jockey3ME.EffectLedMeterValue += 2;\n+  if (Jockey3ME.EffectLedMeterValue >= 127) {\n+    engine.stopTimer(Jockey3ME.EffectLedMeter);\n+    Jockey3ME.EffectLedMeter = 0;\n+\n+    // Sets Effect Leds\n+    for (var i = 1, j = 176; i <= 4; i++) {\n+      Jockey3ME.effectSelectLedSet(j,i);\n+      j++;\n+    }\n+  };\n+}\n+// Main LedShow Script\n+Jockey3ME.LedMeterShow = function() {\n+  midi.sendShortMsg(0x90,0x21,Jockey3ME.LedMeterShowValue);\n+  midi.sendShortMsg(0x91,0x21,Jockey3ME.LedMeterShowValue);\n+  if (Jockey3ME.LedMeterShowValueTwo == false) {\n+    ++Jockey3ME.LedMeterShowValue;\n+  } else {\n+    --Jockey3ME.LedMeterShowValue;\n+  }\n+  if (Jockey3ME.LedMeterShowValue > 10) Jockey3ME.LedMeterShowValueTwo = true;\n+  // Stop The LedShow and Start Scanning VuMeter\n+  if (Jockey3ME.LedMeterShowValueTwo && Jockey3ME.LedMeterShowValue <= 0) {\n+    engine.stopTimer(Jockey3ME.LedMeterShowTimer);\n+    Jockey3ME.LedMeterShowTimer = 0;\n+    Jockey3ME.VuMeter = engine.beginTimer(20,\"Jockey3ME.fVuMeter()\"); // Start Every 20ms the fVuMeter Function\n+    Jockey3ME.EffectLedMeter = engine.beginTimer(20,\"Jockey3ME.EffectLedMeterShow()\");\n+  };\n+}\n+\n+Jockey3ME.LedShowBegin = function () {\n+  Jockey3ME.LedMeterShowTimer = engine.beginTimer(40,\"Jockey3ME.LedMeterShow()\");\n+}\n+\n+// Init Script at Programmstart\n+Jockey3ME.init = function () {\n+  for (var i = 1; i < 120; i++) {\n+    midi.sendShortMsg(0x90,i,0x7F);\n+    midi.sendShortMsg(0x91,i,0x7F);\n+    midi.sendShortMsg(0x92,i,0x7F);\n+    midi.sendShortMsg(0x93,i,0x7F);\n+  };\n+  for (var j = 1; j < 120; j++) {\n+    midi.sendShortMsg(0x90,j,0x00);\n+    midi.sendShortMsg(0x91,j,0x00);\n+    midi.sendShortMsg(0x92,j,0x00);\n+    midi.sendShortMsg(0x93,j,0x00);\n+  };\n+  Jockey3ME.LedShowBeginTimer = engine.beginTimer(500,\"Jockey3ME.LedShowBegin()\",1); // LedShow Script Starts Here after 500ms\n+}\n+\n+// Sets VuMeter new Value to Leds\n+Jockey3ME.fVuMeter = function () {\n+  var VuVal1 = engine.getValue(\"[Channel1]\",\"VuMeter\");\n+  var VuVal2 = engine.getValue(\"[Channel2]\",\"VuMeter\");\n+  var VuVal3 = engine.getValue(\"[Channel3]\",\"VuMeter\");\n+  var VuVal4 = engine.getValue(\"[Channel4]\",\"VuMeter\");\n+  VuVal1 = VuVal1 * 10;\n+  VuVal1 = parseInt(VuVal1);\n+  VuVal2 = VuVal2 * 10;\n+  VuVal2 = parseInt(VuVal2);\n+  VuVal3 = VuVal3 * 10;\n+  VuVal3 = parseInt(VuVal3);\n+  VuVal4 = VuVal4 * 10;\n+  VuVal4 = parseInt(VuVal4);\n+  midi.sendShortMsg(0x90,0x21,VuVal1);\n+  midi.sendShortMsg(0x91,0x21,VuVal2);\n+  midi.sendShortMsg(0x92,0x21,VuVal3);\n+  midi.sendShortMsg(0x93,0x21,VuVal4);\n+}\n+\n+Jockey3ME.shutdown = function () {\n+  for (var i = 1; i <= 160; i++) {\n+    midi.sendShortMsg(0x90,i,0x00);\n+    midi.sendShortMsg(0x91,i,0x00);\n+    midi.sendShortMsg(0x92,i,0x00);\n+    midi.sendShortMsg(0x93,i,0x00);\n+  };\n+  engine.stopTimer(Jockey3ME.VuMeter);\n+  Jockey3ME.VuMeter = 0;\n+}\n+\n+// The button that enables/disables scratching\n+Jockey3ME.wheelTouch = function (channel, control, value, status, group) {\n+  var currentDeck = parseInt(group.substring(8,9));\n+    if (value == 0x7F) {  // Some wheels send 0x90 on press and release, so you need to check the value\n+        var alpha = 1.0/8;\n+        var beta = alpha/32;\n+        engine.scratchEnable(currentDeck, 2048, 45+1/3, alpha, beta);\n+    }\n+    else {    // If button up\n+        engine.scratchDisable(currentDeck);\n+    }\n+}\n+\n+// The wheel that actually controls the scratching\n+Jockey3ME.wheelTurn = function (channel, control, value, status, group) {\n+  var newValue=(value-64);\n+  var currentDeck = parseInt(group.substring(8,9));\n+    // See if we're scratching. If not, skip this.\n+    if (!engine.isScratching(currentDeck)) {\n+      if (newValue > 1 || newValue < -1) {\n+        newValue /= 2;  // If Jogwheel Resolution is High\n+      }\n+      engine.setValue(group, \"jog\", newValue);\n+      return;\n+   }\n+    engine.scratchTick(currentDeck,newValue);\n+}\n+\n+// Hotcues\n+Jockey3ME.hotcue_activate = function (channel, control, value, status, group) {\n+  Jockey3ME.hotc = Jockey3ME.hotcue_buttonSelect(control);\n+\n+  if (!Jockey3ME.hotcueClearVal && engine.getValue(group,\"hotcue_\"+Jockey3ME.hotc+\"_enabled\") == 0 && value == 0x7F) {\n+    engine.setValue(group,\"hotcue_\"+Jockey3ME.hotc+\"_activate\",1);\n+    engine.setValue(group,\"hotcue_\"+Jockey3ME.hotc+\"_activate\",0);\n+  } else if (Jockey3ME.hotcueClearVal && engine.getValue(group,\"hotcue_\"+Jockey3ME.hotc+\"_enabled\") == 1 && value == 0x7F) {\n+    engine.setValue(group,\"hotcue_\"+Jockey3ME.hotc+\"_clear\",1);\n+    engine.setValue(group,\"hotcue_\"+Jockey3ME.hotc+\"_clear\",0);\n+  } else if (value == 0x7F) {\n+    engine.setValue(group,\"hotcue_\"+Jockey3ME.hotc+\"_activate\",1);\n+    engine.setValue(group,\"hotcue_\"+Jockey3ME.hotc+\"_activate\",0);\n+  }\n+}\n+\n+Jockey3ME.hotcue_buttonSelect = function (control) {\n+  Jockey3ME.hotc_midino = [11,12,13,14,15,16,17,18];\n+  for (var i = 0; i < Jockey3ME.hotc_midino.length; i++) {\n+    switch (control) {\n+      case Jockey3ME.hotc_midino[i]:\n+        return Jockey3ME.hotc_midino[i] - 10;\n+        break;\n+    }\n+  };\n+}\n+\n+Jockey3ME.hotcueClearVal_off = function() {\n+  if (Jockey3ME.hotcueClearVal) {\n+    Jockey3ME.hotcueClearVal = 0;\n+  };\n+}\n+\n+Jockey3ME.hotcue_clear = function (channel, control, value, status, group) {\n+   if (control == 0x09 && value == 0x7F) {\n+    Jockey3ME.hotcueClearVal_off();\n+    Jockey3ME.hotcueClearVal = 1;\n+    midi.sendShortMsg(status,control,0x01);\n+   } else {\n+    Jockey3ME.hotcueClearVal_off();\n+    midi.sendShortMsg(status,control,0x00);\n+   };\n+}\n+\n+// Effect Sections\n+Jockey3ME.effectParam = function (channel, control, value, status, group) {\n+  var currentDeck = parseInt(group.substring(23,24));\n+  var EncoderKnopDryWet = 0;\n+  var EncoderKnopFX = 0;\n+  var newVal = 0;\n+  var interval = 0.04;\n+  var min = 0;\n+  var max = 1;\n+  switch (control) {\n+    case 29:\n+      EncoderKnopDryWet = 1;\n+      break;\n+    default:\n+      EncoderKnopFX = control - 29;\n+      break;\n+  }\n+  if (!EncoderKnopDryWet) {\n+    if (value == 0x41) {\n+      var curVal = engine.getParameter(\"[EffectRack1_EffectUnit\" + currentDeck + \"_Effect1]\", \"parameter\" + EncoderKnopFX);\n+      newVal = curVal + interval;\n+      if (newVal > max) newVal = max;\n+    } else {\n+      var curVal = engine.getParameter(\"[EffectRack1_EffectUnit\" + currentDeck + \"_Effect1]\", \"parameter\" + EncoderKnopFX);\n+      newVal = curVal - interval;\n+      if (newVal < min) newVal = min;\n+    }\n+  } else {\n+    if (value == 0x41) {\n+      var curVal = engine.getParameter(\"[EffectRack1_EffectUnit\" + currentDeck + \"]\", \"mix\");\n+      newVal = curVal + interval;\n+      if (newVal > max) newVal = max;\n+    } else {\n+      var curVal = engine.getParameter(\"[EffectRack1_EffectUnit\" + currentDeck + \"]\", \"mix\");\n+      newVal = curVal - interval;\n+      if (newVal < min) newVal = min;\n+    }\n+  }\n+  switch (engine.getValue(\"[EffectRack1_EffectUnit\" + currentDeck + \"_Effect1]\", \"num_parameters\")) {\n+    case 1:\n+      if (EncoderKnopFX > 1) EncoderKnopFX = 0;\n+      break;\n+    case 2:\n+      if (EncoderKnopFX > 2) EncoderKnopFX = 0;\n+      break;\n+  }\n+  if (EncoderKnopDryWet) {\n+    engine.setParameter(\"[EffectRack1_EffectUnit\" + currentDeck + \"]\", \"mix\", newVal);\n+  } else if (EncoderKnopFX) {\n+    engine.setParameter(\"[EffectRack1_EffectUnit\" + currentDeck + \"_Effect1]\", \"parameter\" + EncoderKnopFX, newVal);\n+  };\n+\n+  // Leds\n+  status -= 32;\n+  if (EncoderKnopFX) {\n+    Jockey3ME.effectParamLedSet(currentDeck, EncoderKnopFX, status, control);\n+  } else if (EncoderKnopDryWet) {\n+    Jockey3ME.effectMixLedSet(currentDeck,status,control);\n+  };\n+}\n+\n+Jockey3ME.effectParamLedSet = function (currentDeck, index, status, control) {\n+  var ledValue = engine.getParameter(\"[EffectRack1_EffectUnit\" + currentDeck + \"_Effect1]\", \"parameter\" + index);\n+  ledValue = parseInt(ledValue * 127);\n+  midi.sendShortMsg(status,control,ledValue);\n+}\n+\n+Jockey3ME.effectMixLedSet = function (currentDeck, status, control) {\n+  var ledValue = engine.getParameter(\"[EffectRack1_EffectUnit\" + currentDeck + \"]\", \"mix\");\n+  ledValue = parseInt(ledValue * 127);\n+  midi.sendShortMsg(status,control,ledValue);\n+}\n+\n+Jockey3ME.effectSelectLedSetNumEffect = function (currentDeck, status, control, value) {\n+  // var ledValue = engine.getValue(\"[EffectRack1_EffectUnit\" + currentDeck + \"]\", \"num_effects\");\n+  var ledValue = Jockey3ME.effectsAvailable; // num_effects returns how many effects in Unit is, not what is available. Set to 5\n+  if ((Jockey3ME.num_effectsValue[currentDeck - 1] + value) > ledValue) {\n+    Jockey3ME.num_effectsValue[currentDeck - 1] = 1;\n+  } else {\n+    Jockey3ME.num_effectsValue[currentDeck - 1] += value;\n+  }\n+  var newLedValue = parseInt((Jockey3ME.num_effectsValue[currentDeck - 1] / ledValue) * 127);\n+  midi.sendShortMsg((status-32),control,newLedValue);\n+}\n+\n+Jockey3ME.effectSelect = function (channel, control, value, status, group) {\n+  var currentDeck = parseInt(group.substring(23,24));\n+  engine.setValue(\"[EffectRack1_EffectUnit\" + currentDeck + \"]\", \"chain_selector\", (value-64));\n+\n+  // Set Leds\n+  Jockey3ME.effectSelectTimer = engine.beginTimer(100, \"Jockey3ME.effectSelectLedSet(\" + status + \",\" + currentDeck + \")\",1);\n+  Jockey3ME.effectSelectLedSetNumEffect(currentDeck,status,92,(value-64));\n+}\n+\n+Jockey3ME.effectSelectLedSet = function (status, currentDeck) {\n+  status -= 32;\n+  var num_parameters = engine.getValue(\"[EffectRack1_EffectUnit\" + currentDeck + \"_Effect1]\", \"num_parameters\");\n+  if (num_parameters > 3) {num_parameters = 3;};\n+  if (num_parameters) {\n+    for (var i = 1, j = 30; i <= num_parameters; i++) {\n+      Jockey3ME.effectParamLedSet(currentDeck, i, status, j);","path":"res/controllers/Reloop-Jockey-3-ME-scripts.js","position":280,"original_position":280,"commit_id":"da4b259acab9869a63ec825679811ea1e6f511c0","original_commit_id":"da4b259acab9869a63ec825679811ea1e6f511c0","user":{"login":"Chris2000SP","id":16541294,"avatar_url":"https://avatars.githubusercontent.com/u/16541294?v=3","gravatar_id":"","url":"https://api.github.com/users/Chris2000SP","html_url":"https://github.com/Chris2000SP","followers_url":"https://api.github.com/users/Chris2000SP/followers","following_url":"https://api.github.com/users/Chris2000SP/following{/other_user}","gists_url":"https://api.github.com/users/Chris2000SP/gists{/gist_id}","starred_url":"https://api.github.com/users/Chris2000SP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Chris2000SP/subscriptions","organizations_url":"https://api.github.com/users/Chris2000SP/orgs","repos_url":"https://api.github.com/users/Chris2000SP/repos","events_url":"https://api.github.com/users/Chris2000SP/events{/privacy}","received_events_url":"https://api.github.com/users/Chris2000SP/received_events","type":"User","site_admin":false},"body":"Nice, thats cool functions!","created_at":"2016-01-21T16:06:03Z","updated_at":"2016-01-21T16:06:03Z","html_url":"https://github.com/mixxxdj/mixxx/pull/840#discussion_r50420627","pull_request_url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/840","_links":{"self":{"href":"https://api.github.com/repos/mixxxdj/mixxx/pulls/comments/50420627"},"html":{"href":"https://github.com/mixxxdj/mixxx/pull/840#discussion_r50420627"},"pull_request":{"href":"https://api.github.com/repos/mixxxdj/mixxx/pulls/840"}}},"pull_request":{"url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/840","id":55019440,"html_url":"https://github.com/mixxxdj/mixxx/pull/840","diff_url":"https://github.com/mixxxdj/mixxx/pull/840.diff","patch_url":"https://github.com/mixxxdj/mixxx/pull/840.patch","issue_url":"https://api.github.com/repos/mixxxdj/mixxx/issues/840","number":840,"state":"open","locked":false,"title":"Add Reloop Jockey 3 ME Mapping","user":{"login":"Chris2000SP","id":16541294,"avatar_url":"https://avatars.githubusercontent.com/u/16541294?v=3","gravatar_id":"","url":"https://api.github.com/users/Chris2000SP","html_url":"https://github.com/Chris2000SP","followers_url":"https://api.github.com/users/Chris2000SP/followers","following_url":"https://api.github.com/users/Chris2000SP/following{/other_user}","gists_url":"https://api.github.com/users/Chris2000SP/gists{/gist_id}","starred_url":"https://api.github.com/users/Chris2000SP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Chris2000SP/subscriptions","organizations_url":"https://api.github.com/users/Chris2000SP/orgs","repos_url":"https://api.github.com/users/Chris2000SP/repos","events_url":"https://api.github.com/users/Chris2000SP/events{/privacy}","received_events_url":"https://api.github.com/users/Chris2000SP/received_events","type":"User","site_admin":false},"body":"I hope i do it the right way now.","created_at":"2016-01-04T20:41:15Z","updated_at":"2016-01-21T16:06:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3118f143c6a8e472c2321dd48c5cb6dac1243e3b","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/840/commits","review_comments_url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/840/comments","review_comment_url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mixxxdj/mixxx/issues/840/comments","statuses_url":"https://api.github.com/repos/mixxxdj/mixxx/statuses/da4b259acab9869a63ec825679811ea1e6f511c0","head":{"label":"Chris2000SP:1.12","ref":"1.12","sha":"da4b259acab9869a63ec825679811ea1e6f511c0","user":{"login":"Chris2000SP","id":16541294,"avatar_url":"https://avatars.githubusercontent.com/u/16541294?v=3","gravatar_id":"","url":"https://api.github.com/users/Chris2000SP","html_url":"https://github.com/Chris2000SP","followers_url":"https://api.github.com/users/Chris2000SP/followers","following_url":"https://api.github.com/users/Chris2000SP/following{/other_user}","gists_url":"https://api.github.com/users/Chris2000SP/gists{/gist_id}","starred_url":"https://api.github.com/users/Chris2000SP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Chris2000SP/subscriptions","organizations_url":"https://api.github.com/users/Chris2000SP/orgs","repos_url":"https://api.github.com/users/Chris2000SP/repos","events_url":"https://api.github.com/users/Chris2000SP/events{/privacy}","received_events_url":"https://api.github.com/users/Chris2000SP/received_events","type":"User","site_admin":false},"repo":{"id":49005212,"name":"mixxx","full_name":"Chris2000SP/mixxx","owner":{"login":"Chris2000SP","id":16541294,"avatar_url":"https://avatars.githubusercontent.com/u/16541294?v=3","gravatar_id":"","url":"https://api.github.com/users/Chris2000SP","html_url":"https://github.com/Chris2000SP","followers_url":"https://api.github.com/users/Chris2000SP/followers","following_url":"https://api.github.com/users/Chris2000SP/following{/other_user}","gists_url":"https://api.github.com/users/Chris2000SP/gists{/gist_id}","starred_url":"https://api.github.com/users/Chris2000SP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Chris2000SP/subscriptions","organizations_url":"https://api.github.com/users/Chris2000SP/orgs","repos_url":"https://api.github.com/users/Chris2000SP/repos","events_url":"https://api.github.com/users/Chris2000SP/events{/privacy}","received_events_url":"https://api.github.com/users/Chris2000SP/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Chris2000SP/mixxx","description":"Mixxx is Free DJ software that gives you everything you need to perform live mixes.","fork":true,"url":"https://api.github.com/repos/Chris2000SP/mixxx","forks_url":"https://api.github.com/repos/Chris2000SP/mixxx/forks","keys_url":"https://api.github.com/repos/Chris2000SP/mixxx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Chris2000SP/mixxx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Chris2000SP/mixxx/teams","hooks_url":"https://api.github.com/repos/Chris2000SP/mixxx/hooks","issue_events_url":"https://api.github.com/repos/Chris2000SP/mixxx/issues/events{/number}","events_url":"https://api.github.com/repos/Chris2000SP/mixxx/events","assignees_url":"https://api.github.com/repos/Chris2000SP/mixxx/assignees{/user}","branches_url":"https://api.github.com/repos/Chris2000SP/mixxx/branches{/branch}","tags_url":"https://api.github.com/repos/Chris2000SP/mixxx/tags","blobs_url":"https://api.github.com/repos/Chris2000SP/mixxx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Chris2000SP/mixxx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Chris2000SP/mixxx/git/refs{/sha}","trees_url":"https://api.github.com/repos/Chris2000SP/mixxx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Chris2000SP/mixxx/statuses/{sha}","languages_url":"https://api.github.com/repos/Chris2000SP/mixxx/languages","stargazers_url":"https://api.github.com/repos/Chris2000SP/mixxx/stargazers","contributors_url":"https://api.github.com/repos/Chris2000SP/mixxx/contributors","subscribers_url":"https://api.github.com/repos/Chris2000SP/mixxx/subscribers","subscription_url":"https://api.github.com/repos/Chris2000SP/mixxx/subscription","commits_url":"https://api.github.com/repos/Chris2000SP/mixxx/commits{/sha}","git_commits_url":"https://api.github.com/repos/Chris2000SP/mixxx/git/commits{/sha}","comments_url":"https://api.github.com/repos/Chris2000SP/mixxx/comments{/number}","issue_comment_url":"https://api.github.com/repos/Chris2000SP/mixxx/issues/comments{/number}","contents_url":"https://api.github.com/repos/Chris2000SP/mixxx/contents/{+path}","compare_url":"https://api.github.com/repos/Chris2000SP/mixxx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Chris2000SP/mixxx/merges","archive_url":"https://api.github.com/repos/Chris2000SP/mixxx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Chris2000SP/mixxx/downloads","issues_url":"https://api.github.com/repos/Chris2000SP/mixxx/issues{/number}","pulls_url":"https://api.github.com/repos/Chris2000SP/mixxx/pulls{/number}","milestones_url":"https://api.github.com/repos/Chris2000SP/mixxx/milestones{/number}","notifications_url":"https://api.github.com/repos/Chris2000SP/mixxx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Chris2000SP/mixxx/labels{/name}","releases_url":"https://api.github.com/repos/Chris2000SP/mixxx/releases{/id}","created_at":"2016-01-04T15:23:50Z","updated_at":"2016-01-04T15:24:06Z","pushed_at":"2016-01-16T21:20:11Z","git_url":"git://github.com/Chris2000SP/mixxx.git","ssh_url":"git@github.com:Chris2000SP/mixxx.git","clone_url":"https://github.com/Chris2000SP/mixxx.git","svn_url":"https://github.com/Chris2000SP/mixxx","homepage":"http://mixxx.org","size":249605,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"mixxxdj:1.12","ref":"1.12","sha":"c5ef7198f7c251d6d42207acfa80f16c5931b5da","user":{"login":"mixxxdj","id":1743769,"avatar_url":"https://avatars.githubusercontent.com/u/1743769?v=3","gravatar_id":"","url":"https://api.github.com/users/mixxxdj","html_url":"https://github.com/mixxxdj","followers_url":"https://api.github.com/users/mixxxdj/followers","following_url":"https://api.github.com/users/mixxxdj/following{/other_user}","gists_url":"https://api.github.com/users/mixxxdj/gists{/gist_id}","starred_url":"https://api.github.com/users/mixxxdj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mixxxdj/subscriptions","organizations_url":"https://api.github.com/users/mixxxdj/orgs","repos_url":"https://api.github.com/users/mixxxdj/repos","events_url":"https://api.github.com/users/mixxxdj/events{/privacy}","received_events_url":"https://api.github.com/users/mixxxdj/received_events","type":"Organization","site_admin":false},"repo":{"id":10126031,"name":"mixxx","full_name":"mixxxdj/mixxx","owner":{"login":"mixxxdj","id":1743769,"avatar_url":"https://avatars.githubusercontent.com/u/1743769?v=3","gravatar_id":"","url":"https://api.github.com/users/mixxxdj","html_url":"https://github.com/mixxxdj","followers_url":"https://api.github.com/users/mixxxdj/followers","following_url":"https://api.github.com/users/mixxxdj/following{/other_user}","gists_url":"https://api.github.com/users/mixxxdj/gists{/gist_id}","starred_url":"https://api.github.com/users/mixxxdj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mixxxdj/subscriptions","organizations_url":"https://api.github.com/users/mixxxdj/orgs","repos_url":"https://api.github.com/users/mixxxdj/repos","events_url":"https://api.github.com/users/mixxxdj/events{/privacy}","received_events_url":"https://api.github.com/users/mixxxdj/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mixxxdj/mixxx","description":"Mixxx is Free DJ software that gives you everything you need to perform live mixes.","fork":false,"url":"https://api.github.com/repos/mixxxdj/mixxx","forks_url":"https://api.github.com/repos/mixxxdj/mixxx/forks","keys_url":"https://api.github.com/repos/mixxxdj/mixxx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mixxxdj/mixxx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mixxxdj/mixxx/teams","hooks_url":"https://api.github.com/repos/mixxxdj/mixxx/hooks","issue_events_url":"https://api.github.com/repos/mixxxdj/mixxx/issues/events{/number}","events_url":"https://api.github.com/repos/mixxxdj/mixxx/events","assignees_url":"https://api.github.com/repos/mixxxdj/mixxx/assignees{/user}","branches_url":"https://api.github.com/repos/mixxxdj/mixxx/branches{/branch}","tags_url":"https://api.github.com/repos/mixxxdj/mixxx/tags","blobs_url":"https://api.github.com/repos/mixxxdj/mixxx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mixxxdj/mixxx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mixxxdj/mixxx/git/refs{/sha}","trees_url":"https://api.github.com/repos/mixxxdj/mixxx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mixxxdj/mixxx/statuses/{sha}","languages_url":"https://api.github.com/repos/mixxxdj/mixxx/languages","stargazers_url":"https://api.github.com/repos/mixxxdj/mixxx/stargazers","contributors_url":"https://api.github.com/repos/mixxxdj/mixxx/contributors","subscribers_url":"https://api.github.com/repos/mixxxdj/mixxx/subscribers","subscription_url":"https://api.github.com/repos/mixxxdj/mixxx/subscription","commits_url":"https://api.github.com/repos/mixxxdj/mixxx/commits{/sha}","git_commits_url":"https://api.github.com/repos/mixxxdj/mixxx/git/commits{/sha}","comments_url":"https://api.github.com/repos/mixxxdj/mixxx/comments{/number}","issue_comment_url":"https://api.github.com/repos/mixxxdj/mixxx/issues/comments{/number}","contents_url":"https://api.github.com/repos/mixxxdj/mixxx/contents/{+path}","compare_url":"https://api.github.com/repos/mixxxdj/mixxx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mixxxdj/mixxx/merges","archive_url":"https://api.github.com/repos/mixxxdj/mixxx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mixxxdj/mixxx/downloads","issues_url":"https://api.github.com/repos/mixxxdj/mixxx/issues{/number}","pulls_url":"https://api.github.com/repos/mixxxdj/mixxx/pulls{/number}","milestones_url":"https://api.github.com/repos/mixxxdj/mixxx/milestones{/number}","notifications_url":"https://api.github.com/repos/mixxxdj/mixxx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mixxxdj/mixxx/labels{/name}","releases_url":"https://api.github.com/repos/mixxxdj/mixxx/releases{/id}","created_at":"2013-05-17T15:14:38Z","updated_at":"2016-01-19T18:27:50Z","pushed_at":"2016-01-21T14:19:34Z","git_url":"git://github.com/mixxxdj/mixxx.git","ssh_url":"git@github.com:mixxxdj/mixxx.git","clone_url":"https://github.com/mixxxdj/mixxx.git","svn_url":"https://github.com/mixxxdj/mixxx","homepage":"http://mixxx.org","size":265939,"stargazers_count":447,"watchers_count":447,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":283,"mirror_url":null,"open_issues_count":53,"forks":283,"open_issues":53,"watchers":447,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mixxxdj/mixxx/pulls/840"},"html":{"href":"https://github.com/mixxxdj/mixxx/pull/840"},"issue":{"href":"https://api.github.com/repos/mixxxdj/mixxx/issues/840"},"comments":{"href":"https://api.github.com/repos/mixxxdj/mixxx/issues/840/comments"},"review_comments":{"href":"https://api.github.com/repos/mixxxdj/mixxx/pulls/840/comments"},"review_comment":{"href":"https://api.github.com/repos/mixxxdj/mixxx/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mixxxdj/mixxx/pulls/840/commits"},"statuses":{"href":"https://api.github.com/repos/mixxxdj/mixxx/statuses/da4b259acab9869a63ec825679811ea1e6f511c0"}}}}