View Issue Details

IDProjectCategoryView StatusLast Update
0001748ardourbugspublic2009-07-23 17:54
Reporterrealhangman Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status acknowledgedResolutionopen 
Summary0001748: Input / Pre / Post - view in the mixer doesn't get saved in Ardour2.0.2-vst
DescriptionI have a lot of tracks which I configured to show the input volume (to be fast ready in a live recording situation).
When I close Ardour and reopen the session, the mixer shows "post" for every channel.

Nothing big, but I think Ardour should remember all settings, and it's a bit inconvenient if you're using lots of tracks and you habe to click each one to show the "input" before recording.

Thanks for Ardour!
TagsNo tags attached.

  Users sponsoring this issue
  Users sponsoring this issue

Relationships

has duplicate 0002505 closed the track metering point of the mixer is not stored in the session 
related to 0002886 closedoofus Editor view not restored on session load. 

Activities

oofus

2007-07-01 01:10

developer   ~0004089

If you hold ctrl+shift and then click on the 'pre,post,input' button, all tracks will change together. But I agree, this state should be saved.

realhangman

2007-07-06 08:47

reporter   ~0004103

I also realized that there are a couple of other things that aren't saved in a session:
- track record enabled button
- main record enable button

realhangman

2007-07-06 08:48

reporter   ~0004104

+ it's still the same in Ardour 2.0.3

nowhiskey

2007-07-22 12:07

reporter   ~0004191

trying to reproduce this report, i realized that i am able to construct a session, which ardour will not be able to open anymore. i can reproduce this every time. tested with debian-lenny+fluxbox+ardour2-non-vst-rev2170

to reproduce:

-open new session
-add 12 mono tracks
-ctrl+shift the first (master) track and the last track, so all tracks (including master) gets marked
-ctrl+shift track-rec-enable
-main rec-enable
-save the session
-close the session
-do all this steps one more time
-when 3. time i try to open the session, ardour is not able to do so, giving some strange error messages in the console.

it is actually enough to rec-enable only one track and activate the main rec-enable button for ardour for not being able to open the session anymore.

console output:


....
Unable to open "/dev/input/event15": No such file or directory
powermate: Opening of powermate failed - No such file or directory
ardour: [INFO]: Control protocol powermate not usable
JACK tmpdir identified as [/dev/shm/]
SSE2 detected
loading bindings from /usr/local/etc/ardour2/ardour.bindings
Loading session /home/nowhiskey/Ardour2/120 using snapshot 120 (1)
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =272
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =286
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =300
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =314
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =328
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =342
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =356
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =370
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =384
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =398
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =412
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =426
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an
unknown source id =286
ardour: [FATAL]: programming error: unknown region type passed to
Session::add_region()
.......

realhangman, can you reproduce this, since we have similar setup (lenny+fb)?

for me it looks as a pretty dangerous bug?


cheers,
doc

nowhiskey

2007-07-22 12:27

reporter   ~0004192

i was playing with this now more times:

it is enough to open one track, the only important is to track-rec-enable, activate the main-rec-enable, save and close the session.
doing this twice, on a third try ardour will not be able to open the session
ever again.

cheers,
doc

realhangman

2007-07-22 15:34

reporter   ~0004193

Last edited: 2007-07-22 15:37

Hi nowhiskey,

I am able to reproduce your crash with 2.0.3-vst.

1. I create a new session
2. I create 1 mono track
3. I rec-enable the track + the main rec botton
4. save and reopen
5. rec-enable the track + the main rec botton AGAIN
6. save and reopen...

That gives me a segmentation fault (Speicherzufriffsfehler):

"Loading session /home/sound/test123 using snapshot test123 (1)
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an unknown source id =125
ardour: [ERROR]: Session: cannot create Region from XML description.
ardour: [ERROR]: Session: XMLNode describing a AudioRegion references an unknown source id =125
ardour: [FATAL]: programming error: unknown region type passed to Session::add_region()
Speicherzugriffsfehler
sound@sound:~$ "

Shall this be reported in another report or stay here?

oofus

2007-07-22 16:51

developer   ~0004194

Just reproduced this, SVN 2171 non-vst of ongoing on Madriva 2007.1, by following your steps.

I get the same sort of messages, programming error and XML node errors.

After that I can't open the session at all, Ardour just quits with no errors.

realhangman

2007-08-16 19:46

reporter   ~0004274

I'm not getting this crash anymore in Ardour 2.0.5-vst.
Can someone confirm this in a non-vst version?

