ardour.git
4 years agosplit session-bundled-related methods to their own file
Paul Davis [Fri, 20 Sep 2019 20:31:19 +0000 (14:31 -0600)]
split session-bundled-related methods to their own file

4 years agoadd const and tweak variable name
Paul Davis [Fri, 20 Sep 2019 20:12:08 +0000 (14:12 -0600)]
add const and tweak variable name

4 years agotransport master deletion is no longer in parallel with process()
Paul Davis [Fri, 20 Sep 2019 20:11:53 +0000 (14:11 -0600)]
transport master deletion is no longer in parallel with process()

4 years agouse internal seek to implement DiskReader::seek() when possible.
Paul Davis [Fri, 20 Sep 2019 20:11:07 +0000 (14:11 -0600)]
use internal seek to implement DiskReader::seek() when possible.

This still needs a check that the amount of readable data left in the buffe is adequate.

4 years agoNO-OP: whitespace
Robin Gareus [Sun, 22 Sep 2019 02:58:32 +0000 (04:58 +0200)]
NO-OP: whitespace

4 years agoOptimize Audio-buffer summing
Robin Gareus [Sun, 22 Sep 2019 02:54:28 +0000 (04:54 +0200)]
Optimize Audio-buffer summing

* skip silent buffers
* use vectorized copy
* prefer memset for zero-gain

4 years agoRemove unused method
Robin Gareus [Sun, 22 Sep 2019 02:52:26 +0000 (04:52 +0200)]
Remove unused method

4 years agoProperly initialize BusSendEnable min/max
Robin Gareus [Sun, 22 Sep 2019 02:15:36 +0000 (04:15 +0200)]
Properly initialize BusSendEnable min/max

4 years agoNO-OP: cleanup code
Robin Gareus [Sun, 22 Sep 2019 02:15:01 +0000 (04:15 +0200)]
NO-OP: cleanup code

4 years agoFix latency-measurement port-name display
Robin Gareus [Fri, 20 Sep 2019 21:30:05 +0000 (23:30 +0200)]
Fix latency-measurement port-name display

In case there are no pretty-names, a blank text was displayed

4 years agoAdd abstract API for latency compensated sends
Robin Gareus [Fri, 20 Sep 2019 18:25:04 +0000 (20:25 +0200)]
Add abstract API for latency compensated sends

This is in preparation for MixbusSends that are not derived from
Delivery : IOProcessor.

4 years agodo not abort in the event that we cannot internal-seek to align with the playhead.
Paul Davis [Fri, 20 Sep 2019 19:02:46 +0000 (13:02 -0600)]
do not abort in the event that we cannot internal-seek to align with the playhead.

There are no good options here, but treating it like a regular underrun seems as good as anything

4 years agobetter initial value
Paul Davis [Fri, 20 Sep 2019 18:36:23 +0000 (12:36 -0600)]
better initial value

4 years agoremove debug output
Paul Davis [Fri, 20 Sep 2019 18:19:25 +0000 (12:19 -0600)]
remove debug output

4 years agofix crash when doing rapid (ongoing-locate-interrupting) locates
Paul Davis [Fri, 20 Sep 2019 18:18:49 +0000 (12:18 -0600)]
fix crash when doing rapid (ongoing-locate-interrupting) locates

4 years agomove TransportFSM::enqueue() into .cc file
Paul Davis [Fri, 20 Sep 2019 18:17:22 +0000 (12:17 -0600)]
move TransportFSM::enqueue() into .cc file

4 years agoat transport stop, reset FSM's idea of the last locate target (also removes const...
Paul Davis [Fri, 20 Sep 2019 18:16:50 +0000 (12:16 -0600)]
at transport stop, reset FSM's idea of the last locate target (also removes const from method)

4 years agofix commented out decision on whether or not to hide/show sysexes in MIDI regions
Paul Davis [Fri, 20 Sep 2019 18:11:33 +0000 (12:11 -0600)]
fix commented out decision on whether or not to hide/show sysexes in MIDI regions

4 years agoHandle an unused edge-case
Robin Gareus [Fri, 20 Sep 2019 17:40:29 +0000 (19:40 +0200)]
Handle an unused edge-case

In practice PanControllable::owner cannot be NULL, but in theory it
could be (and might be for Mixbus6 internal panning).

