Old 08-22-2019, 03:54 PM   #41
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

No need for Python or programming skills to use most scripts (including this one).

A song is made out of a top-level folder track named "Number. The Title" (eg. "04. Sonate in C minor"). Use the "reset" button if modifying song tracks or switching projects while the script is open so that the new songs appear in the list (or just close/reopen it).

I've attached an example of a basic project structure. A project can be structured many different ways depending on its requirements but, at the core–as far as song switcher is concerned, one numbered top-level folder track = one song.
Attached Files
File Type: rpp Song switcher - Basic track structure example.RPP (16.9 KB, 552 views)

Last edited by cfillion; 08-23-2019 at 04:59 PM.
cfillion is offline   Reply With Quote
Old 08-23-2019, 02:17 PM   #42
gazpoz
Human being with feelings
 
Join Date: Aug 2019
Posts: 3
Default

Thanx, that made a big difference. I was stuck on the actual filenames/directories rather than the feature of "Folder" in Reaper :-|
Can you please help me understand how to make the font in the menu larger?

Also, I was sure I got each song played from the menu to stop when finished playing the region (each song) but now it continue...Yes the track after is muted so not a major problem but again, I think I had it stoped at some time during my tests....
gazpoz is offline   Reply With Quote
Old 09-13-2019, 05:12 AM   #43
Pink
Human being with feelings
 
Join Date: Sep 2019
Posts: 1
Default

Just what i was looking for so i downloaded and added to my Reaper, but i dont see any way to open, edit or use it, neither any web interface.

When browse ReaPack i see Song Switcher installed, but no other sign of it to be seen. I have latest version Reaper



Pink
Pink is offline   Reply With Quote
Old 09-17-2019, 01:09 PM   #44
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Song switcher can be found in the Action List. Its web interface uses on REAPER's built-in web server which can be enabled in Preferences > Control/OSC/web.

cfillion is offline   Reply With Quote
Old 10-23-2019, 07:54 AM   #45
CH PRO
Human being with feelings
 
Join Date: Oct 2019
Posts: 1
Default HELP ME!!!

I CANNOT OPERATE THE SONG SELECTOR FOR LIVE USE. AS I DO NOT DRIVE ENGLISH, I HANDLE WITH THE GOOGLE TRANSLATOR, AND I CANNOT UNDERSTAND THE STRUCTURE OF THE SONG FOLDERS TO WORK, CAN YOU HELP ME?
CH PRO is offline   Reply With Quote
Old 11-08-2019, 05:07 AM   #46
RipperBB
Human being with feelings
 
Join Date: Mar 2016
Posts: 9
Default

Edit: Shouldn't be in the developer section. Sorry

Last edited by RipperBB; 11-11-2019 at 02:20 AM.
RipperBB is offline   Reply With Quote
Old 01-07-2020, 05:35 PM   #47
bigb6611
Human being with feelings
 
Join Date: Jun 2010
Posts: 7
Default

Thanks for this - great piece of work, and really really useful!
bigb6611 is offline   Reply With Quote
Old 01-08-2020, 10:39 PM   #48
kmfrazz
Human being with feelings
 
Join Date: Apr 2014
Posts: 15
Default

This is great, thank you. My band is just starting to use backing tracks and I was able to load your script. However, my remote doesn't look like yours and it doesn't have ability to switch songs from it. I used the song_switcher.html but it looks basically like a generic transport controller.

Also, in your demo shots, how did you get the title of song to be displayed with large font? I apologize if these are basic questions, just getting into this portion of Reaper's capabilities.

Thank you so much.
Kevin
kmfrazz is offline   Reply With Quote
Old 01-09-2020, 03:13 AM   #49
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Quote:
Originally Posted by kmfrazz View Post
This is great, thank you. My band is just starting to use backing tracks and I was able to load your script. However, my remote doesn't look like yours and it doesn't have ability to switch songs from it. I used the song_switcher.html but it looks basically like a generic transport controller.
Make sure you have song_switcher.html in your browser URL (unless you have it selected as "Default interface" in Preferences > Control/OSC/web).

For example: http://127.0.0.1:8080/song_switcher.html

Quote:
Originally Posted by kmfrazz View Post
Also, in your demo shots, how did you get the title of song to be displayed with large font? I apologize if these are basic questions, just getting into this portion of Reaper's capabilities.
Resize the script's window down. Once it's too small to display the full song list, it will enter the mode with the big title and prev/next buttons.
cfillion is offline   Reply With Quote
Old 01-09-2020, 02:27 PM   #50
kmfrazz
Human being with feelings
 