But Pre/Input/Post/Rec status still don't get saved between sessions.

Realhangman

nowhiskey

2007-08-17 10:41

reporter   ~0004275

in svn-ongoing-non-vst i cannot reproduce that crash anymore.
the bad thing is that i did some missmatch here, reporting the crash in the very wrong place-should have opened another report...

sorry for that, the original issue from this report seems to be still present.

cheers,
doc

realhangman

2007-09-29 22:07

reporter   ~0004439

The view of Input / Pre / Post and the record enable buttons (per track and main) still don't get saved in Ardour 2.1.

I realised that the view also doesn't get saved (when I save the session with a view to let's say 1:30:00-1:40:00, the restarted sessions shows my editor at 0:00:00).

Hope I'm not getting annoying, I'm just reporting ;)

realhangman

2008-02-07 14:17

reporter   ~0004707

The view of

- Input / Pre / Post (is always post)
- record enable buttons (per track and main)
- the project (always shows you from 0:00:00 on and not where you ended editing when you saved) still don't get saved in Ardour 2.3.1.

oofus

2008-06-19 11:59

developer   ~0005061

This is still a frustrating issue (Input/Pre/Post not saved) in 2.0-ongoing SVN rev 3480.

nettings

2008-12-31 16:12

manager   ~0005557

still not addressed in 2.7.1. since i just reported a duplicate bug, i'm adding the magic words "metering point" to this bug report :)

2009-01-02 01:50

 

2505-track-metering-state.patch (1,147 bytes)   
diff -r b79a5ee173c4 libs/ardour/route.cc
--- a/libs/ardour/route.cc	Mon Dec 22 20:06:21 2008 +0000
+++ b/libs/ardour/route.cc	Fri Jan 02 01:46:42 2009 +0000
@@ -1523,7 +1523,8 @@
 	node->add_property("mute-affects-pre-fader", _mute_affects_pre_fader?"yes":"no"); 
 	node->add_property("mute-affects-post-fader", _mute_affects_post_fader?"yes":"no"); 
 	node->add_property("mute-affects-control-outs", _mute_affects_control_outs?"yes":"no"); 
-	node->add_property("mute-affects-main-outs", _mute_affects_main_outs?"yes":"no"); 
+	node->add_property("mute-affects-main-outs", _mute_affects_main_outs?"yes":"no");
+	node->add_property("meter-point", enum_2_string (_meter_point));
 
 	if (_edit_group) {
 		node->add_property("edit-group", _edit_group->name());
@@ -1738,6 +1739,10 @@
 		_mute_affects_main_outs = (prop->value()=="yes")?true:false;
 	}
 
+	if ((prop = node.property (X_("meter-point"))) != 0) {
+		_meter_point = MeterPoint (string_2_enum (prop->value (), _meter_point));
+	}
+	
 	if ((prop = node.property (X_("edit-group"))) != 0) {
 		RouteGroup* edit_group = _session.edit_group_by_name(prop->value());
 		if(edit_group == 0) {

cth103

2009-01-02 01:51

administrator   ~0005562

The attached patch should fix this.

nettings

2009-01-02 12:44

manager   ~0005565

great! i have just tested it against r4361, and it works like a charm.
hope this goes in asap. many thanks cth103!

paul

2009-01-02 12:55

administrator   ~0005566

carl's patch committed to 2.0-ongoing @ 4375 and 3.0 @ 4376.

this still leaves rec-enable state, at least.

realhangman

2009-01-03 16:58

reporter   ~0005571

Great to see progress here! :)

Fixed:
- The metering point (or Input/Pre/Post view) is saved now (just tried 2.0-ongoing- 4383).

Remaining:
- It would be great if the rec-enables status per track + main rec-button could be saved, too.

- The project view isn't completely saved, so Ardour always loads a project with the view from 0:00:00. I'd really like a project to be reopened in the same state I saved it.

Maybe some will disagree, but I will be totally happy if these last 2 points could get solved. cth103, thanks a lot for looking at this. I will raise the sponsorship for this issue :)

2009-01-03 21:07

 

1748-transport-frame-and-rec-state.patch (3,786 bytes)   
diff -r 9a91d975c88b gtk2_ardour/ardour_ui.cc
--- a/gtk2_ardour/ardour_ui.cc	Fri Jan 02 17:43:01 2009 +0000
+++ b/gtk2_ardour/ardour_ui.cc	Sat Jan 03 21:05:12 2009 +0000
@@ -1740,6 +1740,7 @@
 #endif
 }
 
