{"action":"created","comment":{"url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/comments/54620830","id":54620830,"diff_hunk":"@@ -0,0 +1,93 @@\n+#include <analyzer/analyzerebur128mit.h>\n+#include <QtDebug>\n+\n+#include \"trackinfoobject.h\"\n+#include \"util/math.h\"\n+#include \"util/sample.h\"\n+#include \"util/timer.h\"\n+\n+static const float kReplayGain2ReferenceLUFS = -18;","path":"src/analyzer/analyzerebur128mit.cpp","position":9,"original_position":9,"commit_id":"1d7e170a2c70299ca9e6071d86e591d01cbfb61d","original_commit_id":"1d7e170a2c70299ca9e6071d86e591d01cbfb61d","user":{"login":"uklotzde","id":1474154,"avatar_url":"https://avatars.githubusercontent.com/u/1474154?v=3","gravatar_id":"","url":"https://api.github.com/users/uklotzde","html_url":"https://github.com/uklotzde","followers_url":"https://api.github.com/users/uklotzde/followers","following_url":"https://api.github.com/users/uklotzde/following{/other_user}","gists_url":"https://api.github.com/users/uklotzde/gists{/gist_id}","starred_url":"https://api.github.com/users/uklotzde/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uklotzde/subscriptions","organizations_url":"https://api.github.com/users/uklotzde/orgs","repos_url":"https://api.github.com/users/uklotzde/repos","events_url":"https://api.github.com/users/uklotzde/events{/privacy}","received_events_url":"https://api.github.com/users/uklotzde/received_events","type":"User","site_admin":false},"body":"double","created_at":"2016-03-01T19:27:49Z","updated_at":"2016-03-01T19:27:49Z","html_url":"https://github.com/mixxxdj/mixxx/pull/520#discussion_r54620830","pull_request_url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/520","_links":{"self":{"href":"https://api.github.com/repos/mixxxdj/mixxx/pulls/comments/54620830"},"html":{"href":"https://github.com/mixxxdj/mixxx/pull/520#discussion_r54620830"},"pull_request":{"href":"https://api.github.com/repos/mixxxdj/mixxx/pulls/520"}}},"pull_request":{"url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/520","id":31084434,"html_url":"https://github.com/mixxxdj/mixxx/pull/520","diff_url":"https://github.com/mixxxdj/mixxx/pull/520.diff","patch_url":"https://github.com/mixxxdj/mixxx/pull/520.patch","issue_url":"https://api.github.com/repos/mixxxdj/mixxx/issues/520","number":520,"state":"open","locked":false,"title":"Replaygain 2.0","user":{"login":"daschuer","id":1777442,"avatar_url":"https://avatars.githubusercontent.com/u/1777442?v=3","gravatar_id":"","url":"https://api.github.com/users/daschuer","html_url":"https://github.com/daschuer","followers_url":"https://api.github.com/users/daschuer/followers","following_url":"https://api.github.com/users/daschuer/following{/other_user}","gists_url":"https://api.github.com/users/daschuer/gists{/gist_id}","starred_url":"https://api.github.com/users/daschuer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daschuer/subscriptions","organizations_url":"https://api.github.com/users/daschuer/orgs","repos_url":"https://api.github.com/users/daschuer/repos","events_url":"https://api.github.com/users/daschuer/events{/privacy}","received_events_url":"https://api.github.com/users/daschuer/received_events","type":"User","site_admin":false},"body":"This is a evaluation branch of ReplaGain 2.0\r\n\r\nWarning: using this branch replaces your current ReplayGain value by a new calculated ReplayGain 2.0 value in any case. \r\n\r\nI have used a light weight EBU R 128 implementation based on http://kokkinizita.linuxaudio.org/linuxaudio/ebumeter-doc/quickguide.html\r\nit is much faster than our current ReplayGain analysis: \r\n```\r\nDebug [Main]: Stat(\"AnalyserEbur128::process()\",\"count=2736,sum=1.75087e+08ns,average=63993.7ns,min=45760ns,max=340437ns,variance=1.11145e+08ns^2,stddev=10542.5ns\")\r\nDebug [Main]: Stat(\"AnalyserGain::process()\",\"count=2736,sum=7.63906e+08ns,average=279205ns,min=263269ns,max=1.14068e+06ns,variance=1.06941e+09ns^2,stddev=32701.9ns\")\r\n``` \r\n\r\nCurrently RG1 and RG2 are processed and printed by qDebug() \r\nRG2 is applied. \r\n\r\nWhats next: \r\nI am in favor to adopt it to Mixxx. \r\n\r\nWe may either switch silently to ReplayGain 2.0 or do all the work to switch between RG1 and RG2 this means that RG1 is used for all ReplayGain values calculated by Mixxx 1.11. and RG2 for new tracks. \r\nMixxx prefers to use RG from the file. But we cannot find out which version is it.\r\n\r\nWe may also store in a DB coloumn which RG version was used. \r\nWe may also offer an option to clear all RG values to analyze it with the new RG2 algorithm.\r\n\r\nWhat do you think? \r\n\r\nhttp://wiki.hydrogenaud.io/index.php?title=ReplayGain_1.0_specification\r\nhttp://wiki.hydrogenaud.io/index.php?title=ReplayGain_2.0_specification\r\n\r\n\r\n\r\n\r\n\r\n  \r\n\r\n  \r\n ","created_at":"2015-03-12T22:30:53Z","updated_at":"2016-03-01T19:27:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"27e4f1d5ba68dd19d5c6e5cce0012b0253211015","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/520/commits","review_comments_url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/520/comments","review_comment_url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mixxxdj/mixxx/issues/520/comments","statuses_url":"https://api.github.com/repos/mixxxdj/mixxx/statuses/1d7e170a2c70299ca9e6071d86e591d01cbfb61d","head":{"label":"daschuer:replaygain2","ref":"replaygain2","sha":"1d7e170a2c70299ca9e6071d86e591d01cbfb61d","user":{"login":"daschuer","id":1777442,"avatar_url":"https://avatars.githubusercontent.com/u/1777442?v=3","gravatar_id":"","url":"https://api.github.com/users/daschuer","html_url":"https://github.com/daschuer","followers_url":"https://api.github.com/users/daschuer/followers","following_url":"https://api.github.com/users/daschuer/following{/other_user}","gists_url":"https://api.github.com/users/daschuer/gists{/gist_id}","starred_url":"https://api.github.com/users/daschuer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daschuer/subscriptions","organizations_url":"https://api.github.com/users/daschuer/orgs","repos_url":"https://api.github.com/users/daschuer/repos","events_url":"https://api.github.com/users/daschuer/events{/privacy}","received_events_url":"https://api.github.com/users/daschuer/received_events","type":"User","site_admin":false},"repo":{"id":10669071,"name":"mixxx","full_name":"daschuer/mixxx","owner":{"login":"daschuer","id":1777442,"avatar_url":"https://avatars.githubusercontent.com/u/1777442?v=3","gravatar_id":"","url":"https://api.github.com/users/daschuer","html_url":"https://github.com/daschuer","followers_url":"https://api.github.com/users/daschuer/followers","following_url":"https://api.github.com/users/daschuer/following{/other_user}","gists_url":"https://api.github.com/users/daschuer/gists{/gist_id}","starred_url":"https://api.github.com/users/daschuer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daschuer/subscriptions","organizations_url":"https://api.github.com/users/daschuer/orgs","repos_url":"https://api.github.com/users/daschuer/repos","events_url":"https://api.github.com/users/daschuer/events{/privacy}","received_events_url":"https://api.github.com/users/daschuer/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/daschuer/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/daschuer/mixxx","forks_url":"https://api.github.com/repos/daschuer/mixxx/forks","keys_url":"https://api.github.com/repos/daschuer/mixxx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/daschuer/mixxx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/daschuer/mixxx/teams","hooks_url":"https://api.github.com/repos/daschuer/mixxx/hooks","issue_events_url":"https://api.github.com/repos/daschuer/mixxx/issues/events{/number}","events_url":"https://api.github.com/repos/daschuer/mixxx/events","assignees_url":"https://api.github.com/repos/daschuer/mixxx/assignees{/user}","branches_url":"https://api.github.com/repos/daschuer/mixxx/branches{/branch}","tags_url":"https://api.github.com/repos/daschuer/mixxx/tags","blobs_url":"https://api.github.com/repos/daschuer/mixxx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/daschuer/mixxx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/daschuer/mixxx/git/refs{/sha}","trees_url":"https://api.github.com/repos/daschuer/mixxx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/daschuer/mixxx/statuses/{sha}","languages_url":"https://api.github.com/repos/daschuer/mixxx/languages","stargazers_url":"https://api.github.com/repos/daschuer/mixxx/stargazers","contributors_url":"https://api.github.com/repos/daschuer/mixxx/contributors","subscribers_url":"https://api.github.com/repos/daschuer/mixxx/subscribers","subscription_url":"https://api.github.com/repos/daschuer/mixxx/subscription","commits_url":"https://api.github.com/repos/daschuer/mixxx/commits{/sha}","git_commits_url":"https://api.github.com/repos/daschuer/mixxx/git/commits{/sha}","comments_url":"https://api.github.com/repos/daschuer/mixxx/comments{/number}","issue_comment_url":"https://api.github.com/repos/daschuer/mixxx/issues/comments{/number}","contents_url":"https://api.github.com/repos/daschuer/mixxx/contents/{+path}","compare_url":"https://api.github.com/repos/daschuer/mixxx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/daschuer/mixxx/merges","archive_url":"https://api.github.com/repos/daschuer/mixxx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/daschuer/mixxx/downloads","issues_url":"https://api.github.com/repos/daschuer/mixxx/issues{/number}","pulls_url":"https://api.github.com/repos/daschuer/mixxx/pulls{/number}","milestones_url":"https://api.github.com/repos/daschuer/mixxx/milestones{/number}","notifications_url":"https://api.github.com/repos/daschuer/mixxx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/daschuer/mixxx/labels{/name}","releases_url":"https://api.github.com/repos/daschuer/mixxx/releases{/id}","deployments_url":"https://api.github.com/repos/daschuer/mixxx/deployments","created_at":"2013-06-13T15:21:23Z","updated_at":"2015-04-23T06:18:48Z","pushed_at":"2016-02-24T20:47:25Z","git_url":"git://github.com/daschuer/mixxx.git","ssh_url":"git@github.com:daschuer/mixxx.git","clone_url":"https://github.com/daschuer/mixxx.git","svn_url":"https://github.com/daschuer/mixxx","homepage":null,"size":260230,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":2,"forks":1,"open_issues":2,"watchers":0,"default_branch":"master"}},"base":{"label":"mixxxdj:master","ref":"master","sha":"1c5c335ce396381006563eb51cd3c655d9bef4f9","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}","deployments_url":"https://api.github.com/repos/mixxxdj/mixxx/deployments","created_at":"2013-05-17T15:14:38Z","updated_at":"2016-03-01T04:44:05Z","pushed_at":"2016-03-01T18:47:18Z","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":267415,"stargazers_count":469,"watchers_count":469,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":295,"mirror_url":null,"open_issues_count":57,"forks":295,"open_issues":57,"watchers":469,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mixxxdj/mixxx/pulls/520"},"html":{"href":"https://github.com/mixxxdj/mixxx/pull/520"},"issue":{"href":"https://api.github.com/repos/mixxxdj/mixxx/issues/520"},"comments":{"href":"https://api.github.com/repos/mixxxdj/mixxx/issues/520/comments"},"review_comments":{"href":"https://api.github.com/repos/mixxxdj/mixxx/pulls/520/comments"},"review_comment":{"href":"https://api.github.com/repos/mixxxdj/mixxx/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mixxxdj/mixxx/pulls/520/commits"},"statuses":{"href":"https://api.github.com/repos/mixxxdj/mixxx/statuses/1d7e170a2c70299ca9e6071d86e591d01cbfb61d"}}}}