DevNotes:15-18.11.2007
From Resound-wiki
Contents |
[edit]
Improvement and Testing of OSC Control
- (Testing with Lemur failed due to network restrictions)
- Download and install OSC-kit from cnmat; didn't compile
- Install PD from Synaptic. Only potential issue with this is that it installs an earlier version of libjack (0.100) which may install itself over the version 0.103 required to run freebob. The synaptic version didn't have the OSC extensions, so was uninstalled. There may be a problem with libjack.
- Download and install PD Extended http://puredata.info/downloads. Needed to run gdebi from shell in order to use proxies.
- sendOSC and packOSC are the relevant objects. See the PD patch pdsendosctoresound.pd in docs folder of svn tree.
[edit]
Bug Testing
- Client is receiving OSC but not responding to it. Why?
- Only the bottom row of faders (beginning fader/17 are registered. Sending OSC to fader 17-32 worked. OSC registrations for the top row of faders (0 - 16) never took place!
- Fixed. Change committed.
- Crash - graphical glitches and eventually a core dump - when testing OSC sending on multiple channels simultaneously.
- Crash is immediately preceded by (Google search) GLib-GObject-CRITICAL error
- Code that updates graphical faders is convoluted and triggers wxWidgets events probably unnecessarily
- Adding a function to set value without triggering any events, for use with external (non-mouse) value updates: Resound::FaderWidget::SetValueNoEvent - doesn't appear to have made any difference
- Suspect problem may be due to flooding wxWidgets event queue: sending update messages every 100ms did not crash the system in 10 minutes of running.
- Added accelerated NVidia graphics driver. Performance increase but same crash bug. Suggests not related to graphics driver.
- This problem occurs on RM Expert 3010 running Ubuntu 7.10 with libwxgtk2.8.4.0-0ubuntu3 but does not seem to happen on Toshiba laptop running Ubuntu 7.04 with libwxgtk2.6.3.2.1.5ubuntu6
[edit]
Adding the necessary additional configuration options
- wx has a command line parser, which we are implementing in app.cpp
- Command line arguments have been rather inelegantly copied to allow compatibility with boost's (more flexible) command line parser.
- Matrix size of GUI and OSC ports used by server and client are now all accounted for (default values are shown):
./resound_server --inputs 2 --outputs 8 --port 4567 ./resound_gui --inputs 2 --outputs 8 --clientport 8000 --serverip 127.0.0.1 --serverport 4567
[edit]
Bug Fixes
- Multipoint cross-fade needs to be reviewed - done
- Collective element scaling factor needs to work predictably. Two bugs here: - done
- Incorrect values result if the dialog box is Cancelled rather than OK'd. Cancel returns an empty string which is erroneously being applied. Added check for empty string in pvarwidgets.cpp (around line 434).
- When Collective Builder Dialog is rebuilt (when opening the CBD or when adding or removing elements from the collective) the text representation of scaling factor is not refreshed although the correct values are retained internally. Fixed.
- Behaviours need to be removeable
- Adding remove_parameter function to ParameterNamespaceManager (pvar.cpp: 137 etc)
- Testing destruction of behaviours...
- Causes seg fault if the out-going behaviour has any of its (now NULL) parameters adjusted. Modifying ParameterLink (see pvar.h) so that it retains a list of ParameterLink pointers, is able to acquire a new smart pointer to the original address (see reacquire() function) and scan all parameter links in the system (reacquire_all()).
- Fixed and committed (rev 61) but other bugs have been introduced in the process...
- Locking a parameter on a behaviour that has been removed causes seg fault.
- Added exception catch in monitornodewidget.cpp (line 70). Fixed and committed (rev 62)
- Removing element from collective causes seg fault.
- Suspect this is also related to wx version 2.8 as it doesn't happen on 2.6.
- BehaviourViewItem (see behaviourview.cpp) does not disappear from GUI when behaviour is removed
- Fixed by handling 'Remove' mouse event in the parent rather than inside the BehaviourViewItem itself and doing a whole load of nonsense with wxWidgets. Committed (rev 63)
- Need to test now, e.g. has this affected save and load, etc.
[edit]
New features
[edit]
GUI control of fader presets
- Implemented, with instant recall of the first 10 presets with the 0-9 keys
[edit]
Run server in verbose mode
- Command line options have been added to the server and GUI apps, but conditionals for actually displaying verbose output have not yet been implemented
- Short command line variants for all options have also been added and are as follows for the server and GUI respectively:
-h [ --help ] produce help message -i [ --inputs ] arg (=2) set number of audio inputs -o [ --outputs ] arg (=8) set number of audio outputs -p [ --port ] arg (=4567) set number OSC server port -v [ --verbose ] verbose output
-h [ --help ] produce help message -i [ --inputs ] arg (=2) set number of audio inputs -o [ --outputs ] arg (=8) set number of audio outputs -c [ --clientport ] arg (=8000) set the client gui fader osc port -s [ --serverip ] arg (=127.0.0.1) set the server osc ip address -p [ --serverport ] arg (=4567) set the server osc port -v [ --verbose ] verbose output
[edit]
Fader control of collective element scaling factor
- This has now been added
[edit]
MIDI Support
- Compiler flag for MIDI support added in CMakeLists.txt for the resound GUI. See line 47:
SET(CMAKE_CXX_FLAGS "-g -DUSE_MIDI")
- Note that this is not included in the Apple compile (as there is no MIDI support for Apple) and therefore shouldn't affect compilation on OS X.
[edit]
Rationalisation of Install Process
[edit]
Improve Handling of GUI image files
- Modification of CMake configuration files to obtain install prefix from CMAKE_INSTALL_PREFIX macro and feed this in to a compiler-defined macro named RESOURCE_DIR
- Update all graphics paths in source code with RESOURCE_DIR macro
[edit]
Configure CMake to generate install targets
- Install process is now as follows:
- Install all dependencies
- Download source, cd into src directory
- cmake -DCMAKE_INSTALL_PREFIX=/usr .
- make
- sudo make install
- This installs the following top-level files and folders:
[prefix]/bin/resound_server [prefix]/bin/resound_gui [prefix]/lib/libresound_common.a [prefix]/share/resound_gui
- Application can be uninstalled by recursively removing these files/directories
[edit]
Finalise for release 0.1.73
[edit]
Branch Project
- Branched project under a release number 0.1.73 using svn copy, e.g.
svn copy [trunk head] [new branch root] -m "creating a branch"
- Actual command used:
svn copy https://resound.svn.sourceforge.net/svnroot/resound/trunk https://resound.svn.sourceforge.net/svnroot/resound/branches/resound-0.1.73 -m "Creating branch of Resound 0.1.73"
[edit]
Generate source tar-ball
- Download all latest source from branch head:
svn export https://resound.svn.sourceforge.net/svnroot/resound/branches/resound-0.1.73 resound-0.1.73
- Create a zipped tarball with it:
tar czvf resound-0.1.73.tar.gz resound-0.1.73
- FTP file to upload.sourceforge.net (anonymous login, email address for password) and add to a release via http://sourceforge.net/project/admin/editpackages.php?group_id=196164
[edit]
To Do
- Server monitoring with ncurses
- Debian Package of Source==
- Package, from a branched release, containing all the dependencies
- http://www.debian.org/doc/maint-guide/
- http://ubuntuforums.org/showthread.php?t=51003
- Debian Package of Binaries, pre-compiled for a particular platform
- DMG Installer for Mac OS X
- Port for Windows XP
- Installer for Windows XP
