View Issue Details

IDProjectCategoryView StatusLast Update
0004649ardourbugspublic2020-04-19 20:16
Reporteranrug Assigned Topaul  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Target Version2.8.13 
Summary0004649: TOC export writes PERFORMER field only when present
DescriptionArdour (2.0 and 3.0) does write the CD text field "PERFORMER" only when it's actually actually present. This may sound reasonable, and for cue sheets it probably is, but for reasons I'm not familiar with, the cdrdao source code wants this field filled in for all tracks and in the global section, so Ardour should probably adjust here, because cdrdao will refuse to burn a CD otherwise.

The same is actually true for the TITLE field, cdrdao handles those two fields differently then any other CD text field. But with TITLE it's not an issue because that will always be filled in by Ardour at the moment.

I've included a patch for review.
Additional InformationThe way CD text fields are written into the R-W subcode streams in the lead-in area of an audio CD requires that each CD text field (TITLE, PERFORMER, SONGWRITER, etc.) is present for all tracks and globally if it's used in at least one track or globally. So in many cases zero-length strings will be stored (a single terminating zero that is), that's how CD text works. And cdrdao hands over that restriction over to it's users. But CD text *does not* require a specific field like PERFORMER to be present at all, that restriction comes from cdrdao.
TagsNo tags attached.

Activities

2012-01-21 23:44

 

toc_performer.patch (1,296 bytes)   
Index: libs/ardour/export_handler.cc
===================================================================
--- libs/ardour/export_handler.cc	(Revision 11297)
+++ libs/ardour/export_handler.cc	(Arbeitskopie)
@@ -431,7 +431,8 @@
 
 	status.out << "CD_DA" << endl;
 	status.out << "CD_TEXT {" << endl << "  LANGUAGE_MAP {" << endl << "    0 : EN" << endl << "  }" << endl;
-	status.out << "  LANGUAGE 0 {" << endl << "    TITLE \"" << title << "\"" << endl << "  }" << endl << "}" << endl;
+	status.out << "  LANGUAGE 0 {" << endl << "    TITLE \"" << title << "\"" << endl ;
+	status.out << "    PERFORMER \"\"" << endl << "  }" << endl << "}" << endl;
 }
 
 void
@@ -505,9 +506,13 @@
 	}
 
 	status.out << "CD_TEXT {" << endl << "  LANGUAGE 0 {" << endl << "     TITLE \"" << status.marker->name() << "\"" << endl;
+	
+	status.out << "     PERFORMER \"";
 	if (status.marker->cd_info.find("performer") != status.marker->cd_info.end()) {
-		status.out << "     PERFORMER \"" << status.marker->cd_info["performer"]  << "\"" << endl;
+		status.out << status.marker->cd_info["performer"];
 	}
+	status.out << "\"" << endl;
+	
 	if (status.marker->cd_info.find("composer") != status.marker->cd_info.end()) {
 		status.out  << "     COMPOSER \"" << status.marker->cd_info["composer"] << "\"" << endl;
 	}
toc_performer.patch (1,296 bytes)   

cth103

2012-01-22 10:43

administrator   ~0012612

Applied to 3.0 SVN 11299. Thanks!

paul

2012-01-24 16:18

administrator   ~0012639

i believe that this is no longer an issue for either TOC or CUE.

system

2020-04-19 20:16

developer   ~0022941

Issue has been closed automatically, by Trigger Close Plugin.
Feel free to re-open with additional information if you think the issue is not resolved.

Issue History

Date Modified Username Field Change
2012-01-21 23:44 anrug New Issue
2012-01-21 23:44 anrug File Added: toc_performer.patch
2012-01-22 10:20 cth103 cost => 0.00
2012-01-22 10:20 cth103 Target Version => 3.0-beta3
2012-01-22 10:43 cth103 Note Added: 0012612
2012-01-22 10:43 cth103 Target Version 3.0-beta3 => 2.8.13
2012-01-24 16:18 paul Note Added: 0012639
2012-01-24 16:18 paul Status new => resolved
2012-01-24 16:18 paul Resolution open => fixed
2012-01-24 16:18 paul Assigned To => paul
2020-04-19 20:16 system Note Added: 0022941
2020-04-19 20:16 system Status resolved => closed