+/** Blink timeout callback; called every 240ms */
 gint
 ARDOUR_UI::_blink (void *arg)
 
@@ -1754,13 +1755,11 @@
 	Blink (blink_on = !blink_on); /* EMIT_SIGNAL */
 }
 
+/** Start the blink signal. Everybody with a blinking widget
+ *  uses Blink to drive the widget's state. */
 void
 ARDOUR_UI::start_blinking ()
 {
-	/* Start the blink signal. Everybody with a blinking widget
-	   uses Blink to drive the widget's state.
-	*/
-
 	if (blink_timeout_tag < 0) {
 		blink_on = false;	
 		blink_timeout_tag = g_timeout_add (240, _blink, this);
@@ -1902,6 +1901,9 @@
 	}
 }
 
+/** Called every 240ms to blink the transport record button, if required.
+ *  @param onoff true for on, false for off.
+ */
 void
 ARDOUR_UI::transport_rec_enable_blink (bool onoff) 
 {
@@ -1911,6 +1913,7 @@
 	
 	switch (session->record_status()) {
 	case Session::Enabled:
+		/* rec enabled but not rolling; flash */
 		if (onoff) {
 			rec_button.set_visual_state (2);
 		} else {
@@ -1919,10 +1922,12 @@
 		break;
 
 	case Session::Recording:
+		/* recording; on but not flashing */
 		rec_button.set_visual_state (1);
 		break;
 
 	default:
+		/* not recording or enabled; off */
 		rec_button.set_visual_state (0);
 		break;
 	}
diff -r 9a91d975c88b gtk2_ardour/ardour_ui.h
--- a/gtk2_ardour/ardour_ui.h	Fri Jan 02 17:43:01 2009 +0000
+++ b/gtk2_ardour/ardour_ui.h	Sat Jan 03 21:05:12 2009 +0000
@@ -173,7 +173,10 @@
 
 	Gtk::Tooltips& tooltips() { return _tooltips; }
 
+	/** Emitted every 240ms with an alternating true / false parameter, once
+	 *  start_blinking() has been called. */
 	static sigc::signal<void,bool> Blink;
+	
 	static sigc::signal<void>      RapidScreenUpdate;
 	static sigc::signal<void>      SuperRapidScreenUpdate;
 	static sigc::signal<void,nframes_t, bool, nframes_t> Clock;
@@ -319,8 +322,8 @@
 
 	static gint _blink  (void *);
 	void blink ();
-	gint blink_timeout_tag;
-	bool blink_on;
+	gint blink_timeout_tag; ///< value returned from g_timeout_add in start_blinking(), or -1
+	bool blink_on; ///< last emitted blink value
 	void start_blinking ();
 	void stop_blinking ();
 
@@ -410,7 +413,7 @@
 	BindableButton goto_end_button;
 	BindableButton auto_loop_button;
 	BindableButton play_selection_button;
-	BindableButton rec_button;
+	BindableButton rec_button; ///< transport Record button
 
 	Gtk::ComboBoxText sync_option_combo;
 
diff -r 9a91d975c88b libs/ardour/session_state.cc
--- a/libs/ardour/session_state.cc	Fri Jan 02 17:43:01 2009 +0000
+++ b/libs/ardour/session_state.cc	Sat Jan 03 21:05:12 2009 +0000
@@ -649,6 +649,10 @@
 	unlink (xml_path.c_str());
 }
 
+/** Save state to disk.
+ *  @param snapshot_name Snapshot name to use, or "" to use _current_snapshot_name.
+ *  @param pending true to save to <snapshot_name>.pending, otherwise <snapshot_name>.ardour
+ */
 int
 Session::save_state (string snapshot_name, bool pending)
 {
@@ -928,6 +932,9 @@
 		node->add_property ("name", _name);
 		snprintf (buf, sizeof (buf), "%" PRId32, _nominal_frame_rate);
 		node->add_property ("sample-rate", buf);
+		node->add_property ("record-enabled", get_record_enabled () ? "1" : "0");
+		snprintf (buf, sizeof (buf), "%" PRId32, _transport_frame);
+		node->add_property ("transport-frame", buf);
 
 		if (session_dirs.size() > 1) {
 
@@ -1164,6 +1171,16 @@
 				return -1;
 			}
 		}
+	}
+
+	if ((prop = node.property (X_("record-enabled"))) != 0) {
+		if (prop->value () == "1") {
+			maybe_enable_record ();
+		}
+	}
+
+	if ((prop = node.property (X_("transport-frame"))) != 0) {
+		_transport_frame = atoi (prop->value ());
 	}
 
 	setup_raid_path(_path);

