DevNotes:23.01.2008

From Resound-wiki

Jump to: navigation, search

Contents

General

  • Compiles and builds successfully. Haven't tried install as didn't want to overwrite existing install.
  • Server & GUI run and connect to Jack successfully, audio and MIDI.

Zipper Noise

  • Briefly tested with 440Hz sine tone at -6dBFS 16-bit.
  • Zipper noise is reduced.
  • 'Stepping' is introduced in the interpolation as a function of buffer size:
    • At 2 x 1024, obvious stepping
    • At 2 x 128, much less
    • Stepping is much more apparent with fast changes, and much less apparent with non-sine-tone sources (see below).
  • Also some periodic noise in the signal but don't know if this might be to do with the quality of the sine tone in the first place; need to verify.
  • In general though an improvement over the previous test.

Performance

  • Control responsiveness vs. processor usage has greatly improved. Buffer of 2 x 1024 frames is now an acceptable maximum size.
  • Periodic crackling in the signal is remedied by restarting Jack and seems to be unrelated to buffer size. This does warrant further investigation because the cause has not been identified.

2-in from Audio Interface 8-out

  • 2 x 256 buffer caused no xruns. Crackling in signal seemingly unrelated to buffer size as described previously.

2-in from VLC 8-out

  • 2 x 256 caused no xruns. Responsive control.
  • 2 x 1024 caused no xruns. Responsive control. Acceptable maximum buffer size.
  • 2 x 2048 caused no xruns. Control is not sluggish but 'stepped' esp. with sudden changes. This setting would be acceptable in emergency only.
  • 2 x 4096. Control is not sluggish but noticeably stepped. Unusable.

6-in from VLC 8-out

  • 2 x 1024 buffer caused a few xruns and glitches. The system was obviously struggling. Best avoid more-than-stereo playback unless using a more powerful machine or separate client/server setup.

Bugs / Improvements

In order of priority...

  1. (This is really two separate but similar issues.) Matrix nodes do not initialise properly on loading patch in GUI: values are not passed to server when rpf file is loaded. Similarly (and poss. more trickily) if the server is started with the GUI already running, the GUI doesn't refresh the server with it's current parameters.
  2. Once a parameter has been locked, it seems not to be possible to control it in real-time, i.e. to cancel the locking completely; at least I could not find a way to do this.
  3. Matrix node locks in GUI seem to operate in inverse (downward drag increases value, upward decreases).
  4. .rpf could automatically be suffixed on to saved files if not explicitly typed by the user...
  5. Not sure about compatibility with rpf files saved from earlier revisions, especially viz. node locks. I think some weird things happened when I loaded an rpf saved from an earlier version.

Crashes / Observations

  • GUI crashed, poss. after removing a behaviour and then moving a control that had previously been assigned to that behaviour. Full console output as follows:
---- Resound Client Running ----
Remove Parameter: /bm/mp_crossfade_0/amp
Address has been removed: /bm/mp_crossfade_0/amp
Address has been removed: /bm/mp_crossfade_0/amp
Address has been removed: /bm/mp_crossfade_0/amp
Remove Parameter: /bm/mp_crossfade_0/pos
Address has been removed: default
Address has been removed: /bm/mp_crossfade_0/pos
Address has been removed: default
Address has been removed: default
Address has been removed: /bm/mp_crossfade_0/pos
Address has been removed: /bm/mp_crossfade_0/pos
Behaviour 0~BehaviourViewItem
Behaviour~ mp_crossfade_0
resound_gui: /usr/include/boost/shared_ptr.hpp:315: T* boost::shared_ptr<T>::operator->() const [with T = \
Resound::Parameter]: Assertion `px != 0' failed.
Aborted (core dumped)
  • After loading a saved rpf file, creating a Multipoint Crossfade behaviour consistently caused a seg fault. This may have been because one had previously been deleted before the patch was saved as it doesn't seem to happen with every loaded rpf file.
  • Removing an element from a collective caused a seg fault. The collective was probably in use at the time...
Personal tools