Join Date: Apr 2014
Posts: 15
Default

Got it on both, thank you so much for your efforts!
Kevin
kmfrazz is offline   Reply With Quote
Old 01-10-2020, 10:09 AM   #51
kmfrazz
Human being with feelings
 
Join Date: Apr 2014
Posts: 15
Default

Man, I hate to bug you again...
I can't seem to find a way to delete songs from the list once they are in there...

Thanks again,
Kevin
kmfrazz is offline   Reply With Quote
Old 01-10-2020, 10:14 AM   #52
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Either delete the folder track or rename it so it doesn't have a song number. You can edit hidden tracks from REAPER's Track Manager in the View menu. Then right click in song switcher > Reset data to rebuild the song list.
cfillion is offline   Reply With Quote
Old 01-10-2020, 12:01 PM   #53
kmfrazz
Human being with feelings
 
Join Date: Apr 2014
Posts: 15
Default

Quote:
Originally Posted by cfillion View Post
Either delete the folder track or rename it so it doesn't have a song number. You can edit hidden tracks from REAPER's Track Manager in the View menu. Then right click in song switcher > Reset data to rebuild the song list.
Thank you sir.
KF
kmfrazz is offline   Reply With Quote
Old 01-22-2020, 04:55 AM   #54
SebyMusic
Human being with feelings
 
Join Date: Apr 2018
Posts: 211
Default Integration with ReaperWRB2

Salut (du Québec)
Still i'm gonna write in english just so most of the people will get it.
I use this webremote app
https://reaperblog.net/2020/01/reaperwrb-2-2-2-update/
Do you think it could be possible to incorporate somehow your web interface with that WR2 interface too?

Other question:
Is it possible to see in the web interface the list of the songs?

Other question:
Is it possible to create Setlist of let's say 10 songs.
Instead of having 100 songs in the reaper project.
Or maybe there's a better way to make a project smaller and faster.

tks
Seby
SebyMusic is offline   Reply With Quote
Old 01-23-2020, 08:21 PM   #55
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Quote:
Originally Posted by SebyMusic View Post
Do you think it could be possible to incorporate somehow your web interface with that WR2 interface too?
Song switcher's actions (reset data/switch to next/previous/queued song) should work from ReaperWRB. Copy/paste their command ID from the Action List to add them.

Quote:
Originally Posted by SebyMusic View Post
Is it possible to see in the web interface the list of the songs?
The web interface does not have a song list. However it allows switching to any song by typing its number or part of its name.

Quote:
Originally Posted by SebyMusic View Post
Is it possible to create Setlist of let's say 10 songs.
Instead of having 100 songs in the reaper project.
Or maybe there's a better way to make a project smaller and faster.
Run the "Reset data" action after switching project or project tabs to rebuild the song list.
cfillion is offline   Reply With Quote
Old 02-24-2020, 11:33 PM   #56
MauMan
Human being with feelings
 
Join Date: Feb 2020
Posts: 3
Default Autoplay

First off let me preface this by saying thank you for your awesome work. Song switcher worked great at our previous gig. Our setup is 80 or so songs ready to go with tracks when our keyboard player can attend gigs and pre-recorded tracks when he cannot within the song switcher folder format. These are all routed to sub tracks so that they can be muted as needed. With each song we have midi programmed to sequence our lights via timecode as well as switching presets on Kempers, keyboards etc. with midi commands.

My question, is there a way to have each track start automatically playing when selected and then have them pause by an action, or have a button ready in the web interface that can send a command to trigger multiple midi commands at once? I'm looking for an redundancy option if we were to make a mistake and have to stop the click track so that we can trigger our lights and instruments into a neutral position.

The way I have it setup now is that the drummer has to stop the track, press play again to have the beginning of each song play that triggers all the midi commands with an audible cue on his click track so he can pause it again before the song starts. So I'm looking for a way to turn those three actions into one.

Any help would be greatly appreciated.
MauMan is offline   Reply With Quote
Old 03-05-2020, 02:33 AM   #57
n_Drew
Human being with feelings
 
Join Date: Nov 2019
Posts: 6
Default

Is there any possibilities to switch between songs in different project tabs?
I have different bpm for each song and using some midi notes - because of that i can't put all songs in one project tab

Last edited by n_Drew; 03-05-2020 at 03:21 AM.
n_Drew is offline   Reply With Quote
Old 03-05-2020, 07:12 AM   #58
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