cth103

2009-01-03 21:08

administrator   ~0005572

Hi, well the attached 1748-transport-frame-and-rec-state.patch preserves transport frame and transport rec enable state. I'm working on per-track rec enable.

realhangman

2009-01-04 15:37

reporter   ~0005573

Hi,

just tried your patch with rev-4384. The main rec enable state gets saved now, but not the project view, which still always starts at 0:00:00. Did you mean that with preserve transport frame do I misunderstand you?
Thanks!

oofus

2009-01-04 16:04

developer   ~0005574

As I remember, restoring a session to it's last timeline position and zoom setting, on load, was something that was added quite a while ago. Maybe that just needs fixing rather than re-implementing.

seablade

2009-07-04 05:31

manager   ~0006241

Is this still an issue in SVN or 2.8.1 once that gets released?

realhangman

2009-07-04 12:24

reporter   ~0006250

Yes. In Rev 5270,

- the main rec button state does not get saved
- the track rec button state does not get saved
- the view state does not get saved correctly (zoom state and position marker are saved, but sessions always load with the view starting at 0:00:00)

realhangman

2009-07-04 12:28

reporter   ~0006251

Sorry! I was wrong. Ardour saves the view state.

So left are the main and per track rec button states.

seablade

2009-07-04 18:45

manager   ~0006255

Hmm the patch above seems to have the code for the session record enable, but needs to be cleaned up some I think as not all of it is needed anymore. Track rec enable might be a bit more difficult, but lemme check with carl next time I see him and get his opinion.

      Seablade

Issue History

Date Modified Username Field Change
2007-06-30 22:12 realhangman New Issue
2007-07-01 01:10 oofus Note Added: 0004089
2007-07-06 08:47 realhangman Note Added: 0004103
2007-07-06 08:48 realhangman Note Added: 0004104
2007-07-22 12:07 nowhiskey Note Added: 0004191
2007-07-22 12:27 nowhiskey Note Added: 0004192
2007-07-22 15:34 realhangman Note Added: 0004193
2007-07-22 15:37 realhangman Note Edited: 0004193
2007-07-22 16:51 oofus Note Added: 0004194
2007-08-16 19:46 realhangman Note Added: 0004274
2007-08-17 10:41 nowhiskey Note Added: 0004275
2007-09-29 22:07 realhangman Note Added: 0004439
2008-02-07 14:17 realhangman Note Added: 0004707
2008-06-19 11:59 oofus Note Added: 0005061
2008-10-06 13:55 realhangman Sponsorship Added realhangman: US$ 10
2008-10-06 13:55 realhangman Sponsorship Total 0 => 10
2008-12-31 16:12 nettings Note Added: 0005557
2009-01-02 01:49 cth103 Relationship added has duplicate 0002506
2009-01-02 01:50 cth103 File Added: 2505-track-metering-state.patch
2009-01-02 01:51 cth103 Note Added: 0005562
2009-01-02 01:51 cth103 Status new => feedback
2009-01-02 12:01 cth103 Relationship added has duplicate 0002505
2009-01-02 12:44 nettings Note Added: 0005565
2009-01-02 12:55 paul Note Added: 0005566
2009-01-03 16:58 realhangman Note Added: 0005571
2009-01-03 16:58 realhangman Sponsorship Updated realhangman: US$ 20
2009-01-03 16:58 realhangman Sponsorship Total 10 => 20
2009-01-03 16:58 realhangman Sponsorship Updated realhangman: US$ 30
2009-01-03 16:58 realhangman Sponsorship Total 20 => 30
2009-01-03 21:07 cth103 File Added: 1748-transport-frame-and-rec-state.patch
2009-01-03 21:08 cth103 Note Added: 0005572
2009-01-04 15:37 realhangman Note Added: 0005573
2009-01-04 16:04 oofus Note Added: 0005574
2009-07-04 05:31 seablade Note Added: 0006241
2009-07-04 05:31 seablade Sponsorship Total 30 => 0
2009-07-04 05:31 seablade Description Updated
2009-07-04 05:31 seablade Additional Information Updated
2009-07-04 07:00 seablade Relationship deleted has duplicate 0002506
2009-07-04 12:24 realhangman Note Added: 0006250
2009-07-04 12:28 realhangman Note Added: 0006251
2009-07-04 18:45 seablade Note Added: 0006255
2009-07-04 18:45 seablade Status feedback => acknowledged
2009-10-31 14:28 paul Relationship added related to 0002886