Jump to content


Photo

New Tool (2.7 - 3.1): Set Track Width To Active Columns


  • Please log in to reply
54 replies to this topic

#51 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1863 posts
  • Gender:Not Telling

Posted 15 September 2018 - 12:11

@Ledger,

Raul noticed a bug that I've fixed here.. The sample fx column wasn't taken into account.

I also want to add another checkbox - "include unused patterns". This checkbox would only be displayed when patterns like these are found.

But I have another question.. Currently, "orphan" delay values et c are disregarded when hiding note columns. If a column only has a panning value and no note values, it will currently be hidden. Should that be fixed as well? I imagine it better to 'encourage' the user to clean up such nonsensical data, by not hiding it.

Edited by joule, 15 September 2018 - 12:14.


#52 Ledger

Ledger

    Guruh Motha Fakka Knows More About Renoise Than Taktik

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 3660 posts
  • Gender:Male

Posted 15 September 2018 - 12:40

Ah, yes sounds like I would have missed the sample fx col as I don`t really use it.  Thanks for fixing.

 

The checkbox sounds like a welcome addition.

 

Yes, the hiding orphan values should probably be considered a bug too, as they can still effect previously playing samples.  i.e.

 

C-4

---  32

---  44

 

if the 32 and 44 are volume or pan commands they will effect the C-4, if it is still sounding,  so they are still legitimate.

 

A fix there is welcome too.  Just upload when you are happy with it and I`ll put it up on tools site.

 

Cheers!


Edited by Ledger, 15 September 2018 - 12:42.

--> Lua for newbies <--

My Scripts On Forum

Top Tip!

 

cpu : Xeon 1231 v3, os : Win 7 64bit, audio: Audient iD4
posts as 4tune @ KvR and some other music related sites


#53 Raul (ulneiz)

Raul (ulneiz)

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1602 posts
  • Gender:Male
  • Location:Spain

Posted 15 September 2018 - 13:26

Thanks for improving this tool!

 

I am studying this particular code, how it "reads" each line to detect the data.

 

Maybe this tool is ideal to pose a question. Imagine that you do a little bit  the beast with the 1000 patterns, full of data within the selected track to analyze. It is very likely that the tool takes more than 10 seconds to do the whole sweep. Then, the famous Renoise warning will appear to stop the process of the tool. What would be the best procedure to program, to avoid the limit of  the 10 seconds of time? Imagine that you do 2 equal functions that cover each 500 patterns, and execute them one after the other. Would this work? I am commenting on an extreme case to understand it.

 

I mean, those 10 seconds are a limit for each function?


:excl: Development of my tools: Piano Roll EditorKangarooX120SamRenderPhraseTouch

 

:excl: My API wishlist R3.1 (updated 24 July 2017):

Spoiler

 

:excl: My Renoise 3.1 wishlist (updated 26 September 2017):

Spoiler

#54 4Tey

4Tey

    Big Masta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPip
  • 555 posts
  • Gender:Male

Posted 15 September 2018 - 14:12

It is very likely that the tool takes more than 10 seconds to do the whole sweep. Then, the famous Renoise warning will appear to stop the process of the tool. What would be the best procedure to program, to avoid the limit of  the 10 seconds of time?

I think you'll need to look at yield and coroutines Raul in the file process_slicer.lua -> http://forum.renoise...h-coroutines/  And before you ask, no (luckily) I've never looked at it.  The very very basic synopsis is that it breaks up say a long executing 'for loop/while loop' and yields back every so often to Renoise HQ, just to let Renoise know that the script/tool hasn't stuck in an infinite loop.


  • Ledger likes this

#55 Ledger

Ledger

    Guruh Motha Fakka Knows More About Renoise Than Taktik

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 3660 posts
  • Gender:Male

Posted 15 September 2018 - 14:41

@Raul, the earlier 1.3 version of this tool uses the process slicer.  It is still available to download on the tools page

 

http://www.renoise.c...-active-columns

 

You can see the ProcessSlicer() calls from line 196 onwards in the following copy of main().  There is a require "Process_slicer" on line 1, as the ProcessSlicer() class is in another .lua file in the tool

 

main() from 1.3

Spoiler

 

Process Slicer class

Spoiler

 

So basically:

--include the ProcessSlicer class (in this case we store it in Process_slicer.lua)
require "Process_slicer" 

--Pass your cpu_heavy_function() into a ProcessSlicer constructor and start the slicer with the :start() method on the object you just created.
function sliced_func()
  --constructor
  local slicer = ProcessSlicer(function() cpu_heavy_function() end)
  --call method to start
  slicer:start()
end

packaged up in a function here sliced_func() that can be called elsewhere, or by a menu/ shortcut. 

 

Note: As these functions were placed at the end of the original main.lua, they were defined as global and not local to account for upvalues.


Edited by Ledger, 15 September 2018 - 16:35.

--> Lua for newbies <--

My Scripts On Forum

Top Tip!

 

cpu : Xeon 1231 v3, os : Win 7 64bit, audio: Audient iD4
posts as 4tune @ KvR and some other music related sites