New Tool (3.1): Transporter

A cheap transport bar to pimp your Renoise.

Menu - Main Menu:Tools:Transporter

Keybind - Global:View:Show/Hide Transporter

EDIT: Updates in thread below.

7006 transporter.png

7007 joule.no0b.Transporter.xrnx

Tested in 2.8.2!!

This is great joule… I’ve been wanting this idea for so long :slight_smile:

You’re a hero man.

edit: made a tool image:

2h87o20.png

feel free to use it.

Awesome :smiley: Thanks.

I’ll sort out some bugs before uploading anyplace else, so please report anything found.

Known issues:

  • Does not update song length when number of lines are changed in a pattern (don’t wanna observe all those). Will add some sort of slow timer that occasionally refreshes total number of lines to catch such changes.

  • Transporting somewhere while playing seems to only skip by patterns - should be lines. Worked before but dunno what happened now.

  • Should operate on playback pos, not edit pos ? Edit pos seems nicest.

Additional ideas (all optional in GUI):

  • Cheap “scrubber” slider (forward only, and optional). Move a slider to increase BPM, and when released it will snap back to original BPM. Might not be possible with slider, but only with xypad. Edit: xypad hooked up to BPM and a realtime pitchshifter (if free one exist) would be pretty cool. No GUI element suitable.

  • Song markers of various kind - comments, “bookmarks”, play from bookmark on click. Some image handling needed.

  • Generate some kind of small “intensity/energy” image below the transporter, based upon number of non-empty slots at any position. Fixing this.

  • Skipping thru song should reset audio inbetween. I think it’s possible and that I saw some tool killing audio (?). Edit: transport:panic(). Will see if it works smooth enough. Done.

I added a representation of the pattern sequence and a FFW button. Let me know what you think. Of course you can hide/show it.

Sequence buttons are clickable. The button lightness represents how many patterntracks that are non-empty.

7010 trans2.png

7009 joule.no0b.Transporter.xrnx

Best tool of the year bro… i am really, I mean REALLY thankful for this.

Thanks, although there are lots of other tools that are “better” and cooler :slight_smile: I agree that it’s nifty being able to navigate thru song more easily.

I’ll add a tiny bit of coloring to the sequence buttons to make the visual cue more effective - adding blue value for each track that is dropped and red values for each track that is introduced (+some extra intelligence to make coloring more relevant).

Also, custom window width would be nice.

maybe pattern numbers below the blocks?

'/home/meef/.renoise/V3.1.0/Scripts/Tools/joule.no0b.Transporter.xrnx/' failed to execute in one of its menu entry functions.
Please contact the author (joule) for assistance...
./gui.lua:153: attempt to index global 'rns' (a nil value)
stack traceback:
 ./gui.lua:153: in function 'show_transporter'
 main.lua:31: in function <main.lua:22>

I get this when I try to launch the tool.

Usefull a lot. May be putting position song marks, using colours could be Great !!!

Thanks.

@Meef Chaloin,

I think this update should fix the problem. (I’m guessing that depending on your HW, an idle notifier loop could slip by and get ran before rns was set)

7013 joule.no0b.Transporter.xrnx

Usefull a lot. May be putting position song marks, using colours could be Great !!!

Thanks.

Yes, I might try doing that. My thinking:

  • Small bookmark symbols above the slider.

  • Rather a keyboard shortcut for adding bookmarks than clutter the interface with an ‘Add bookmark’ button.

  • If you press the bookmark for more than 2 seconds, a popup shows where you can enter a comment or delete the bookmark.

  • Comment is also shown as tooltip popup when hovering bookmark.

Bookmarks should be tied to the unique sequence/line so I’ll have to make sure it handles updates in the pattern sequence correctly. I hope and believe that’s possible.

@Meef Chaloin,

I think this update should fix the problem. (I’m guessing that depending on your HW, an idle notifier loop could slip by and get ran before rns was set)

attachicon.gifjoule.no0b.Transporter.xrnx

Unfortunately, the same message still appears.

  • If you press the bookmark for more than 2 seconds, a popup shows where you can enter a comment or delete the bookmark.

Just FYI -Keyboard shortcuts for tools are invoked only when pressed, not when released. I’ve made something sort-of work for the Noodletrap tool, but that approach will only function for as long as the tool dialog has focus - and I guess you want to use traditional shortcuts, working in the pattern editor and elsewhere?
So don’t waste your time trying to figure this one out. Better to have it as a separate shortcut :wink:

I’m guessing that depending on your HW, an idle notifier loop could slip by

I haven’t looked in detail, but generally speaking you want to initialize the tool following the new_document observable. This should ensure that the renoise.song is available.

Just FYI -Keyboard shortcuts for tools are invoked only when pressed, not when released. I’ve made something sort-of work for the Noodletrap tool, but that approach will only function for as long as the tool dialog has focus - and I guess you want to use traditional shortcuts, working in the pattern editor and elsewhere?
So don’t waste your time trying to figure this one out. Better to have it as a separate shortcut :wink:

The idea was to press mousebutton (on bookmark image) for two seconds to edit the bookmark. That should be possible with some timer checking on release.

I realized it’s even better and possible to use a modifier + mouseclick to bring up the edit mode. Given that the keyhandler will recognize a modifier being held while clicking the window (which I suppose it can).

I haven’t looked in detail, but generally speaking you want to initialize the tool following the new_document observable. This should ensure that the renoise.song is available.

I haven’t got the latest feedback from Meef Chaloin yet, but I believe the problem was that I had some menu definitions with invokes before rns was set. My guess is that, even if these are not being run upon initialization, they are dealt with similarly as loadstring generating bytecode (?). I put the menu stuff at the bottom and hope the problem is solved.

It seems some people have problems and bugs that other haven’t. I’ve even noticed different tool behavior on different machines myself, and I don’t know why. The only far fetched reason I can think of is that you might have tools installed that’s messing with the _G table (?).

Ah, “long-press” on an image will work for sure, yes.

It seems some people have problems and bugs that other haven’t. I’ve even noticed different tool behavior on different machines myself, and I don’t know why. The only far fetched reason I can think of is that you might have tools installed that’s messing with the _G table (?).

I don’t think so - each tool exist in it’s own sandbox. It’s more likely to come down to the various ways a document can be instantiated. A few ways I can think of: loading a new song, when the program first starts (with out without a document to load). Temporarily there might not be a document -renoise.song() - available.

So this gets a little tricky when you’re using a shortcut (rns) - you have to assign it at the right moment -app_new_document_observable.

Is this tool “finished” already Joule?

I haven’t touched it in a while. Let me know if you have any feature suggestions!

Well, it’s not on the tools page… so many people don’t know it exist :wink:

it would be cool te have this thing natively, next to the pattern sequencer.

It’s too horizontal!

(But tbh, imagine the bloat Renoise would face if people, for instance, could place widgets all over the place. The semi-puritan approach that the dev team has to user experience is right on point imo.)