AFAIK, BPM can be switched in the Master track.

-Michael
mschnell is offline   Reply With Quote
Old 03-05-2020, 09:19 AM   #59
n_Drew
Human being with feelings
 
Join Date: Nov 2019
Posts: 6
Default

Quote:
Originally Posted by mschnell View Post
AFAIK, BPM can be switched in the Master track.

-Michael
Yes, but in that case i need to put song 2 after song 1 end, right?
And if i switch to song 2 i'll start from 0:00.000 point - not at start song 2 point
n_Drew is offline   Reply With Quote
Old 03-05-2020, 05:52 PM   #60
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Right click in Song switcher's window and enable "onswitch > Seek" to have it move the cursor to the song's start point when switching to it.

The song's start point is the position of the earliest item (media, midi or note item) found in any of the song's tracks.
cfillion is offline   Reply With Quote
Old 03-06-2020, 07:13 AM   #61
n_Drew
Human being with feelings
 
Join Date: Nov 2019
Posts: 6
Default

Quote:
Originally Posted by cfillion View Post
Right click in Song switcher's window and enable "onswitch > Seek" to have it move the cursor to the song's start point when switching to it.

The song's start point is the position of the earliest item (media, midi or note item) found in any of the song's tracks.
Thanks! This works.
In future it will be great to have opportuniny to switch between songs in different project tabs
n_Drew is offline   Reply With Quote
Old 03-09-2020, 02:46 PM   #62
n_Drew
Human being with feelings
 
Join Date: Nov 2019
Posts: 6
Default

UPD:
Previous post is not 100% suitable for me, because i'm looking how to combine different project tabs
n_Drew is offline   Reply With Quote
Old 03-09-2020, 11:37 PM   #63
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by n_Drew View Post
i'm looking how to combine different project tabs
I am not sure if that in fact is a decent way for "Live Song Switching". It might provide a lot of unwanted implications.

