Read Me
*********************
******* QSox ********
*********************
Description: a batch-oriented frontend for SoX with Qt.
Date: 02/03/2015
Version: 0.36
Authors: Jérôme Abel (lead developer), Julien Bréval (SoX commands and UI design), Julien Colafrancesco (contributor), Benoît Courribet (user expert)
Research centre: CICM (Centre de recherche Informatique et Création Musicale) - http://cicm.mshparisnord.org/
Licences: Qt / SoX : GNU GPL
QSox licence : GNU GPL
Website: https://sourceforge.net/projects/qsox/
Mailing lists:
- users: https://lists.sourceforge.net/lists/listinfo/qsox-users
- contributors: https://lists.sourceforge.net/lists/listinfo/qsox-contributors
LIMITATIONS
==========================
Now, QSox works on Win XP and GNU/Linux. For Mac, you could download XCode and Qt and compile the source code.
QSox doesn't support mp3 like SoX.
ARCHITECTURE
==========================
1. User Interface (Qt, C++): manage user interactions and views; call SoX program; files.
2. SoX: this is a cross-platform command line utility that can convert various formats of computer audio files in to other formats (see http://sox.sourceforge.net/).
INSTALLATION
==========================
Requirements for Linux : install SoX with "apt-get install sox"
If it doesn't work, try to install qt runtime.
Just launch the executable.
CHANGES
==========================
- 0.36 : 02/03/2015 (quite a while !)
update code for Qt5 compilation
bugs about dither commands in Save.cpp and Dither.cpp (QStringList)
bugs about "Delete Files" (list sorted)
bugs in ProcessesChainManagement.cpp about column and checkstate(m_chainWidget.item(i,0)->checkState())
Save color, ...
New "sox.exe" program downloaded from sourceforge and include in "sox/win"
- 0.35 : 06/10/2010
DEVELOPMENT
==========================
We use Qt Creator as IDE.
We use the "shadow build system" from Qt Creator, so you need to create those folders :
./QSox/
....../dev/
....../QSox-build-desktop/
........................./sox
........................./tmp
In your local "./dev" folder, you can put the latest source code with svn command :
$ cd ./dev
$ svn co https://qsox.svn.sourceforge.net/svnroot/qsox qsox
For Window users, see SVN clients software like TortoiseSVN.
The "./QSox-build-desktop" is the build folder by default.
For Windows copy "./dev/sox/win" folder into "./QSox-build-desktop" and rename it "./sox/".
TODO LIST
==========================
- Compile under Mac OS X
- Make an index.html page for the website
- Make a documentation
- Test Load/Save XML for all processes
- Add a Render dialog and progress bar with a Cancel button
- Add a "Preferences" Tab : folder "sounds", folder "tmp", sox folder, xml folder, view column selection for Load tab, save/load preferences, icons/text on button, interleave auto
- Check text description in "About" tab.
- Test Limiter process (see "ProcessFactory.cpp" to uncomment it). It works with Sox but not with QSox ... :
$ sox source -b 16 destination compand 0.001,0.020 1:-inf,-inf,-20,-20,0,-20 0 -inf 0.002 dither -S
- Test Single filter process (see "ProcessFactory.cpp" to uncomment it). This SoX command doesn't work :
$ sox source -b 16 destination band 0 0.707q
- Improve size management of windows and widget.
- Improve Save process (add Quality number box, add Deinterleave channels toggle, Resolution depend on output format : 1. 8-bit unsigned integer, 16-bit signed integer; 2. 24-bit signed-integer, 32-bit float, 64-bit float)
- Keyboard event like "Delete" to handle
- Add "Load Interleave (Dialog)" in Load tab
- Add MP3 support ?
- Make an Icon
DEVELOPPERS SPECIFIC TODO LIST
==============================
- Improve source and binary management for cross-platform compilation (QSox.pro and qmake language, shadow build)
Crossplateform compilation:
Be careful :
- the file "QSoxMainForm.cpp" need #include "../../QSox-build-desktop/ui_QSoxMainForm.h"
- the file "Save.cpp" need #include "../../../QSox-build-desktop/moc_Save.cpp"
- See "Save.cpp"
#if defined(__linux__)
#include "../../../QSox-build-desktop/moc_Save.cpp"
#endif
- See QSox.pro:
win32:MOC_DIR = ../QSox-build-desktop
win32:OBJECTS_DIR = ../QSox-build-desktop
win32:RCC_DIR = ../QSox-build-desktop
win32:DESTDIR = ../QSox-build-desktop
- Improve code in LoadManagement : loadFolder, loadFiles, soxFormat, soxList, etc.
- Normalize the code (Coplien canonical form)
- Unit tests, integration tests, user test (acceptation) : test automatisation
- Improve code :
- Process * ProcessesAll::getProcess(const QString & _name)
- ProcessesFactory::ProcessesFactory() : !!! singleton, order, without copy
- ProcessesManagement::~ProcessesManagement()
- ProcessesManagement::ProcessesManagement : Add "Save" process automatically at the beginning
- ProcessesManagement::addProcess()
- void ProcessesManagement::renderProcesses()
- void ProcessesManagement::preview()
- void ProcessesManagement::load()
- void ProcessesChainManagement::save()
- QStringList ProcessesChainManagement::getParameters(int _i) // just for Save process
- QList<Preset> ProcessesChainManagement::getPresets(int _i) // just for Save process