Menu

Tree [r31] /
 History

HTTPS access


File Date Author Commit
 ressources 2010-10-04 jeromeabel [r20] Version 0.34
 sox 2015-03-02 jeromeabel [r31] 0.36 : Windows compiled
 src 2015-02-23 jeromeabel [r30] version 0.36 : columncheckstate, deletefiles bugs
 QSox.pro 2015-03-02 jeromeabel [r31] 0.36 : Windows compiled
 QSox.pro.user 2015-02-23 jeromeabel [r29] version 0.36
 README.txt 2015-03-02 jeromeabel [r31] 0.36 : Windows compiled

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