-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Key detection and pitch shifting. #47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…to look through all the decks
…it to the currentPlayingDeckChanged event
…ity) and added transparency to the icon
…hould all work relatively well now
…rack bpm rather than just whats in the id3 tag
…actoring, but it works!!
…ange value - works like a charm
…o control the bpm range
…ntegrating with Ryans searchqueryparser
…u can see how many tracks are matched by the filters
This line and the following will be ignored -------------- removed: mixxx/lib/replaygain/replaygain_analysis.c mixxx/lib/replaygain/replaygain_analysis.h mixxx/res/images/library/ic_library_setlog.png mixxx/res/images/library/ic_library_setlog_current.png mixxx/src/analysergainvamp.cpp mixxx/src/analysergainvamp.h mixxx/vamp-plugins/plugins/replaygain.cpp mixxx/vamp-plugins/plugins/replaygain.h added: mixxx/lib/replaygain/replaygain.cpp mixxx/lib/replaygain/replaygain.h mixxx/res/controllers/common-hid-packet-parser.js mixxx/res/images/library/ic_library_history.png mixxx/res/images/library/ic_library_history_current.png mixxx/res/keyboard/cs_CZ.kbd.cfg mixxx/res/keyboard/da_DK.kbd.cfg mixxx/res/keyboard/de_DE.kbd.cfg mixxx/res/keyboard/el_GR.kbd.cfg mixxx/res/keyboard/es_ES.kbd.cfg mixxx/res/keyboard/fi_FI.kbd.cfg mixxx/res/keyboard/fr_FR.kbd.cfg mixxx/res/keyboard/it_IT.kbd.cfg mixxx/res/keyboard/ru_RU.kbd.cfg mixxx/res/skins/Deere1280x1024-SXGA/CHANGELOG.txt mixxx/res/skins/Deere1280x800-WXGA/CHANGELOG.txt mixxx/res/skins/Deere1440x900-WXGA+/CHANGELOG.txt mixxx/res/skins/Deere1920x1080-FullHD/CHANGELOG.txt mixxx/res/skins/Deere1920x1200-WUXGA/CHANGELOG.txt mixxx/res/skins/LateNight1280x1024-SXGA/CHANGELOG.txt mixxx/res/skins/LateNight1280x800-WXGA/CHANGELOG.txt mixxx/res/skins/LateNight1366x768-WXGA/CHANGELOG.txt mixxx/res/skins/LateNightBlues1280x1024-SXGA/CHANGELOG.txt mixxx/res/skins/LateNightBlues1280x800-WXGA/CHANGELOG.txt mixxx/res/skins/LateNightBlues1366x768-WXGA/CHANGELOG.txt mixxx/res/skins/Outline1024x600-Netbook/CHANGELOG.txt mixxx/res/skins/Outline1024x768-XGA/CHANGELOG.txt mixxx/res/skins/Outline800x480-WVGA/CHANGELOG.txt mixxx/res/skins/Phoney1600x1200-UXGA/CHANGELOG.txt mixxx/res/skins/Phoney1680x1050-WSXGA/CHANGELOG.txt mixxx/res/skins/PhoneyDark1600x1200-UXGA/CHANGELOG.txt mixxx/res/skins/PhoneyDark1680x1050-WSXGA/CHANGELOG.txt mixxx/res/skins/Shade1024x600-Netbook/CHANGELOG.txt mixxx/res/skins/Shade1024x768-XGA/CHANGELOG.txt mixxx/res/skins/ShadeDark1024x600-Netbook/CHANGELOG.txt mixxx/res/skins/ShadeDark1024x768-XGA/CHANGELOG.txt mixxx/res/translations/mixxx/te.po mixxx/res/translations/mixxx_te.qm mixxx/res/translations/mixxx_te.ts mixxx/src/controllers/hid/hidblacklist.h mixxx/src/library/baseexternallibraryfeature.cpp mixxx/src/library/baseexternallibraryfeature.h mixxx/src/shoutcast/ mixxx/src/shoutcast/defs_shoutcast.h mixxx/src/skin/tooltips.cpp mixxx/src/skin/tooltips.h mixxx/src/waveform/renderers/qtwaveformrendererfilteredsignal.cpp mixxx/src/waveform/renderers/qtwaveformrendererfilteredsignal.h mixxx/src/waveform/renderers/qtwaveformrenderersimplesignal.cpp mixxx/src/waveform/renderers/qtwaveformrenderersimplesignal.h mixxx/src/waveform/renderers/waveformmarkset.cpp mixxx/src/waveform/renderers/waveformmarkset.h mixxx/src/waveform/renderers/waveformrenderersignalbase.cpp mixxx/src/waveform/renderers/waveformrenderersignalbase.h mixxx/src/waveform/widgets/qtsimplewaveformwidget.cpp mixxx/src/waveform/widgets/qtsimplewaveformwidget.h mixxx/src/waveform/widgets/qtwaveformwidget.cpp mixxx/src/waveform/widgets/qtwaveformwidget.h renamed: mixxx/res/controllers/Eks Otus.cntrlr.xml => mixxx/res/controllers/EKS Otus.cntrlr.xml mixxx/res/keyboard/Standard.kbd.cfg => mixxx/res/keyboard/en_US.kbd.cfg modified: mixxx/build/debian/mixxx.install mixxx/build/depends.py mixxx/build/features.py mixxx/build/nsis/Mixxx.nsi mixxx/lib/hidapi-0.7.0/linux/hid-libusb.c mixxx/lib/vamp-2.3/src/vamp-hostsdk/PluginLoader.cpp mixxx/res/controllers/EKS Otus.js mixxx/res/images/templates/ic_template_library_and_preferences.svg mixxx/res/mixxx.qrc mixxx/res/skins/Deere1280x1024-SXGA/skin.xml mixxx/res/skins/Deere1280x800-WXGA/skin.xml mixxx/res/skins/Deere1440x900-WXGA+/skin.xml mixxx/res/skins/Deere1920x1080-FullHD/skin.xml mixxx/res/skins/Deere1920x1200-WUXGA/skin.xml mixxx/res/skins/LateNight1280x1024-SXGA/skin.xml mixxx/res/skins/LateNight1280x800-WXGA/skin.xml mixxx/res/skins/LateNight1366x768-WXGA/skin.xml mixxx/res/skins/LateNightBlues1280x1024-SXGA/skin.xml mixxx/res/skins/LateNightBlues1280x800-WXGA/skin.xml mixxx/res/skins/LateNightBlues1366x768-WXGA/skin.xml mixxx/res/skins/Outline1024x600-Netbook/skin.xml mixxx/res/skins/Outline1024x768-XGA/skin.xml mixxx/res/skins/Outline800x480-WVGA/skin.xml mixxx/res/skins/Phoney1600x1200-UXGA/skin.xml mixxx/res/skins/Phoney1680x1050-WSXGA/skin.xml mixxx/res/skins/PhoneyDark1600x1200-UXGA/skin.xml mixxx/res/skins/PhoneyDark1680x1050-WSXGA/skin.xml mixxx/res/skins/Shade1024x600-Netbook/skin.xml mixxx/res/skins/Shade1024x768-XGA/skin.xml mixxx/res/skins/ShadeDark1024x600-Netbook/skin.xml mixxx/res/skins/ShadeDark1024x768-XGA/skin.xml mixxx/res/translations/mixxx.ts mixxx/res/translations/mixxx/ar.po mixxx/res/translations/mixxx/ast.po mixxx/res/translations/mixxx/bg.po mixxx/res/translations/mixxx/br.po mixxx/res/translations/mixxx/bs.po mixxx/res/translations/mixxx/ca.po mixxx/res/translations/mixxx/cs.po mixxx/res/translations/mixxx/da.po mixxx/res/translations/mixxx/de.po mixxx/res/translations/mixxx/el.po mixxx/res/translations/mixxx/en_GB.po mixxx/res/translations/mixxx/eo.po mixxx/res/translations/mixxx/es.po mixxx/res/translations/mixxx/et.po mixxx/res/translations/mixxx/eu.po mixxx/res/translations/mixxx/fi.po mixxx/res/translations/mixxx/fr.po mixxx/res/translations/mixxx/ga.po mixxx/res/translations/mixxx/gl.po mixxx/res/translations/mixxx/he.po mixxx/res/translations/mixxx/hu.po mixxx/res/translations/mixxx/hy.po mixxx/res/translations/mixxx/ia.po mixxx/res/translations/mixxx/id.po mixxx/res/translations/mixxx/is.po mixxx/res/translations/mixxx/it.po mixxx/res/translations/mixxx/ja.po mixxx/res/translations/mixxx/lb.po mixxx/res/translations/mixxx/mixxx.pot mixxx/res/translations/mixxx/ml.po mixxx/res/translations/mixxx/mn.po mixxx/res/translations/mixxx/mr.po mixxx/res/translations/mixxx/ms.po mixxx/res/translations/mixxx/nb.po mixxx/res/translations/mixxx/nl.po mixxx/res/translations/mixxx/nn.po mixxx/res/translations/mixxx/oc.po mixxx/res/translations/mixxx/pl.po mixxx/res/translations/mixxx/pt.po mixxx/res/translations/mixxx/pt_BR.po mixxx/res/translations/mixxx/ro.po mixxx/res/translations/mixxx/ru.po mixxx/res/translations/mixxx/sl.po mixxx/res/translations/mixxx/sr.po mixxx/res/translations/mixxx/sv.po mixxx/res/translations/mixxx/tr.po mixxx/res/translations/mixxx/uk.po mixxx/res/translations/mixxx/uz.po mixxx/res/translations/mixxx/zh_CN.po mixxx/res/translations/mixxx/zh_TW.po mixxx/res/translations/mixxx_ar.qm mixxx/res/translations/mixxx_ar.ts mixxx/res/translations/mixxx_ast.qm mixxx/res/translations/mixxx_ast.ts mixxx/res/translations/mixxx_bg.qm mixxx/res/translations/mixxx_bg.ts mixxx/res/translations/mixxx_br.qm mixxx/res/translations/mixxx_br.ts mixxx/res/translations/mixxx_bs.qm mixxx/res/translations/mixxx_bs.ts mixxx/res/translations/mixxx_ca.qm mixxx/res/translations/mixxx_ca.ts mixxx/res/translations/mixxx_cs.qm mixxx/res/translations/mixxx_cs.ts mixxx/res/translations/mixxx_da.qm mixxx/res/translations/mixxx_da.ts mixxx/res/translations/mixxx_de.qm mixxx/res/translations/mixxx_de.ts mixxx/res/translations/mixxx_el.qm mixxx/res/translations/mixxx_el.ts mixxx/res/translations/mixxx_en_GB.qm mixxx/res/translations/mixxx_en_GB.ts mixxx/res/translations/mixxx_eo.qm mixxx/res/translations/mixxx_eo.ts mixxx/res/translations/mixxx_es.qm mixxx/res/translations/mixxx_es.ts mixxx/res/translations/mixxx_et.qm mixxx/res/translations/mixxx_et.ts mixxx/res/translations/mixxx_eu.qm mixxx/res/translations/mixxx_eu.ts mixxx/res/translations/mixxx_fi.qm mixxx/res/translations/mixxx_fi.ts mixxx/res/translations/mixxx_fr.qm mixxx/res/translations/mixxx_fr.ts mixxx/res/translations/mixxx_ga.qm mixxx/res/translations/mixxx_ga.ts mixxx/res/translations/mixxx_gl.qm mixxx/res/translations/mixxx_gl.ts mixxx/res/translations/mixxx_he.qm mixxx/res/translations/mixxx_he.ts mixxx/res/translations/mixxx_hu.qm mixxx/res/translations/mixxx_hu.ts mixxx/res/translations/mixxx_hy.ts mixxx/res/translations/mixxx_ia.qm mixxx/res/translations/mixxx_ia.ts mixxx/res/translations/mixxx_id.qm mixxx/res/translations/mixxx_id.ts mixxx/res/translations/mixxx_is.qm mixxx/res/translations/mixxx_is.ts mixxx/res/translations/mixxx_it.qm mixxx/res/translations/mixxx_it.ts mixxx/res/translations/mixxx_ja.qm mixxx/res/translations/mixxx_ja.ts mixxx/res/translations/mixxx_lb.qm mixxx/res/translations/mixxx_lb.ts mixxx/res/translations/mixxx_ml.qm mixxx/res/translations/mixxx_ml.ts mixxx/res/translations/mixxx_mn.qm mixxx/res/translations/mixxx_mn.ts mixxx/res/translations/mixxx_mr.qm mixxx/res/translations/mixxx_mr.ts mixxx/res/translations/mixxx_ms.qm mixxx/res/translations/mixxx_ms.ts mixxx/res/translations/mixxx_nb.qm mixxx/res/translations/mixxx_nb.ts mixxx/res/translations/mixxx_nl.qm mixxx/res/translations/mixxx_nl.ts mixxx/res/translations/mixxx_nn.qm mixxx/res/translations/mixxx_nn.ts mixxx/res/translations/mixxx_oc.qm mixxx/res/translations/mixxx_oc.ts mixxx/res/translations/mixxx_pl.qm mixxx/res/translations/mixxx_pl.ts mixxx/res/translations/mixxx_pt.qm mixxx/res/translations/mixxx_pt.ts mixxx/res/translations/mixxx_pt_BR.qm mixxx/res/translations/mixxx_pt_BR.ts mixxx/res/translations/mixxx_ro.qm mixxx/res/translations/mixxx_ro.ts mixxx/res/translations/mixxx_ru.qm mixxx/res/translations/mixxx_ru.ts mixxx/res/translations/mixxx_sl.qm mixxx/res/translations/mixxx_sl.ts mixxx/res/translations/mixxx_sr.qm mixxx/res/translations/mixxx_sr.ts mixxx/res/translations/mixxx_sv.qm mixxx/res/translations/mixxx_sv.ts mixxx/res/translations/mixxx_tr.qm mixxx/res/translations/mixxx_tr.ts mixxx/res/translations/mixxx_uk.qm mixxx/res/translations/mixxx_uk.ts mixxx/res/translations/mixxx_uz.qm mixxx/res/translations/mixxx_uz.ts mixxx/res/translations/mixxx_zh_CN.qm mixxx/res/translations/mixxx_zh_CN.ts mixxx/res/translations/mixxx_zh_TW.ts mixxx/src/analyser.h mixxx/src/analyserbeats.cpp mixxx/src/analyserbeats.h mixxx/src/analyserbpm.cpp mixxx/src/analyserbpm.h mixxx/src/analyserqueue.cpp mixxx/src/analyserqueue.h mixxx/src/analyserrg.cpp mixxx/src/analyserrg.h mixxx/src/analyserwaveform.cpp mixxx/src/analyserwaveform.h mixxx/src/basetrackplayer.cpp mixxx/src/configobject.cpp mixxx/src/configobject.h mixxx/src/controllers/dlgcontrollerlearning.cpp mixxx/src/controllers/hid/hidcontroller.cpp mixxx/src/controllers/hid/hidcontroller.h mixxx/src/controllers/hid/hidenumerator.cpp mixxx/src/dlgautodj.cpp mixxx/src/dlgautodj.ui mixxx/src/dlgprefbeats.cpp mixxx/src/dlgprefbeatsdlg.ui mixxx/src/dlgprefcontrols.cpp mixxx/src/dlgprefcontrols.h mixxx/src/dlgprefcontrolsdlg.ui mixxx/src/dlgprefcrossfaderdlg.ui mixxx/src/dlgprefeqdlg.ui mixxx/src/dlgprefplaylist.cpp mixxx/src/dlgprefplaylistdlg.ui mixxx/src/dlgprefrecord.cpp mixxx/src/dlgprefreplaygaindlg.ui mixxx/src/dlgprefshoutcast.cpp mixxx/src/dlgprefshoutcastdlg.ui mixxx/src/dlgprefsounditem.cpp mixxx/src/dlgprefsounditem.h mixxx/src/dlgprepare.ui mixxx/src/dlgtrackinfo.cpp mixxx/src/dlgtrackinfo.ui mixxx/src/engine/cuecontrol.cpp mixxx/src/engine/cuecontrol.h mixxx/src/engine/engineshoutcast.cpp mixxx/src/engine/engineshoutcast.h mixxx/src/errordialoghandler.cpp mixxx/src/errordialoghandler.h mixxx/src/library/baseplaylistfeature.cpp mixxx/src/library/basesqltablemodel.cpp mixxx/src/library/basesqltablemodel.h mixxx/src/library/browse/browsefeature.cpp mixxx/src/library/browse/browsefeature.h mixxx/src/library/browse/browsethread.cpp mixxx/src/library/cratetablemodel.cpp mixxx/src/library/cratetablemodel.h mixxx/src/library/dao/analysisdao.cpp mixxx/src/library/dao/analysisdao.h mixxx/src/library/dao/cratedao.cpp mixxx/src/library/dao/libraryhashdao.cpp mixxx/src/library/dao/playlistdao.cpp mixxx/src/library/dao/playlistdao.h mixxx/src/library/dao/trackdao.cpp mixxx/src/library/dao/trackdao.h mixxx/src/library/itunes/itunesfeature.cpp mixxx/src/library/itunes/itunesfeature.h mixxx/src/library/itunes/itunesplaylistmodel.cpp mixxx/src/library/itunes/itunestrackmodel.cpp mixxx/src/library/library.cpp mixxx/src/library/libraryscanner.cpp mixxx/src/library/libraryscanner.h mixxx/src/library/librarytablemodel.cpp mixxx/src/library/librarytablemodel.h mixxx/src/library/missingtablemodel.cpp mixxx/src/library/missingtablemodel.h mixxx/src/library/playlisttablemodel.cpp mixxx/src/library/playlisttablemodel.h mixxx/src/library/proxytrackmodel.cpp mixxx/src/library/proxytrackmodel.h mixxx/src/library/queryutil.h mixxx/src/library/rhythmbox/rhythmboxfeature.cpp mixxx/src/library/rhythmbox/rhythmboxfeature.h mixxx/src/library/schemamanager.cpp mixxx/src/library/setlogfeature.cpp mixxx/src/library/stardelegate.h mixxx/src/library/trackcollection.cpp mixxx/src/library/trackcollection.h mixxx/src/library/trackmodel.h mixxx/src/library/traktor/traktorfeature.cpp mixxx/src/library/traktor/traktorfeature.h mixxx/src/library/treeitem.cpp mixxx/src/library/treeitem.h mixxx/src/mixxx.cpp mixxx/src/mixxxkeyboard.cpp mixxx/src/mixxxkeyboard.h mixxx/src/playerinfo.cpp mixxx/src/playerinfo.h mixxx/src/recording/defs_recording.h mixxx/src/recording/encodermp3.cpp mixxx/src/recording/enginerecord.cpp mixxx/src/recording/enginerecord.h mixxx/src/recording/recordingmanager.cpp mixxx/src/recording/recordingmanager.h mixxx/src/skin/legacyskinparser.cpp mixxx/src/skin/legacyskinparser.h mixxx/src/soundmanager.cpp mixxx/src/soundmanager.h mixxx/src/track/beatgrid.cpp mixxx/src/track/beatgrid.h mixxx/src/track/beatmap.cpp mixxx/src/track/beatmap.h mixxx/src/track/beats.h mixxx/src/trackinfoobject.cpp mixxx/src/trackinfoobject.h mixxx/src/vamp/vampanalyser.cpp mixxx/src/waveform/renderers/glslwaveformrenderersignal.cpp mixxx/src/waveform/renderers/glslwaveformrenderersignal.h mixxx/src/waveform/renderers/glwaveformrendererfilteredsignal.cpp mixxx/src/waveform/renderers/glwaveformrendererfilteredsignal.h mixxx/src/waveform/renderers/glwaveformrenderersimplesignal.cpp mixxx/src/waveform/renderers/glwaveformrenderersimplesignal.h mixxx/src/waveform/renderers/waveformmark.cpp mixxx/src/waveform/renderers/waveformmark.h mixxx/src/waveform/renderers/waveformrenderbeat.cpp mixxx/src/waveform/renderers/waveformrenderbeat.h mixxx/src/waveform/renderers/waveformrendererendoftrack.cpp mixxx/src/waveform/renderers/waveformrendererfilteredsignal.cpp mixxx/src/waveform/renderers/waveformrendererfilteredsignal.h mixxx/src/waveform/renderers/waveformrendermark.cpp mixxx/src/waveform/renderers/waveformrendermark.h mixxx/src/waveform/renderers/waveformwidgetrenderer.cpp mixxx/src/waveform/renderers/waveformwidgetrenderer.h mixxx/src/waveform/waveform.cpp mixxx/src/waveform/waveform.h mixxx/src/waveform/waveformfactory.cpp mixxx/src/waveform/waveformfactory.h mixxx/src/waveform/waveformwidgetfactory.cpp mixxx/src/waveform/widgets/glsimplewaveformwidget.cpp mixxx/src/waveform/widgets/glsimplewaveformwidget.h mixxx/src/waveform/widgets/glslwaveformwidget.cpp mixxx/src/waveform/widgets/glslwaveformwidget.h mixxx/src/waveform/widgets/glwaveformwidget.cpp mixxx/src/waveform/widgets/softwarewaveformwidget.cpp mixxx/src/waveform/widgets/softwarewaveformwidget.h mixxx/src/waveform/widgets/waveformwidgettype.h mixxx/src/widget/wlibrarytableview.cpp mixxx/src/widget/woverview.cpp mixxx/src/widget/woverview.h mixxx/src/widget/wslidercomposed.h mixxx/src/widget/wspinny.cpp mixxx/src/widget/wstatuslight.cpp mixxx/src/widget/wtracktableview.cpp mixxx/src/widget/wtracktableview.h mixxx/src/widget/wwaveformviewer.cpp mixxx/vamp-plugins/SConscript mixxx/vamp-plugins/libmain.cpp mixxx/res/controllers/EKS Otus.cntrlr.xml unknown: mixxx/.sconf_temp/ mixxx/.sconsign.dblite mixxx/Mixxx/ mixxx/cache/ mixxx/config.log mixxx/lin32_build/ mixxx/mixxx mixxx/output.txt mixxx/lib/vamp-2.3/src/vamp-sdk/PluginAdapter.os mixxx/lib/vamp-2.3/src/vamp-sdk/RealTime.os mixxx/res/qrc_mixxx.cc pending merges: RJ Ryan 2012-05-24 [merge] Merging from lp:~mixxxdevelopers/mixxx/trunk_translations. Upda... Launchpad Translation... 2012-05-20 Launchpad automatic translations update. Launchpad Translation... 2012-05-18 Launchpad automatic translations update. Launchpad Translation... 2012-05-17 Launchpad automatic translations update. Launchpad Translation... 2012-05-16 Launchpad automatic translations update. Launchpad Translation... 2012-05-15 Launchpad automatic translations update. Launchpad Translation... 2012-05-14 Launchpad automatic translations update. Launchpad Translation... 2012-05-13 Launchpad automatic translations update. Launchpad Translation... 2012-05-12 Launchpad automatic translations update. Launchpad Translation... 2012-05-11 Launchpad automatic translations update. Launchpad Translation... 2012-05-10 Launchpad automatic translations update. Launchpad Translation... 2012-05-09 Launchpad automatic translations update. Launchpad Translation... 2012-05-08 Launchpad automatic translations update. Launchpad Translation... 2012-05-07 Launchpad automatic translations update. Launchpad Translation... 2012-05-06 Launchpad automatic translations update. Launchpad Translation... 2012-05-05 Launchpad automatic translations update. Launchpad Translation... 2012-05-04 Launchpad automatic translations update. Launchpad Translation... 2012-05-03 Launchpad automatic translations update. Launchpad Translation... 2012-05-02 Launchpad automatic translations update. Launchpad Translation... 2012-05-01 Launchpad automatic translations update. Launchpad Translation... 2012-04-30 Launchpad automatic translations update. RJ Ryan 2012-05-24 Fix improper use of MultiByteToWideChar and WideCharToMultiByte in ... RJ Ryan 2012-05-24 Revert all debug output I added to debug the VAMP plugin on Windows... RJ Ryan 2012-05-24 Revert noisy plugin-path debug output. RJ Ryan 2012-05-24 Fix usage of MultiByteToWideChar in VAMP PluginLoader to include an... RJ Ryan 2012-05-23 Getting closer to a Windows VAMP plugin fix. RJ Ryan 2012-05-23 Getting closer to a Windows VAMP plugin fix. vrince 2012-05-23 [merge] Merge from trunk RJ Ryan 2012-05-23 Disable some debug console stuff I was trying. vrince 2012-05-23 Add WaveformMarkSet in order to generalize WaveformMark skin extract... RJ Ryan 2012-05-23 Disable DEBUGCONSOLE ifdef. RJ Ryan 2012-05-23 Add Max Linke's patch to put delegateForColumn in BSTM. Fixes Bug #... RJ Ryan 2012-05-22 Remove UNICODE definition. Write stdout/stderr/cerr/cout to file on... RJ Ryan 2012-05-22 Sigh. Adding excessive logging to PluginLoader. Will revert later. Daniel Schürmann 2012-05-22 check if track exists without cache, fix bug #974640 RJ Ryan 2012-05-22 Try to fix Windows VAMP plugin loading by defining UNICODE. RJ Ryan 2012-05-22 Add windows debug output to VAMP plugin detection. RJ Ryan 2012-05-22 Use Int32_t instead of int32_t. RJ Ryan 2012-05-20 Fix BPM lock checkbox inconsistent behavior. Fixes Bug #1002051 RJ Ryan 2012-05-20 Check BPM-lock for selection to decide whether to allow the clear-b... RJ Ryan 2012-05-20 Do not save waveforms immediately after generating them since the t... RJ Ryan 2012-05-20 Remove Qt::WA_ForceUpdatesDisabled from WWaveformViewer. Fixes Bug ... RJ Ryan 2012-05-20 Don't set StarDelegate as the delegate for every single cell. Inste... RJ Ryan 2012-05-20 [merge] Merging from lp:~hile/mixxx/hidscripts Ilkka Tuohela 2012-05-20 Imported latest fixes to hidscripts Ilkka Tuohela 2012-05-20 Imported latest fixes to hidscripts Ilkka Tuohela 2012-05-20 Imported latest fixes to hidscripts Ilkka Tuohela 2012-05-18 Minor fixes for LED control Ilkka Tuohela 2012-05-18 Imported latest big API changes Ilkka Tuohela 2012-05-18 Renamed field add functions, fix sparse bitVector index parsing Ilkka Tuohela 2012-05-18 Imported common-hid-packet-parser.js and latest Otus HID updates Daniel Schürmann 2012-05-20 fixed recording folder, Bug #925663 RJ Ryan 2012-05-19 Update blacklisting logic and add comments. RJ Ryan 2012-05-19 [merge] Merging from lp:~hile/mixxx/hidblacklist. Ilkka Tuohela 2012-05-16 Imported HID blacklist patch proposal RJ Ryan 2012-05-19 Fix build. Mea culpa. RJ Ryan 2012-05-18 Fix widget names for translation. RJ Ryan 2012-05-18 [merge] Merging from lp:~vrince/mixxx/waveform-2.0_pure-gl vrince 2012-05-16 Change defaul zoom to 3 (33%) vrince 2012-05-16 Add DefaulMark support (see example in <visual> of Deere1280x800 skin) vrince 2012-05-16 Waveform interactive zoom in accessible everywhere in the waveform v... vrince 2012-05-15 Some comments vrince 2012-05-13 Add central waveform axe (and 'AxesColor' in skin) in all waveform r... vrince 2012-05-12 [merge] Merged from trunk vrince 2012-05-11 Disable end of track display for track shorter than end of track tri... vrince 2012-05-11 Add support for alignment in software signal renderer (and fix globa... vrince 2012-05-10 Use of visual gain in every waveform renderer (and add overall and p... vrince 2012-05-08 Update software signal renderer with lst signal base vrince 2012-05-08 Add QtSimpleWaveform and QtWaveformRendererSimpleSignal (move conten... vrince 2012-05-08 Add support for alignment in GLWaveformRendererFilteredSignal vrince 2012-05-08 Add new waveform widget QtWaveformWidget vrince 2012-05-08 Add WaveformRendererSignalBase to avoid duplicated code vrince 2012-05-07 [merge] Merge from trunk vrince 2012-05-07 Integrate test version with pure gl with triangles vrince 2012-05-03 introduce pure opengl signal render based on triangles (from old tes... Owen Williams 2012-05-16 Protect against NULL trackpointer when load fails Daniel Schürmann 2012-05-16 two more __OSX__->__APPLE__ Daniel Schürmann 2012-05-16 __OSX__->__APPLE__, fix bug #999560 Daniel Schürmann 2012-05-16 redo changes from mixxxdj#3157, which where lost in mixxxdj#3159 Daniel Schürmann 2012-05-16 Add to Auto-DJ Top with empty Auto-DJ, fix bug #982652 Daniel Schürmann 2012-05-15 fixed shortcuts for eject and LoadSelectedTrack, a partial... Daniel Schürmann 2012-05-15 [merge] fixed missing shortcuts in tooltips, bug #696058 Daniel Schürmann 2012-05-15 fixed missing shortcuts in tooltips, bug #696058 RJ Ryan 2012-05-15 Fix Windows build. RJ Ryan 2012-05-15 Set shoutcast stream public based on stream_public preference. Fixe... Daniel Schürmann 2012-05-15 fix *.kbd.cfg location RJ Ryan 2012-05-14 Forgot return value. RJ Ryan 2012-05-14 If QLocale::uiLanguages() has English as the first language then do... RJ Ryan 2012-05-14 [merge] Merge from lp:mixxx/1.10 RJ Ryan 2012-05-14 Typo Daniel Schürmann 2012-05-14 additional keyboard layouts added Daniel Schürmann 2012-05-14 Load keyboard mappings based on actual keyboard layout, fi... RJ Ryan 2012-05-14 Delete AnalyserGainVamp and ReplayGain from libmixxxminimal. RJ Ryan 2012-05-14 Disable AnalyserGainVamp and use the built-in RG analyser for all a... RJ Ryan 2012-05-14 [merge] Merging from lp:mixxx/1.10. RJ Ryan 2012-05-14 Add vittorio's C++ and class-ified conversion of ReplayGain analyse... Daniel Schürmann 2012-05-14 removed absolute path when loading lame, fix bug #920191 Daniel Schürmann 2012-05-14 hide smb songs from Rhythmbox library Bill Good 2012-05-13 Fixed SoundManager from filtering input devices with only 1 channel Bill Good 2012-05-13 Fixed DlgPrefSoundItem to only show devices with sufficient channels Bill Good 2012-05-13 Added unistd.h include for sleep(3) on non-Windows Daniel Schürmann 2012-05-14 removed absolute path when loading lame, fix bug #920191 RJ Ryan 2012-05-14 Update translation templates.: RJ Ryan 2012-05-14 Fix spelling of coarse in MIDI learning. Daniel Schürmann 2012-05-14 hide smb songs from Rhythmbox library jus 2012-05-14 Update translation template Daniel Schürmann 2012-05-13 eject played track on end of Auto-DJ playlist, fix bug mixxxdj#99... RJ Ryan 2012-05-12 Rework ErrorDialogHandler to be a little cleaner and not Q_ASSERT. RJ Ryan 2012-05-12 [merge] Merging from lp:mixxx/1.10 RJ Ryan 2012-05-12 Do not use display strings to store/communicate shoutcast preferenc... RJ Ryan 2012-05-11 Fix deadlock in BrowseThread. Fixes Bug #955179 Daniel Schürmann 2012-05-12 fixed outline skin kill buttons Sean M. Pappalardo 2012-05-12 Prevent HIDAPI from bailing out on non-critical libusb e... RJ Ryan 2012-05-12 Add patch from mutil to allow customization of Browse section Quick... Owen Williams 2012-05-11 Make sure analyzers are cleaned up before we requeue a track RJ Ryan 2012-05-11 Fix deadlock in BrowseThread. Fixes Bug #955179 RJ Ryan 2012-05-11 Add /usr/lib/mixxx to install directories in Debian packaging scripts. Owen Williams 2012-05-11 Make track analysis interruptable so loaded tracks always get... RJ Ryan 2012-05-11 Use SoundSource samplerate instead of TrackInfoObject samplerate in... RJ Ryan 2012-05-11 Add daschuer's patch to allow enabling/disabling of iTunes/Traktor/... RJ Ryan 2012-05-11 Add daschuer's patch to allow importing external-library playlists ... RJ Ryan 2012-05-10 Add Tom Gascoigne's patch to add a locale preference option, allowi... RJ Ryan 2012-05-10 Change WStatusLight behavior so that PathBack is not drawn on every... RJ Ryan 2012-05-10 Use a CO instead of COTM in SoundManager. Daniel Schürmann 2012-05-10 fix bug #900255 losing keyboard release events RJ Ryan 2012-05-10 Add path from mutil to show help text when clicking the main browse... RJ Ryan 2012-05-09 Set SoundManager status to disconnected if we fail to open a device... RJ Ryan 2012-05-09 Forgot to create CO for SoundManager. RJ Ryan 2012-05-09 Add patch from Maxime Bochon to suggest a filename based on the pla... RJ Ryan 2012-05-09 Add [SoundManager],status [Recording],status and [Shoutcast],status... jus <https://launchpa... 2012-05-09 Update translation template jus <https://launchpa... 2012-05-09 Small tooltips fixes (Typo, Double space, Capitali... RJ Ryan 2012-05-08 Remove Q_ASSERT on query failure and another Q_ASSERT on rollback. RJ Ryan 2012-05-08 Fix iTunes scanner so it doesn't run with the main thread database ... RJ Ryan 2012-05-08 Close DB connection on shutdown in AnalyserWaveform. RJ Ryan 2012-05-08 Add connectionName to debug output. RJ Ryan 2012-05-08 Don't clone the QSqlDatabase in AnalysisDao. RJ Ryan 2012-05-08 Convert all transactions to use ScopedTransaction so should never b... RJ Ryan 2012-05-08 Add missing rollback and delete unused SQL statement. RJ Ryan 2012-05-08 Fix typo. RJ Ryan 2012-05-08 Prioritize tracks that are loaded when choosing the next track to a... RJ Ryan 2012-05-08 Fix typo. RJ Ryan 2012-05-08 Update translation templates so LP translators can start work on to... RJ Ryan 2012-05-08 Wordsmith and de-duplicate tooltips. jus 2012-05-08 Adds a selectable Tracks File Path display in the now less high track e... RJ Ryan 2012-05-08 [merge] Merging from lp:~mixxxdevelopers/mixxx/1.11-skins jus 2012-05-08 [merge] Merge from trunk jus 2012-05-08 [merge] Merge from trunk jus 2012-05-08 Oops, fix copypasta error jus 2012-05-08 [merge] Merge from trunk jus 2012-05-08 Make "orientation" TooltipID more unambiguous jus 2012-05-08 Removed individual Tooltip text in all skin.xml. Tooltip now use a Tool... jus 2012-05-08 Add bpm_tap_visual_bpm TooltipId to tooltips.cpp . This is a special ca... jus 2012-05-08 Unify heading word capitalization for displayed tooltips in tooltips.cpp jus 2012-05-08 Add track_duration, track_album, text , TooltipId`s to tooltips.cpp jus 2012-05-08 Fix spelling in tooltips.cpp jus 2012-05-08 [merge] Merge from trunk jus 2012-05-06 Revert last commit, cause the crossfaders ALT+H shortcut is already tak... jus 2012-05-06 Added shortcuts to switch the crossfader from left to right channel in ... jus 2012-05-06 [merge] Merge from trunk jus 2012-05-05 Add tooltips for all buttons in dlgprepare.ui jus 2012-05-05 Add tooltips for ramping pitchbend in dlgprefcontrolsdlg.ui jus 2012-05-04 Align the call to action button to the right like in all other preferen... jus 2012-05-04 Unify wording, use "Reset to Defaults" accross all preferences panes ( ... jus 2012-05-04 Clean up Preferences->Interface widget, fix lp:992144 jus 2012-05-04 [merge] Merge from trunk jus 2012-05-04 Apply styles to spinbox in AutoDJ tab in all skin.xml jus 2012-05-04 Made QSpinbox in dlgautodj.ui frameless and remove its fixed size. Need... jus 2012-05-04 Added QSpinbox to the existing workaround to support legacy color styli... jus 2012-05-04 Fix mini tooltips typo in all skin.xml jus 2012-05-03 [merge] Merge from trunk jus 2012-05-03 Fix typo in recordings preferences jus 2012-05-03 Update icons for the renamed History feature (was Set Log) jus 2012-05-02 [merge] Merge from trunk jus 2012-05-01 Update tooltips & use of EmitOnPressAndRelease for bpm_tab in Phoney(Da... jus 2012-05-01 Fix spacing in some skin.xml jus 2012-05-01 Added element missed in the previous copypasta fest in Deere1440x900-WX... jus 2012-05-01 Update tooltips & use of EmitOnPressAndRelease for bpm_tab with Outline... jus 2012-05-01 Bump target Mixxx version to 1.11 in skin.xml & CHANGELOG.txt jus 2012-05-01 Deere skin family: Move changelog from skin.xml to separate CHANGELOG.t... jus 2012-05-01 Shade skin family: Move changelog from skin.xml to separate CHANGELOG.t... jus 2012-05-01 PhoneyDark skin family: Move changelog from skin.xml to separate CHANGE... jus 2012-05-01 Phoney skin family: Move changelog from skin.xml to separate CHANGELOG.... jus 2012-05-01 Outline skin family: Move changelog from skin.xml to separate CHANGELOG... jus 2012-05-01 LateNightBlues skin family: Move changelog from skin.xml to separate CH... jus 2012-05-01 LateNight skin family: Move changelog from skin.xml to separate CHANGEL... jus 2012-05-01 Deere skin family: Move changelog from skin.xml to separate CHANGELOG.t... jus 2012-05-01 Support <Mark> (Hot)Cue and <MarkRange> Loop marker in waveform <Overvi... RJ Ryan 2012-05-08 Add patch from mutil to add right-click 'Open in file browser' cont... RJ Ryan 2012-05-08 Don't short-circuit Analyser::initialise calls. RJ Ryan 2012-05-08 Revert r3103. Sean M. Pappalardo 2012-05-08 Write beat detection defaults to config file on startup ... Sean M. Pappalardo 2012-05-08 Fixed waveforms again after r3101 RJ Ryan 2012-05-08 Add waveform analyser to prepare-analyser-queue so that waveforms w... RJ Ryan 2012-05-08 Don't run the analyser-queue on tracks for which no analyser wants ... RJ Ryan 2012-05-08 [merge] Merging from lp:mixxx/1.10 RJ Ryan 2012-05-08 Fix integer overflow when using 4GB recording splits. Fixes Bug mixxxdj#95... RJ Ryan 2012-05-07 Fix deletion order in DlgAutoDJ to fix header-state saving for the ... RJ Ryan 2012-05-07 Move tooltips out of skins and into src/skin/tooltips.cpp. Add Tool... RJ Ryan 2012-05-07 Re-work Beats::findBeats to not append to a QList<double>. Instead,... Owen Williams 2012-05-06 Add vinylcontrol_enabled to midi learning (lp:#995658) RJ Ryan 2012-05-06 [merge] Merging from lp:mixxx/1.10 RJ Ryan 2012-05-06 Remove Q_ASSERT on angle in WSpinny and gracefully handle the error...
… the currently playing track meta data
Enabling and disabling keylock now adjusts the pitch so that the effective key does not change. This results in the pitch slider jumping around a lot (which will screw up MIDI controllers if soft-takeover is not enabled). Maybe this could become a preference option at some point? I also reverted the skin changes. |
Playing with this new behavior, I realize that I often do this:
My expectation built up from all previous Mixxx versions has been that hitting keylock returns the track to its natural pitch. The new behavior actually locks the track at the pitch I didn't want. The new required series of steps (if I only discover I don't want the pitch after beatsyncing):
|
The key detector must not return 13.0 in this case. It is 1 again.
In this example it wraps at 12.49. We may consider to wrap at 12.99. Its only a case of definition.
Yes that is really the "jumping point" and an interesting question. If we look at how the key detection work, it should be meaningful because the track chroma is turned on the chroma of a reference chord to find a Maximum. The initial tuning value changes the start angel, thats all. |
Thank you @cpill0789
It looks like [tONaRT] could be a nice addition in future version of Mixxx, but it is not a FOSS library :-( OK, here is what I have learned from our discussion:
|
some side information: http://www.djtechtools.com/2012/01/26/key-detection-software-showdown-2012-edition/ and Rapid Evolution is now Open Source! (good key detection) |
Does anyone know what traktor or serato do when keylock is pushed? I definitely have had cases where I want the pitch to stay the same when switching from vinyl style to keylock, but I can't because the slider isn't at zero. But I also understand not wanting to lose the beatmatch. A tuning knob would fix the problem for sure but adding yet another knob is hard to justify. Maybe instead of a preference we can have a separate CO, key_maintain -- which holds the current pitch instead of resetting to natural pitch? This is harder for users to configure, I guess. So all of the options I see:
|
Ok, I think we're all agreed on storing concert_pitch as a float alongside the detected key! My main question now is whether this should be part of the key detection result. Some key detectors may not detect concert pitch (such as keyfinder and QM keydetect) but some do (such as tonart). Also, there may be some standalone concert pitch detector out there. To make matters more complicated, all key detectors we've seen also take a concert pitch as an input to allow compensating for a known different-than-A440 concert pitch. So I think it's safe to say these are separate analysis processes. This makes me think we should add a totally separate analysis result for concert pitch and not store it in the key detection results protocol buffer. For example, we may want to let the user manually enter the concert pitch before running the key detector. This would be awkward if that user-entered concert pitch data was stored in an empty key detection result proto. When the key detector finishes, would we merge it with the existing key detection proto or replace it? So, I'll leave concert pitch detection/manual-entry and compensation for a future project. Sound good? |
RE: Owen -- lets go with the current behavior and see if anyone complains in beta testing. We can add a preference option and manual COs if requested. I just want to avoid adding complexity before it's been requested by a user :). |
@rryan: sounds good to me. |
I also support the idea of an independent concert_pitch. It should be limited to +- 50 cents of A440 (the Mixxx concert pitch) to avoid changing keys by concert pitch. Use cases:
For me all that is not required for a merge, but the merged version should be able to support it later. |
Conflicts: src/library/dao/trackdao.cpp
Ugh, adding a preference option probably means adding an "Engine" or "Tempo / Pitch Control" preference tab. The setting doesn't really fit in any existing tab. Since the branch is stable and doesn't require any more data model changes I'm going to merge it. UI issues and preference options can be fixed in master. I filed a bug for the preference option: https://bugs.launchpad.net/mixxx/+bug/1258560 Thanks for all the comments! (we just barely made it to centi-thread) |
Key detection and pitch shifting.
hooray! |
Adopt windowForWidget() from qtbase
Release Mixxx 2.1.5.
This branch adds basic key detection and pitch shifting to Mixxx. It also switches to using librubberband for tempo and pitch shifting instead of libsoundtouch which to my ear is a huge sound quality win in exchange for a moderate CPU increase.
Features / Improvements:
Thanks to @ktec for writing the initial version of the preferences (forked from
DlgPrefBeats
) and Varun Jewalikar for writing the initial key analyser to use the VAMP plugin. Note that this branch is forked from Keith's features_key_preferences branch but I reverted everything butAnalyserKey
andDlgPrefKey
.@esbrandt -- I will revert the res/skins change before merge.