4 years agoFix Latency Measurement without device re-start
Robin Gareus [Fri, 20 Sep 2019 17:38:34 +0000 (19:38 +0200)]
Fix Latency Measurement without device re-start

This handles a case when the engine was started normally
(not for latency measurement), and measurement is performed later.
This resulted in a duplicate backend start

4 years agoconst-ify TransportFSM
Paul Davis [Fri, 20 Sep 2019 15:44:15 +0000 (09:44 -0600)]
const-ify TransportFSM

4 years agorename TransportFSM::FSMEvent to TransportFSM::Event (c/o the Department of Redundanc...
Paul Davis [Fri, 20 Sep 2019 15:38:09 +0000 (09:38 -0600)]
rename TransportFSM::FSMEvent to TransportFSM::Event (c/o the Department of Redundancy Department)

4 years agoadd an important comment about transportFSM being single-thread and synchronous
Paul Davis [Fri, 20 Sep 2019 15:35:08 +0000 (09:35 -0600)]
add an important comment about transportFSM being single-thread and synchronous

4 years agouse boost::intrusive to manage FSM events (this is all RT code)
Paul Davis [Fri, 20 Sep 2019 15:33:24 +0000 (09:33 -0600)]
use boost::intrusive to manage FSM events (this is all RT code)

4 years agoexpand comment
Paul Davis [Fri, 20 Sep 2019 14:21:14 +0000 (08:21 -0600)]
expand comment

4 years agoRemove my BOOST_MPL declarations (as BOOST_MPL seems to have been removed more generally)
John Emmas [Fri, 20 Sep 2019 10:32:58 +0000 (11:32 +0100)]
Remove my BOOST_MPL declarations (as BOOST_MPL seems to have been removed more generally)

4 years agoremove compiler flags required only by boost::msm and a large transition table
Paul Davis [Fri, 20 Sep 2019 04:34:02 +0000 (22:34 -0600)]
remove compiler flags required only by boost::msm and a large transition table

4 years agoreplace boost::msm - based FSM for transport with one written in "plain C++"
Paul Davis [Fri, 20 Sep 2019 04:33:43 +0000 (22:33 -0600)]
replace boost::msm - based FSM for transport with one written in "plain C++"

Still need to use boost::intrusive to managed qeued/deferred containers

4 years agoFix LV2 state:loadDefaultState
Robin Gareus [Wed, 18 Sep 2019 16:40:02 +0000 (18:40 +0200)]
Fix LV2 state:loadDefaultState

lilv_state_restore() needs to be called unconditionally (regardless
if a plugin actually has a state-interface) to set port and properties.
It has to be called after ports are enumerated and supported
properties are loaded.

4 years agodon't bother following playhead priority during session loading
Paul Davis [Wed, 18 Sep 2019 16:08:32 +0000 (10:08 -0600)]
don't bother following playhead priority during session loading

4 years agodeepen stack trace when checking non-RT RT calls
Paul Davis [Wed, 18 Sep 2019 16:08:20 +0000 (10:08 -0600)]
deepen stack trace when checking non-RT RT calls

4 years agoAdd missing break (VST-key forwarding)
Robin Gareus [Wed, 18 Sep 2019 15:28:35 +0000 (17:28 +0200)]
Add missing break (VST-key forwarding)

4 years agoNO-OP: fix some Wimplicit-fallthrough, see prev commit
Robin Gareus [Wed, 18 Sep 2019 15:27:56 +0000 (17:27 +0200)]
NO-OP: fix some Wimplicit-fallthrough, see prev commit

4 years agoNO-OP: fix some Wimplicit-fallthrough
Robin Gareus [Wed, 18 Sep 2019 15:27:09 +0000 (17:27 +0200)]
NO-OP: fix some Wimplicit-fallthrough

gcc can recognize various regexps in comments. Since C++17 provides
[[fallthrough]], using /* fallthrough */ consistently seems
appropriate until we switch to C++17.

see also https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

4 years agoIntroduce the BOOST_MPL stuff (though it all seems a bit flaky with MSVC...)
John Emmas [Wed, 18 Sep 2019 14:08:26 +0000 (15:08 +0100)]
Introduce the BOOST_MPL stuff (though it all seems a bit flaky with MSVC...)

4 years agoRemove a (no longer needed) source file from our MSVC project (evoral)
John Emmas [Wed, 18 Sep 2019 14:05:16 +0000 (15:05 +0100)]
Remove a (no longer needed) source file from our MSVC project (evoral)

4 years agoAdd/remove source(s) in our MSVC project (libardour)
John Emmas [Wed, 18 Sep 2019 14:03:51 +0000 (15:03 +0100)]
Add/remove source(s) in our MSVC project (libardour)

4 years agoFix OSX builds: undef Apples's odd nil macro
Robin Gareus [Wed, 18 Sep 2019 04:23:40 +0000 (06:23 +0200)]
Fix OSX builds: undef Apples's odd nil macro

4 years agoConsistent use of abort() /* NOTREACHED */
Robin Gareus [Wed, 18 Sep 2019 03:57:26 +0000 (05:57 +0200)]
Consistent use of abort() /* NOTREACHED */

This fixes some static analysis warnings:
PBD::fatal transmitter needs to be connected to a function
that aborts. This is usually the case with GUI

4 years agoFix Wdeprecated, dynamic exception
Robin Gareus [Wed, 18 Sep 2019 02:43:09 +0000 (04:43 +0200)]
Fix Wdeprecated, dynamic exception

Dynamic exception specifications are deprecated in C++11,
and were removed in C++17.

4 years agoRemove old unused source file
Robin Gareus [Wed, 18 Sep 2019 02:37:12 +0000 (04:37 +0200)]
Remove old unused source file

4 years agoAdd missing i18n include (after 7f3f2018334)
Robin Gareus [Wed, 18 Sep 2019 02:32:51 +0000 (04:32 +0200)]
Add missing i18n include (after 7f3f2018334)

4 years agoRe-order includes
Robin Gareus [Wed, 18 Sep 2019 02:14:31 +0000 (04:14 +0200)]
Re-order includes

* external, system-wide first <>
* next "pbd/*"
...

4 years agoRemove "i18n.h" include from header - fix builds
Robin Gareus [Wed, 18 Sep 2019 02:09:26 +0000 (04:09 +0200)]
Remove "i18n.h" include from header - fix builds

i18n alsways needs to be included last. This fixes an ambiguity of "_"

boost/function_types/detail/class_transform.hpp:23:26:
 error: ‘boost::mpl::placeholders::_’ has not been declared
 using mpl::placeholders::_;

4 years agodeepen stacktrace to show where non-process calls to supposedly process-stack-only...
Paul Davis [Wed, 18 Sep 2019 01:16:53 +0000 (19:16 -0600)]
deepen stacktrace to show where non-process calls to supposedly process-stack-only methods are called

4 years agoadd finite state machine to control/manage transport state
Paul Davis [Wed, 18 Sep 2019 00:26:03 +0000 (18:26 -0600)]
add finite state machine to control/manage transport state

4 years agocorrect mistakenly left-in debugging condition that removed parallelism for PortManag...
Paul Davis [Wed, 18 Sep 2019 00:20:51 +0000 (18:20 -0600)]
correct mistakenly left-in debugging condition that removed parallelism for PortManager::cycle_start()

4 years agominor tweaks to use initialization rather than assignment
Paul Davis [Wed, 27 Mar 2019 16:58:12 +0000 (09:58 -0700)]
minor tweaks to use initialization rather than assignment

4 years agoremove unused local variable
Paul Davis [Mon, 8 Jul 2019 15:59:14 +0000 (09:59 -0600)]
remove unused local variable

4 years agofix thinko when testing for internal seek with negative distance
Paul Davis [Thu, 5 Sep 2019 20:04:20 +0000 (14:04 -0600)]
fix thinko when testing for internal seek with negative distance

4 years agouse const int rather than macro
Paul Davis [Thu, 11 Jul 2019 15:15:42 +0000 (09:15 -0600)]
use const int rather than macro

4 years agoparametize the maximum transport speed.
Paul Davis [Thu, 11 Jul 2019 05:32:14 +0000 (23:32 -0600)]
parametize the maximum transport speed.

No GUI to adjust this at this, nor is any planned. This just makes it easier if
we ever feel we can change this.

4 years agoresize audio port _data buffer based on current buffer size
Paul Davis [Thu, 11 Jul 2019 05:39:02 +0000 (23:39 -0600)]
resize audio port _data buffer based on current buffer size

4 years agomanually correct cherry-pick of cdbabe40ed4e
Paul Davis [Mon, 8 Jul 2019 16:01:25 +0000 (10:01 -0600)]
manually correct cherry-pick of cdbabe40ed4e

4 years agoadd new port flag to identify those owned by a transport master
Paul Davis [Mon, 8 Jul 2019 15:58:01 +0000 (09:58 -0600)]
add new port flag to identify those owned by a transport master

These ports are handled without SRC

4 years agoadd ::usable() method to TransportMaster objects to allow GUI to show their usability...
Paul Davis [Mon, 16 Sep 2019 19:46:06 +0000 (13:46 -0600)]
add ::usable() method to TransportMaster objects to allow GUI to show their usability after backend/engine changes

4 years agoCorrectly handle Zoom > Edit-point > Mouse
Robin Gareus [Tue, 17 Sep 2019 14:56:15 +0000 (16:56 +0200)]
Correctly handle Zoom > Edit-point > Mouse

Previously this failed if the event was initiated outside
of the canvas (e.g. Zoom buttons).

This also fixes a special case of Zooming to an edit-point at zero.

4 years agofoldback gui: removed mute, solo button hide in SIP
Len Ovens [Mon, 16 Sep 2019 23:23:01 +0000 (16:23 -0700)]
foldback gui: removed mute, solo button hide in SIP

Mute removed, Solo renamed to listen only shows when
not in SIP mode.

4 years agoClarify splash-screen boot messages
Robin Gareus [Mon, 16 Sep 2019 20:56:54 +0000 (22:56 +0200)]
Clarify splash-screen boot messages

Parsing MIDNAM is what takes the most time.

"Reset Remote Controls" message is misleading (it means MMC), not
control-surfaces, which a user may have none.

4 years agoFoldback gui: desensitize solo button when in SIP mode
Len Ovens [Sun, 15 Sep 2019 21:48:09 +0000 (14:48 -0700)]
Foldback gui: desensitize solo button when in SIP mode

Because foldback by design goes to physical outputs
rather than master or monitor, SIP solo does not work
or make sense. PFL/AFL allow a foldback to be rough
adjusted using the control room monitoring.

A soloed Foldback bus will be released when the foldback
strip is switched to a different foldback bus

4 years agoFoldback gui:Removed unused calls and parameters
Len Ovens [Sun, 15 Sep 2019 14:00:11 +0000 (07:00 -0700)]
Foldback gui:Removed unused calls and parameters

4 years agoSet Foldback strip width and ellipsize to work
Len Ovens [Sat, 14 Sep 2019 17:19:01 +0000 (10:19 -0700)]
Set Foldback strip width and ellipsize to work

4 years agodesensitize foldback show unless there is a foldback bus
Len Ovens [Fri, 13 Sep 2019 15:18:35 +0000 (08:18 -0700)]
desensitize foldback show unless there is a foldback bus

The view menu should not show the foldback item
if there is no foldback bus available.

4 years agoUse new icons in mixer window
Robin Gareus [Thu, 12 Sep 2019 21:35:57 +0000 (23:35 +0200)]
Use new icons in mixer window

4 years agoAdd new icons: hide, prev/next
Robin Gareus [Thu, 12 Sep 2019 21:30:48 +0000 (23:30 +0200)]
Add new icons: hide, prev/next

4 years agofoldback gui: simplify foldback strip menus
Len Ovens [Thu, 12 Sep 2019 19:44:38 +0000 (12:44 -0700)]
foldback gui: simplify foldback strip menus

This uses less code and fixes the odd crash as well
(there was sometimes a crash when using the send
display context menu)

4 years agofoldback gui: simplify button code where possible
Len Ovens [Thu, 12 Sep 2019 16:39:38 +0000 (09:39 -0700)]
foldback gui: simplify button code where possible

use signal_clicked rather than signal_button_press_event
for cases where a menu is not launched.

4 years agoFoldback gui: Added hide and show
Len Ovens [Wed, 11 Sep 2019 23:36:05 +0000 (16:36 -0700)]
Foldback gui: Added hide and show

- New menu item in view menu
- Foldback strip has hide button
- Adding a new foldback bus sets show
- setting is saved and restored

4 years agofoldback gui: added tool tips for previous and next
Len Ovens [Wed, 11 Sep 2019 04:40:39 +0000 (21:40 -0700)]
foldback gui: added tool tips for previous and next

4 years agoFoldback gui: previous and next buttons don't wrap around
Len Ovens [Wed, 11 Sep 2019 04:09:54 +0000 (21:09 -0700)]
Foldback gui: previous and next buttons don't wrap around

I had set the previous next buttons to wrap around
but Robin felt dead ending was better. The previous
button becomes insensitive when the first foldback bus
is displayed and next is insensitive when the last is
displayed.

4 years agoFoldback GUI: sort send controls by mixer order
Len Ovens [Wed, 11 Sep 2019 02:26:00 +0000 (19:26 -0700)]
Foldback GUI: sort send controls by mixer order

also found send button name did not follow sending
route name after change and tool tip was wrong. Fixed
both.

4 years agoWho needs semicolons?
Robin Gareus [Wed, 11 Sep 2019 01:00:26 +0000 (03:00 +0200)]
Who needs semicolons?

4 years agoAU: fix optional buffers
Robin Gareus [Wed, 11 Sep 2019 00:40:57 +0000 (02:40 +0200)]
AU: fix optional buffers

The spec [1] says:
 "If the mData pointers are null, the audio unit can
  provide pointers to its own buffers. In this case,
  the audio unit must keep those buffers valid for
  the duration of the calling thread’s I/O cycle."

A plugin *can* do this, but it does not need to. An extra
NULL test is required.

furthermore [2] specifies

 "mDataByteSize -  The number of bytes in the buffer pointed
  at by the mData field."

In case the host does not provide any buffers, this is obviously zero.

[1] https://developer.apple.com/documentation/audiotoolbox/1438430-audiounitrender?language=objc
[2] https://developer.apple.com/documentation/coreaudiotypes/audiobuffer?language=objc

4 years agoAU: don't consider in-place if there are no inputs
Robin Gareus [Wed, 11 Sep 2019 00:31:19 +0000 (02:31 +0200)]
AU: don't consider in-place if there are no inputs

4 years agoFoldback GUI: size and position tweaks
Len Ovens [Tue, 10 Sep 2019 23:08:24 +0000 (16:08 -0700)]
Foldback GUI: size and position tweaks

 - Set width so added pan controls in send controls don't change size
 - output button shows only ports applicable to foldback use
 - Size text to leave widget width alone
 - Center level control
 -

4 years agoAdd note about Denormal protection pref changes
Robin Gareus [Tue, 10 Sep 2019 15:03:16 +0000 (17:03 +0200)]
Add note about Denormal protection pref changes

Modifications to the MXCSR register are pre thread. Changing this
setting only directly affects the GUI thread.

4 years agoMXCSR is a 32bit unsigned int register
Robin Gareus [Tue, 10 Sep 2019 14:59:04 +0000 (16:59 +0200)]
MXCSR is a 32bit unsigned int register

https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_setcsr

4 years agoFix ARM compilation
Robin Gareus [Tue, 10 Sep 2019 02:09:22 +0000 (04:09 +0200)]
Fix ARM compilation

4 years agoRemove redundant call (moved to libardour)
Robin Gareus [Tue, 10 Sep 2019 01:07:17 +0000 (03:07 +0200)]
Remove redundant call (moved to libardour)

4 years agoEngage thread-safe fftw planner in libardour
Robin Gareus [Tue, 10 Sep 2019 01:06:21 +0000 (03:06 +0200)]
Engage thread-safe fftw planner in libardour

This way initialization happens constently, and independent from the GUI,
for session-utils, lua, headless..

4 years agoImplement denormal protection for ARM
Robin Gareus [Mon, 9 Sep 2019 16:54:49 +0000 (18:54 +0200)]
Implement denormal protection for ARM

4 years agoUse ProcessThread::init () to set up denormal protection
Robin Gareus [Mon, 9 Sep 2019 16:48:16 +0000 (18:48 +0200)]
Use ProcessThread::init () to set up denormal protection

Modifying the MXCSR register only affects the current thread.

4 years agoRemove NO-OP; ProcessThread::init() does nothing
Robin Gareus [Mon, 9 Sep 2019 16:44:24 +0000 (18:44 +0200)]
Remove NO-OP;  ProcessThread::init() does nothing

4 years agoRemove NO-OP, ProcessThread::init() does nothing
Robin Gareus [Mon, 9 Sep 2019 16:43:57 +0000 (18:43 +0200)]
Remove NO-OP, ProcessThread::init() does nothing

4 years agoWhen muting MIDI, silence all playing notes
Robin Gareus [Mon, 9 Sep 2019 15:10:04 +0000 (17:10 +0200)]
When muting MIDI, silence all playing notes

All-note-off event (CC 123) needs to be accompanied
with raising the sustain-pedal (CC 64).

4 years agoFix MIDI velocity scale for muted sends and manual faders
Robin Gareus [Mon, 9 Sep 2019 03:01:26 +0000 (05:01 +0200)]
Fix MIDI velocity scale for muted sends and manual faders

Do not send continuous stream of note-evens with zero velocity
after muting a MIDI track or after a fade to silence completed
(and all-notes-off has been sent).

NB. Automated Faders are left untouched (no panic is sent for -infdB gain),
Note-on events with zero velocity are sent.

4 years agoReport whether arlua is being built
Robin Gareus [Mon, 9 Sep 2019 02:14:57 +0000 (04:14 +0200)]
Report whether arlua is being built

4 years agoSend NoteOff on when muting MIDI, drop note events when silent
Robin Gareus [Mon, 9 Sep 2019 02:10:59 +0000 (04:10 +0200)]
Send NoteOff on when muting MIDI, drop note events when silent

4 years agoNO OP: clean up and rearrange things
Len Ovens [Sun, 8 Sep 2019 17:04:14 +0000 (10:04 -0700)]
NO OP: clean up and rearrange things

4 years agoTweak foldback style and tweak alignment
Robin Gareus [Sun, 8 Sep 2019 20:33:01 +0000 (22:33 +0200)]
Tweak foldback style and tweak alignment

This tentatively re-uses nudge arrows for prev/next buttons,
and matches alignment of the top of the strips.

4 years agoFoldback GUI: Add menus to send box
Len Ovens [Sat, 7 Sep 2019 21:51:01 +0000 (14:51 -0700)]
Foldback GUI: Add menus to send box

4 years agoMatch foldback strip BG to dark theme better
Len Ovens [Fri, 6 Sep 2019 18:26:43 +0000 (11:26 -0700)]
Match foldback strip BG to dark theme better

4 years agoNO-OP: whitespace
Robin Gareus [Fri, 6 Sep 2019 18:43:20 +0000 (20:43 +0200)]
NO-OP: whitespace

4 years agoFix MSVC compilation
Robin Gareus [Fri, 6 Sep 2019 18:35:49 +0000 (20:35 +0200)]
Fix MSVC compilation

This resolves a circular dependency:
libardour calls methods from libardour_cp and vice versa.
Since 9bb2f2bb libardour is also calling active() and that method
needs to be forced to use late binding. -- compare to b9bbea71748

4 years agoAdd patchfiles/Moog_Slim_Phatty.midnam
Johannes Maibaum [Sun, 14 Jul 2019 12:47:47 +0000 (14:47 +0200)]
Add patchfiles/Moog_Slim_Phatty.midnam

4 years agoImprove Lua unit-test report
Robin Gareus [Fri, 6 Sep 2019 16:33:48 +0000 (18:33 +0200)]
Improve Lua unit-test report

4 years agoAdd Readme to the Lua script folder
Robin Gareus [Fri, 6 Sep 2019 16:18:29 +0000 (18:18 +0200)]
Add Readme to the  Lua script folder

4 years agoAnother script to skip during unit-tests
Robin Gareus [Fri, 6 Sep 2019 16:17:23 +0000 (18:17 +0200)]
Another script to skip during unit-tests

4 years agoFix LuaProc script-parse return status
Robin Gareus [Fri, 6 Sep 2019 13:39:54 +0000 (15:39 +0200)]
Fix LuaProc script-parse return status

4 years agoRemove ancient unit-test data
Robin Gareus [Fri, 6 Sep 2019 01:09:39 +0000 (03:09 +0200)]
Remove ancient unit-test data

Evoral MIDI automation interpolation is tested separately,
there is no need to evaluate a complete old session