I know deleteLater() is here for the reason an there is lots of discussion how not so wonderfull is to use
straight delete with QObject but then documentation of deleteLater says object is deleted when thread is exited
and it seems that the said thread in this point main so memory usage will rise and rise

Dicussion about using deleteLater()
http://stackoverflow.com/questions/4888189/how-delete-and-deletelater-works-wrt-to-signals-and-slots-in-qt

==7930== 5,776,177 (40 direct, 5,776,137 indirect) bytes in 1 blocks are definitely lost in loss record 1,754 of 1,754
==7930==    at 0x4C2BCA7: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==7930==    by 0xA128BE: BeatFactory::loadBeatsFromByteArray(QSharedPointer<TrackInfoObject>, QString, QString,
QByteArray*) (qsharedpointer_impl.h:267)
==7930==    by 0x8BAACA: TrackDAO::getTrackFromDB(int) const (trackdao.cpp:934)
==7930==    by 0x8BC5FB: TrackDAO::getTrack(int, bool) const (trackdao.cpp:1059)
==7930==    by 0x81A402: BaseSqlTableModel::getTrack(QModelIndex const&) const (basesqltablemodel.cpp:693)
==7930==    by 0xAD48E6: WTrackTableView::slotMouseDoubleClicked(QModelIndex const&) (wtracktableview.cpp:378)
==7930==    by 0xA978F1: WTrackTableView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)
(moc_wtracktableview.cc:91)
==7930==    by 0x78BA29E: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in
/usr/lib64/libQtCore.so.4.8.4)
==7930==    by 0x60F0664: QAbstractItemView::doubleClicked(QModelIndex const&) (in /usr/lib64/libQtGui.so.4.8.4)
==7930==    by 0x60F07C4: QAbstractItemView::mouseDoubleClickEvent(QMouseEvent*) (in /usr/lib64/libQtGui.so.4.8.4)
==7930==    by 0x5C39161: QWidget::event(QEvent*) (in /usr/lib64/libQtGui.so.4.8.4)
==7930==    by 0x5FE3F25: QFrame::event(QEvent*) (in /usr/lib64/libQtGui.so.4.8.4)
Fixes leakage of non freed EngineEffect that leaks memory also clear QMap (just because other QMap is also cleared)

==18481== 5,122,340 (120 direct, 5,122,220 indirect) bytes in 1 blocks are definitely lost in loss record 1,798 of 1,799
==18481==    at 0x4C2BCA7: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==18481==    by 0x6455F6: Effect::Effect(QObject*, EffectsManager*, EffectManifest const&, QSharedPointer<EffectInstantiator>) (effect.cpp:20)
==18481==    by 0x673D28: EffectsBackend::instantiateEffect(EffectsManager*, QString const&) (effectsbackend.cpp:58)
==18481==    by 0x682C4D: EffectsManager::instantiateEffect(QString const&) (effectsmanager.cpp:129)
==18481==    by 0x68596C: EffectsManager::setupDefaults() (effectsmanager.cpp:158)
==18481==    by 0x95341C: MixxxMainWindow::MixxxMainWindow(QApplication*, CmdlineArgs const&) (mixxx.cpp:148)
==18481==    by 0x470772: main (main.cpp:338)
Because SampleUtil::alloc() usage  pure usage of delete could led in crash when freeing reverb
effects so use SampleUtil::free() to fix this