"Live Subprojxcts" (not yet available in Reaper" would be a perfect organization method for such multi-track entities.

An option for Song Switcher to mute/unmute sets of tracks (similar to SWS LiveConfigs) plus providing setuo switching (e.g. BPM) additionally to jumping in the time line might be a nice idea.
-Michael
mschnell is offline   Reply With Quote
Old 04-07-2020, 12:32 PM   #64
josoal
Human being with feelings
 
Join Date: Jan 2014
Location: Spain
Posts: 19
Default

This is a great add for live performances!!!

An improvement would be to control with midi the selection of the next cue song in the list (the one that blinks). You need it to change playback order on the fly. It can be done with the arrows (up and down), but if the window does not have the focus the arrows do not work in the playlist. Midi control would solve this.

Thank for your great work.

(sorry for my english)
josoal is offline   Reply With Quote
Old 04-17-2020, 08:17 PM   #65
WarrenG
Human being with feelings
 
WarrenG's Avatar
 
Join Date: Jan 2020
Location: In the studio at my desk
Posts: 360
Default

Quote:
Originally Posted by mschnell View Post
An option for Song Switcher to mute/unmute sets of tracks (similar to SWS LiveConfigs) plus providing setuo switching (e.g. BPM) additionally to jumping in the time line might be a nice idea.
-Michael
If I understand you correctly this would be a nice option, as I would like to have the option to practice Drums or Guitar to various songs. But go back to standard mode to mute all tracks.

Thank you Cfillion for your awesome work on this project.
WarrenG is offline   Reply With Quote
Old 04-19-2020, 12:43 AM   #66
WarrenG
Human being with feelings
 
WarrenG's Avatar
 
Join Date: Jan 2020
Location: In the studio at my desk
Posts: 360
Default

Duh!

Please forgive me.
I had not configured it right.
I now have 70 plus songs setup and it works perfect.
Now if the operator can just pull his head out long enough to figure it all out, it will be just Grand.

Again Sorry (Remember, It is be nice to NOOB's week)
Great script

Thanks
W
WarrenG is offline   Reply With Quote
Old 07-24-2020, 03:46 AM   #67
josoal
Human being with feelings
 
Join Date: Jan 2014
Location: Spain
Posts: 19
Default

How can I control the arrow keys by midi to cue the next song?
Thank you.
josoal is offline   Reply With Quote
Old 07-24-2020, 01:21 PM   #68
NucleoxMusic
Human being with feelings
 
NucleoxMusic's Avatar
 
Join Date: Feb 2020
Posts: 16
Default

dude, this is amazing. This will be a big help for me to live studio recording. Thanks a lot for this.
NucleoxMusic is offline   Reply With Quote
Old 04-11-2021, 03:05 AM   #69
pyrannial
Human being with feelings
 
Join Date: Jun 2020
Posts: 66
Default

This seems like an interesting tool.

I am trying to set it up to use a rotary encoder or buttons with "cfillion_Song switcher - Switch song by MIDI CC.lua" and I am using ReaLearn to program the controller. However I am having trouble setting it up.

Am I right in thinking that if you sent on CC 100, say, that values 0-127 would correspond with a different song being selected?

How would this be set up, if I wasn't using ReaLearn, how does the action know where the MIDI is coming from and what to expect?

Thanks

(for completeness, I am asking a similar question in the ReaLearn thread in case it is more to do with that: https://forum.cockos.com/showpost.ph...postcount=1155)
pyrannial is offline   Reply With Quote
Old 06-27-2021, 11:24 AM   #70
Tycho
Human being with feelings
 
Tycho's Avatar
 
Join Date: Jan 2011
Location: San Francisco
Posts: 461
Default

Thank you so much for this script cfillion, it's really well thought out and efficient. I've implemented it in my live set, using it in parallel with SWS Snapshots and it's working well.

The only thing I find missing, and this may be outside of the intended scope, is the ability to have shared resources between songs. As an example, In roughly half the songs in my set there is bass guitar being played live and for the most part that patch is the same for every song. I may automate more drive or compression depending on the song but overall it's the same plugins. For the other half of the songs it's a synth bass played on a VSTi like Monark. In these instances I want to be able to mute the electric bass channel to free up resources for the synth bass channel and vice versa.

With song switcher this seems to require an instance of the bass channel plugins for every single song, meaning many more plugins are living in memory and the set takes longer to open -- which is a big issue in the case of a mid-set crash. Another issue is patch management: let's say I want to make a change to the bass patch, I have to do this for 30 or so plugin instances instead of just one. Currently with SWS Snapshots I just share those channels between songs, using the same bass guitar channel for any song that needs it instead of having multiple copies, one for each song. I have all available songs (about 60) in the project so that I can access any song at any time during a set, so as you can imagine, that would be a lot of plugins living in memory.

so basically I use song switcher to navigate the set as the "Script: cfillion_Song switcher - Switch to next song.lua" action is so useful the drag and drop setlist is perfect. then I use SWS Snapshots to do the channel switching, muting and unmuting groups of tracks per song using snapshots. But SWS Snapshots are really a pain to work with as the are listening to all tracks, unlike Song Switcher which ignores tracks outside of the numbered song folders. So with snapshots if I delete a track or add a new one, I have to update every single snapshot in the project.

One way this might be accomplished could be to have Song Switcher listen to track groups, this way different songs could share tracks as several groups can contain the same track.

just a thought but the script is working great as is. thanks for this! is there any way we can support development?

thanks

Last edited by Tycho; 06-27-2021 at 11:30 AM.
Tycho is offline   Reply With Quote
Old 06-28-2021, 01:56 PM   #71
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Quote:
Originally Posted by Tycho View Post
The only thing I find missing, and this may be outside of the intended scope, is the ability to have shared resources between songs. As an example, In roughly half the songs in my set there is bass guitar being played live and for the most part that patch is the same for every song. I may automate more drive or compression depending on the song but overall it's the same plugins. For the other half of the songs it's a synth bass played on a VSTi like Monark. In these instances I want to be able to mute the electric bass channel to free up resources for the synth bass channel and vice versa.
Shared resources can live on tracks outside of the song folders, using routing from/to a track inside of the song folders.

However this uses more CPU as they would always be active. If each songs are built at a different time in the project, a workaround would be to also automate bypass on the shared FXs. Otherwise, it should be possible to make Song Switcher able to mute shared tracks depending on whether they are used or not in the current song when switching.

Quote:
Originally Posted by Tycho View Post
just a thought but the script is working great as is. thanks for this! is there any way we can support development?

thanks
Sure, either via GitHub sponsors or a donation on reapack.com.
cfillion is offline   Reply With Quote
Old 06-28-2021, 04:45 PM   #72
Tycho
Human being with feelings
 
Tycho's Avatar
 
Join Date: Jan 2011
Location: San Francisco
Posts: 461
Default

yeah that's the thing, I need them to be inactive to save resources. will continue using in conjunction with snapshots. thanks!
Tycho is offline   Reply With Quote
Old 08-09-2021, 04:51 PM   #73
tglanfield
Human being with feelings
 
Join Date: Nov 2020
Posts: 11
Default CPU usage in Song Switcher windows

Thank you very much for this plugin - I've found it immensely useful. I'm using a modified version and this may have been fixed in later versions. If so then I apologise.

I'm noticing that when the Song Switcher window is open I'm seeing a large increase in my network traffic and the CPU usage of the irq servicing my network card. I'm displaying this window on a remote X server and this might not be a problem on a local display. This window generally sits there doing very little so I'm assuming the update frequency is far to high or something similar. Minimising the window instantly lowers the traffic and CPU usage. Have you seen this of have any thoughts on how to alleviate it?

Kind regards,
Terry.
tglanfield is offline   Reply With Quote
Old 08-10-2021, 10:47 AM   #74
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Quote:
Originally Posted by tglanfield View Post
I'm displaying this window on a remote X server and this might not be a problem on a local display. This window generally sits there doing very little so I'm assuming the update frequency is far to high or something similar. Minimising the window instantly lowers the traffic and CPU usage. Have you seen this of have any thoughts on how to alleviate it?
Script UIs refresh at ~30Hz. I don't think I can do much on that front.

If the X server's increased network traffic is a problem, maybe using Song Switcher's HTTP web interface while the script's window is minimized could help?
cfillion is offline   Reply With Quote
Old 08-10-2021, 04:02 PM   #75
tglanfield
Human being with feelings
 
Join Date: Nov 2020
Posts: 11
Default

Quote:
Originally Posted by cfillion View Post
Script UIs refresh at ~30Hz. I don't think I can do much on that front.
I know very little about the graphics in reaper but if that window is being redrawn completely at 30Hz then that's a lot of network traffic to a remote X-server. Is loop() being called at 30Hz? Detecting if anything has changed and only redrawing then would make a huge difference in that case.

I'm heading down the web route anyway one day soon but thank you for the suggestion.
tglanfield is offline   Reply With Quote
Old 08-12-2021, 02:47 PM   #76
tglanfield
Human being with feelings
 
Join Date: Nov 2020
Posts: 11
Default

Quote:
Originally Posted by tglanfield View Post
I know very little about the graphics in reaper but if that window is being redrawn completely at 30Hz then that's a lot of network traffic to a remote X-server. Is loop() being called at 30Hz? Detecting if anything has changed and only redrawing then would make a huge difference in that case.

I'm heading down the web route anyway one day soon but thank you for the suggestion.
Just FYI, a little more analysis reveals that this isn't a problem with your script but a more general problem with remote X-servers and reaper. For instance, enabling the display of the master track generates way more traffic than this script.
tglanfield is offline   Reply With Quote
Old 08-12-2021, 10:12 PM   #77
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Is this really different with other GUI enabled programs ?

This might be worth discussing in the "Linux" subforum.

-Michael
mschnell is offline   Reply With Quote
Old 10-01-2021, 04:35 PM   #78
scottm80
Human being with feelings
 
Join Date: Oct 2013
Posts: 3
Default

Thanks for this, it's AWESOME!. My band runs 4-5 songs together using tracks, then stops to let the singer talk, so I'm trying to figure out how to play songs together without stopping. I've used the 'switch to next song at the end, then transport: play in a marker. It goes to the next song but doesn't play?
THANKS for any help.
scottm80 is offline   Reply With Quote
Old 10-02-2021, 07:10 AM   #79
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Quote:
Originally Posted by scottm80 View Post
I've used the 'switch to next song at the end, then transport: play in a marker. It goes to the next song but doesn't play?
If the project was playing when the switch action is run, playback won't stop unless Song Switcher's 'onswitch' option is configured to do so. It's the button to the right and below the song title and it can be set to any combination of stop/seek/scroll.

If you're switching songs while playback is stopped and want it to start, create a custom action combining both the switch action and "Transport: Play".
cfillion is offline   Reply With Quote
Old 10-02-2021, 06:55 PM   #80
scottm80
Human being with feelings
 
Join Date: Oct 2013
Posts: 3
Default

I think? I did that? I have onswitch set to stop, then at the end of the song I have the following in a marker: !_RS1f1c5f5406d0a36f4b780fd6ab7b54a8006b9e69 1007
It goes to the next song but doesn't start. I tried putting !1007 at the beginning of the song too, that didn't help.
Thanks for your help!
scottm80 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 05:27 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.