mail this page
products | company | support | training | contact us
We use the Open Source program MoreAmp as a base for all player development. Originally for advanced equalization (it has a 31 band 1/3 octave equalizer) which is useful for experimenting with since it works in real-time. But we then used its file writing capabilities to generate ogg files that had been put through the equalizer. The ogg files were then converted into an appropriate file format (mostly using Audacity) for subsequent use.
But then we got greedy and wanted more - so we started doing some development of MoreAmp under Windows. The following notes document our freely available extensions but you will have to compile them into MoreAmp so the additional notes should be read in conjunction with the notes in the source distribution of MoreAmp and specifically the INSTALLwin32.txt file in the base directory of the source distribution (choose the source tarball).
We use a 'forever frozen in time' MS VS/VC/C++ 6.0. Why buy a new hammer if the current one works? If you are using a later version things may be a tad different.
A relatively simple process once you get a couple of things right. One of the additional benefits of compiling from source is that you get .mp3, mp4 and .aac output support which for licensing reasons is not built into the .exe release). MoreAmp becomes a pretty comprehensive transcoder.
Get and untar the source code tarball (the one that ends with tar.gz) from MoreAmp at SourceForge into a suitable folder. Almost any zip application will recognize and unpack a tar.gz (tarball) format file under windows.
Read the INSTALLwin32.txt in the MoreAmp base directory before you start anything to get an overview of the process.
MoreAmp uses wxWidgets for OS independence. If you are not already using wxWidgets you will need to obtain a distribution (select wxMSW). This downloads a standard setup.exe which will by default installs to c:\wxWidgets-x.y.x (where x.y.z is the current release number). Now you need to build the library so that it can be statically linked to MoreAmp. Failure to do this will result in multiple header files being not found in the vc_libs folders (which are only created during the wxWidgets build process). Read the instructions defined in the \docs\msw\install.txt for an outline of the process but FOLLOW THE INSTRUCTION BELOW:.
If you did not have wxWidgets installed before: Load the VC 6.0 workspace from \build\msw\wx.dsw workspace. Select Project->Settings. Make sure the Setting for: Drop down is set to Win32 Release. Now select the C/C++ Tab and Code Generation From the drop down list. Select Multithreaded. Select OK. Now go to Build->Batch Build. When the Window pops up Uncheck everything EXCEPT Win32 Release and Win32 Debug for each library (unless you want to wait 5 hours for the build to complete). Check the Selected Only check box and click the Build button.
If you previously installed and compiled wxWidgets: Load the VC 6.0 workspace from \build\msw\wx.dsw workspace. Select Project->Settings. Make sure the Setting for: Drop down is set to Win32 Release. Now select the C/C++ Tab and Code Generation From the drop down list. Select Multithreaded. Select OK. If you changed ANY project setting then VS/VC6 will not recompile - to explicity force recompilation you need to delete all the object files (.obj files) in build\msw\vc_msw and build\msw\vc_mswd under each library. Failure to do this may result in multiple link errors when building MoreAmp (specifically LNK2001 errors and LNK4049 warnings). Now go to Build->Batch Build. When the Window pops up Uncheck everything EXCEPT Win32 Release and Win32 Debug for each library (otherwise it will build everything and take forever). Check the Selected Only box and click the Build button.
Once wxWidgets has been compiled you can now build a version of MoreAmp. Load the VC 6.0 workspace from \msvc++\MoreAmp.dsw.
Add to the include file list the location of the wxWidgets release folder - tools->options select 'Include files' from the drop down menu and add c:\wxWidgets-x.y.z\include\msvc or whatever folder you installed wxWidgets into.
Add to the library file list the location of the wxWidgets release folder - tools->options select 'Libary files' from the drop down menu and add c:\wxWidgets-x.y.z\lib\vc_lib or whatever folder you installed wxWidgets into.
Make sure a Release build is selected (it's Debug by default) - Build->Select Active Configuration->MoreAmp-Win32 Release
If everything goes OK the resulting executable will be in msvc++\Output\MoreAmp.exe
The following notes are in addition to the process described above and deal only with VC++ 2008 Express Edition (you cannot jump straight from VC++ 6.0 files to 2010 format files - you need to go though VC++ 2008 as an intermediate step):
Load the MoreAmp.dsw file on the first occasion (click OK to requests for conversion) and on subsequent loads use the MoreAmp.sln file
Add the vxWidgets include and library file reference using Tools->Options->Projects and Solutions->VC++ Directories (Include Files needs both a reference to vxwigets-xxxx/include and vxwigets-xxxx/include/msvc)
the portaudio library contains a reference to dsound.lib which requires a download of the MS DirectX SDK. This is a serious download (v10 was 571mb). Add the dsound.lib reference to the Libary Files section (normally Program Files(x86)/Microsoft DirectX SDK/lib/x86
Problems, comments, suggestions, corrections (including broken links) or something to add? Please take the time from a busy life to 'mail us' (at top of screen), the webmaster (below) or info-support at zytrax. You will have a warm inner glow for the rest of the day.
If you are happy it's OK - but your browser is giving a less than optimal experience on our site. You could, at no charge, upgrade to a W3C standards compliant browser such as Firefox