==18091== Mismatched free() / delete / delete []
==18091==    at 0x4C2AA9C: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==18091==    by 0x6BE5BA: GroupEffectProcessor<ReverbGroupState>::~GroupEffectProcessor() (reverbeffect.h:29)
==18091==    by 0x6BDA3F: ReverbEffect::~ReverbEffect() (reverbeffect.cpp:62)
==18091==    by 0x7921BE: EngineEffect::~EngineEffect() (engineeffect.cpp:38)
==18091==    by 0x792D58: EngineEffect::~EngineEffect() (engineeffect.cpp:51)
==18091==    by 0x646DA3: Effect::~Effect() (effect.cpp:61)
==18091==    by 0x647B98: Effect::~Effect() (effect.cpp:62)
==18091==    by 0x64D057: EffectChain::~EffectChain() (qsharedpointer_impl.h:342)
==18091==    by 0x64D218: EffectChain::~EffectChain() (effectchain.cpp:26)
==18091==    by 0x653B38: EffectChainManager::~EffectChainManager() (qsharedpointer_impl.h:342)
==18091==    by 0x653C48: EffectChainManager::~EffectChainManager() (effectchainmanager.cpp:21)
==18091==    by 0x684C33: EffectsManager::~EffectsManager() (effectsmanager.cpp:25)
==18091==  Address 0x1b7eb580 is 0 bytes inside a block of size 640,000 alloc'd
==18091==    at 0x4C2B537: operator new[](unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==18091==    by 0x6BF301: GroupEffectProcessor<ReverbGroupState>::initialize(QSet<QString> const&) (reverbeffect.h:25)
==18091==    by 0x79397D: EngineEffect::EngineEffect(EffectManifest const&, QSet<QString> const&, QSharedPointer<EffectInstantiator>) (engineeffect.cpp:31)
==18091==    by 0x644A8F: Effect::Effect(QObject*, EffectsManager*, EffectManifest const&, QSharedPointer<EffectInstantiator>) (effect.cpp:18)
==18091==    by 0x674EA8: EffectsBackend::instantiateEffect(EffectsManager*, QString const&) (effectsbackend.cpp:58)
==18091==    by 0x683DCD: EffectsManager::instantiateEffect(QString const&) (effectsmanager.cpp:129)
==18091==    by 0x68766B: EffectsManager::setupDefaults() (effectsmanager.cpp:180)
==18091==    by 0x95B4BC: MixxxMainWindow::MixxxMainWindow(QApplication*, CmdlineArgs const&) (mixxx.cpp:148)
==18091==    by 0x470772: main (main.cpp:338)
==18091==
EngineEffectManager is allocated but not freed

==18942== 2,627,848 (40 direct, 2,627,808 indirect) bytes in 1 blocks are definitely lost in loss record 1,589 of 1,589
==18942==    at 0x4C2BCA7: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==18942==    by 0x687CFC: EffectsManager::EffectsManager(QObject*, ConfigObject<ConfigValue>*) (effectsmanager.cpp:19)
==18942==    by 0x9535A8: MixxxMainWindow::MixxxMainWindow(QApplication*, CmdlineArgs const&) (mixxx.cpp:137)
==18942==    by 0x470772: main (main.cpp:338)
Freeing allocated EngineEffectRack

==19186== 2,572,176 (24 direct, 2,572,152 indirect) bytes in 1 blocks are definitely lost in loss record 1,578 of 1,578
==19186==    at 0x4C2BCA7: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==19186==    by 0x66DC30: EffectRack::EffectRack(EffectsManager*, EffectChainManager*, unsigned int) (effectrack.cpp:16)
==19186==    by 0x653148: EffectChainManager::addEffectRack() (effectchainmanager.cpp:37)
==19186==    by 0x685852: EffectsManager::setupDefaults() (effectsmanager.cpp:137)
==19186==    by 0x95361C: MixxxMainWindow::MixxxMainWindow(QApplication*, CmdlineArgs const&) (mixxx.cpp:148)
==19186==    by 0x470772: main (main.cpp:338)
Freeing allocated Buffer in engineeffectchain.cpp and let Effect chaing to free it also.

==19402== 642,456 (56 direct, 642,400 indirect) bytes in 1 blocks are definitely lost in loss record 1,577 of 1,580
==19402==    at 0x4C2BCA7: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==19402==    by 0x64BD6B: EffectChain::EffectChain(EffectsManager*, QString const&, QSharedPointer<EffectChain>) (effectchain.cpp:21)
==19402==    by 0x66CADE: EffectRack::addEffectChainSlot() (effectrack.cpp:132)
==19402==    by 0x68592C: EffectsManager::setupDefaults() (effectsmanager.cpp:150)
==19402==    by 0x95363C: MixxxMainWindow::MixxxMainWindow(QApplication*, CmdlineArgs const&) (mixxx.cpp:148)
==19402==    by 0x470772: main (main.cpp:338)