View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0010327 | ardour | features | public | 2026-05-11 08:30 | 2026-05-12 12:36 |
| Reporter | colinf | Assigned To | |||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | new | Resolution | open | ||
| Product Version | 9.2 | ||||
| Summary | 0010327: 'New Playlist (for group)' should default playlist name to group name | ||||
| Description | Before a8395718 or thereabouts, creating new playlists for members of a route group would name the playlists after the group, which made sense to me. Currently though, new playlists for grouped tracks are just named 'Take.[n]' with a global incrementing take number, as 'New Playlists (for selected/all tracks)' does. I don't know whether this change for grouped tracks was a deliberate design decision or an oversight, but either way I preferred the old behaviour. | ||||
| Additional Information | Simple patch to make it so attached, in case anyone's interested. There was some weird whitespace going on in this area, fixed in the second patch. | ||||
| Tags | No tags attached. | ||||
|
|
0001-name-New-Playlist-for-group-after-group.patch (1,718 bytes)
From 6a09c507959db15297a4cdc840c10fd7592f8220 Mon Sep 17 00:00:00 2001
From: Colin Fletcher <colin.m.fletcher@googlemail.com>
Date: Sun, 10 May 2026 22:38:26 +0100
Subject: [PATCH 1/2] name 'New Playlist (for group)' after group
Default the playlist name chosen by 'New Playlist (for group)' to be the
group name (followed by an incrementing number if necessary).
---
gtk2_ardour/editor.cc | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 4934fce118..b474916f6b 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -3653,9 +3653,10 @@ Editor::stamp_new_playlist (string title, string &name, string &pgroup, bool cop
if (name.length()==0) {
name = _("Take.1");
- if (_session->playlists()->by_name (name)) {
- name = Playlist::bump_name (name, *_session);
- }
+ }
+
+ if (_session->playlists()->by_name (name)) {
+ name = Playlist::bump_name (name, *_session);
}
Prompter prompter (true);
@@ -3732,7 +3733,8 @@ void
Editor::new_playlists_for_grouped_tracks (RouteUI* rui, bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for this track/group") : _("New Playlist for this track/group"), name,gid,copy)) {
+ name = rui->route_group()->name();
+ if (stamp_new_playlist( copy ? _("Copy Playlist for this track/group") : _("New Playlist for this track/group"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_grouped_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists), rui, ARDOUR::Properties::group_select.property_id);
--
2.47.3
0002-whitespace.patch (2,433 bytes)
From 4764b630aeb45fdfbc6a3dc91541618b1de1f3c9 Mon Sep 17 00:00:00 2001
From: Colin Fletcher <colin.m.fletcher@googlemail.com>
Date: Sun, 10 May 2026 22:38:38 +0100
Subject: [PATCH 2/2] whitespace
---
gtk2_ardour/editor.cc | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index b474916f6b..858e9e7626 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -3651,7 +3651,7 @@ Editor::stamp_new_playlist (string title, string &name, string &pgroup, bool cop
{
pgroup = Playlist::generate_pgroup_id ();
- if (name.length()==0) {
+ if (name.length() == 0) {
name = _("Take.1");
}
@@ -3722,7 +3722,7 @@ void
Editor::new_playlists_for_all_tracks (bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for ALL Tracks") : _("New Playlist for ALL Tracks"), name,gid,copy)) {
+ if (stamp_new_playlist( copy ? _("Copy Playlist for ALL Tracks") : _("New Playlist for ALL Tracks"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_all_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists));
@@ -3745,7 +3745,7 @@ void
Editor::new_playlists_for_selected_tracks (bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for Selected Tracks") : _("New Playlist for Selected Tracks"), name,gid,copy)) {
+ if (stamp_new_playlist( copy ? _("Copy Playlist for Selected Tracks") : _("New Playlist for Selected Tracks"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_selected_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists));
@@ -3756,7 +3756,7 @@ void
Editor::new_playlists_for_armed_tracks (bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for Armed Tracks") : _("New Playlist for Armed Tracks"), name,gid,copy)) {
+ if (stamp_new_playlist( copy ? _("Copy Playlist for Armed Tracks") : _("New Playlist for Armed Tracks"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_armed_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists));
--
2.47.3
|
|
|
And here's a version that doesn't crash creating a new playlist for a track that's not a member of a group... 0001-whitespace.patch (3,191 bytes)
From c6d36775bc985db6bad94a01a76432931405b3bf Mon Sep 17 00:00:00 2001
From: Colin Fletcher <colin.m.fletcher@googlemail.com>
Date: Sun, 10 May 2026 22:38:38 +0100
Subject: [PATCH 1/2] whitespace
---
gtk2_ardour/editor.cc | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 4934fce118..441098ff0e 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -3651,7 +3651,7 @@ Editor::stamp_new_playlist (string title, string &name, string &pgroup, bool cop
{
pgroup = Playlist::generate_pgroup_id ();
- if (name.length()==0) {
+ if (name.length() == 0) {
name = _("Take.1");
if (_session->playlists()->by_name (name)) {
name = Playlist::bump_name (name, *_session);
@@ -3721,7 +3721,7 @@ void
Editor::new_playlists_for_all_tracks (bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for ALL Tracks") : _("New Playlist for ALL Tracks"), name,gid,copy)) {
+ if (stamp_new_playlist( copy ? _("Copy Playlist for ALL Tracks") : _("New Playlist for ALL Tracks"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_all_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists));
@@ -3732,7 +3732,7 @@ void
Editor::new_playlists_for_grouped_tracks (RouteUI* rui, bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for this track/group") : _("New Playlist for this track/group"), name,gid,copy)) {
+ if (stamp_new_playlist( copy ? _("Copy Playlist for this track/group") : _("New Playlist for this track/group"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_grouped_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists), rui, ARDOUR::Properties::group_select.property_id);
@@ -3743,7 +3743,7 @@ void
Editor::new_playlists_for_selected_tracks (bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for Selected Tracks") : _("New Playlist for Selected Tracks"), name,gid,copy)) {
+ if (stamp_new_playlist( copy ? _("Copy Playlist for Selected Tracks") : _("New Playlist for Selected Tracks"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_selected_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists));
@@ -3754,7 +3754,7 @@ void
Editor::new_playlists_for_armed_tracks (bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for Armed Tracks") : _("New Playlist for Armed Tracks"), name,gid,copy)) {
+ if (stamp_new_playlist( copy ? _("Copy Playlist for Armed Tracks") : _("New Playlist for Armed Tracks"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_armed_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists));
--
2.47.3
0002-name-New-Playlist-for-group-after-group.patch (1,830 bytes)
From 3bdd717d92f1aaaeb914bb4d02601776a3d8cca0 Mon Sep 17 00:00:00 2001
From: Colin Fletcher <colin.m.fletcher@googlemail.com>
Date: Sun, 10 May 2026 22:38:26 +0100
Subject: [PATCH 2/2] name 'New Playlist (for group)' after group
Default the playlist name chosen by 'New Playlist (for group)' to be the
group name (followed by an incrementing number if necessary).
---
gtk2_ardour/editor.cc | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 441098ff0e..f2ff9ec6d3 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -3653,9 +3653,10 @@ Editor::stamp_new_playlist (string title, string &name, string &pgroup, bool cop
if (name.length() == 0) {
name = _("Take.1");
- if (_session->playlists()->by_name (name)) {
- name = Playlist::bump_name (name, *_session);
- }
+ }
+
+ if (_session->playlists()->by_name (name)) {
+ name = Playlist::bump_name (name, *_session);
}
Prompter prompter (true);
@@ -3732,7 +3733,13 @@ void
Editor::new_playlists_for_grouped_tracks (RouteUI* rui, bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for this track/group") : _("New Playlist for this track/group"), name, gid, copy)) {
+ std::shared_ptr<RouteGroup> rg = rui->route_group();
+ if (rg)
+ name = rg->name();
+ else
+ name = rui->track()->playlist()->name();
+
+ if (stamp_new_playlist( copy ? _("Copy Playlist for this track/group") : _("New Playlist for this track/group"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_grouped_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists), rui, ARDOUR::Properties::group_select.property_id);
--
2.47.3
|
|
|
This one uses the current playlist name of the track/bus if it's not grouped, which I think is consistent. 0002-name-New-Playlist-for-group-after-group-2.patch (1,860 bytes)
From b02c3bbac4bb93f2ac0d465ba04ffe0462e8341d Mon Sep 17 00:00:00 2001
From: Colin Fletcher <colin.m.fletcher@googlemail.com>
Date: Sun, 10 May 2026 22:38:26 +0100
Subject: [PATCH 2/2] name 'New Playlist (for group)' after group
Default the playlist name chosen by 'New Playlist (for group)' to be the
group name, if any, or the track mane otherwise, followed by an
incrementing number.
---
gtk2_ardour/editor.cc | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 441098ff0e..141763199d 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -3653,9 +3653,10 @@ Editor::stamp_new_playlist (string title, string &name, string &pgroup, bool cop
if (name.length() == 0) {
name = _("Take.1");
- if (_session->playlists()->by_name (name)) {
- name = Playlist::bump_name (name, *_session);
- }
+ }
+
+ if (_session->playlists()->by_name (name)) {
+ name = Playlist::bump_name (name, *_session);
}
Prompter prompter (true);
@@ -3732,7 +3733,13 @@ void
Editor::new_playlists_for_grouped_tracks (RouteUI* rui, bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for this track/group") : _("New Playlist for this track/group"), name, gid, copy)) {
+ std::shared_ptr<RouteGroup> rg = rui->route_group();
+ if (rg)
+ name = rg->name() + ".1";
+ else
+ name = rui->track()->playlist()->name();
+
+ if (stamp_new_playlist( copy ? _("Copy Playlist for this track/group") : _("New Playlist for this track/group"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_grouped_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists), rui, ARDOUR::Properties::group_select.property_id);
--
2.47.3
0001-whitespace-2.patch (3,191 bytes)
From c565a1bc26d27c8034f8500d05b9f077d3ecbb70 Mon Sep 17 00:00:00 2001
From: Colin Fletcher <colin.m.fletcher@googlemail.com>
Date: Sun, 10 May 2026 22:38:38 +0100
Subject: [PATCH 1/2] whitespace
---
gtk2_ardour/editor.cc | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 4934fce118..441098ff0e 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -3651,7 +3651,7 @@ Editor::stamp_new_playlist (string title, string &name, string &pgroup, bool cop
{
pgroup = Playlist::generate_pgroup_id ();
- if (name.length()==0) {
+ if (name.length() == 0) {
name = _("Take.1");
if (_session->playlists()->by_name (name)) {
name = Playlist::bump_name (name, *_session);
@@ -3721,7 +3721,7 @@ void
Editor::new_playlists_for_all_tracks (bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for ALL Tracks") : _("New Playlist for ALL Tracks"), name,gid,copy)) {
+ if (stamp_new_playlist( copy ? _("Copy Playlist for ALL Tracks") : _("New Playlist for ALL Tracks"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_all_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists));
@@ -3732,7 +3732,7 @@ void
Editor::new_playlists_for_grouped_tracks (RouteUI* rui, bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for this track/group") : _("New Playlist for this track/group"), name,gid,copy)) {
+ if (stamp_new_playlist( copy ? _("Copy Playlist for this track/group") : _("New Playlist for this track/group"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_grouped_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists), rui, ARDOUR::Properties::group_select.property_id);
@@ -3743,7 +3743,7 @@ void
Editor::new_playlists_for_selected_tracks (bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for Selected Tracks") : _("New Playlist for Selected Tracks"), name,gid,copy)) {
+ if (stamp_new_playlist( copy ? _("Copy Playlist for Selected Tracks") : _("New Playlist for Selected Tracks"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_selected_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists));
@@ -3754,7 +3754,7 @@ void
Editor::new_playlists_for_armed_tracks (bool copy)
{
string name, gid;
- if (stamp_new_playlist( copy ? _("Copy Playlist for Armed Tracks") : _("New Playlist for Armed Tracks"), name,gid,copy)) {
+ if (stamp_new_playlist( copy ? _("Copy Playlist for Armed Tracks") : _("New Playlist for Armed Tracks"), name, gid, copy)) {
vector<std::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists()->get (playlists);
mapover_armed_routes (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), name, gid, copy, playlists));
--
2.47.3
|
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-05-11 08:30 | colinf | New Issue | |
| 2026-05-11 08:30 | colinf | File Added: 0001-name-New-Playlist-for-group-after-group.patch | |
| 2026-05-11 08:30 | colinf | File Added: 0002-whitespace.patch | |
| 2026-05-11 09:13 | colinf | Note Added: 0030357 | |
| 2026-05-11 09:13 | colinf | File Added: 0001-whitespace.patch | |
| 2026-05-11 09:13 | colinf | File Added: 0002-name-New-Playlist-for-group-after-group.patch | |
| 2026-05-12 12:36 | colinf | Note Added: 0030364 | |
| 2026-05-12 12:36 | colinf | File Added: 0002-name-New-Playlist-for-group-after-group-2.patch | |
| 2026-05-12 12:36 | colinf | File Added: 0001-whitespace-2.patch |