Jump to content


Photo

The Api Wishlist Thread


  • Please log in to reply
199 replies to this topic

#176 esaruoho

esaruoho

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2521 posts
  • Gender:Male
  • Location:Kontula, Helsinki, Finland
  • Interests:// Free Energy // Cymatics // Sound visualization // Sustainable energy production // Apple devices // Tesla Motors //

Posted 15 January 2015 - 13:36

The NoteColumn class is structurally the same whether it's in the pattern editor or the phrase editor, so you should be able to see all of the same properties and methods.

attachicon.gifrenoise-phrase-delay-lua.png

Ok, I get it. It's missing from the docs!

 

All I get when I grep  delay_value  is this

 

renoise.song().patterns[].tracks[].lines[].note_columns[].delay_string


| lackluster Website | lackluster on bandcamp | lackluster on facebooklackluster on soundcloud | esaruoho on twitter |

esaruoho@gmail.comesaruoho on reddit | esaruoho on ello | 

| OS X 10.11 El Capitan | Mac Book Pro 2.66 GHz Intel Core 2 Duo / 8GB 1067 MHz DDR3 |

| Latent Impulse Tracker/Scream Tracker 3/Schism Tracker <-> Renoise fanatic |

More API functions, please! ;)

#177 dblue

dblue

    Dodgy Geezer

  • Admins
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 5551 posts
  • Gender:Male
  • Location:Berlin
  • Interests:Code. Music. Graphics.

Posted 15 January 2015 - 13:49

Ok, I get it. It's missing from the docs!

Yeah, fair enough, the docs do not explicitly show all of the properties/methods for individual lines, note columns, etc. found within the phrase, but this is mainly to avoid repeating a bunch of crap that's already been defined in the pattern editor section. It's implied (perhaps not strongly enough) that the structure of a phrase is basically just like a normal pattern track within the pattern editor.
 
--------------------------------------------------------------------------------
-- renoise.InstrumentPhrase
--------------------------------------------------------------------------------

-- General remarks: Phrases do use renoise.PatternLine objects just like the 
-- pattern tracks in Renoise do (...)
Either way, we can probably find a way to make this more obvious.
  • esaruoho likes this

#178 esaruoho

esaruoho

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2521 posts
  • Gender:Male
  • Location:Kontula, Helsinki, Finland
  • Interests:// Free Energy // Cymatics // Sound visualization // Sustainable energy production // Apple devices // Tesla Motors //

Posted 15 January 2015 - 13:58

Yeah, fair enough, the docs do not explicitly show all of the properties/methods for individual lines, note columns, etc. found within the phrase, but this is mainly to avoid repeating a bunch of crap that's already been defined in the pattern editor section. It's implied (perhaps not strongly enough) that the structure of a phrase is basically just like a normal pattern track within the pattern editor.
 

--------------------------------------------------------------------------------
-- renoise.InstrumentPhrase
--------------------------------------------------------------------------------

-- General remarks: Phrases do use renoise.PatternLine objects just like the 
-- pattern tracks in Renoise do (...)
Either way, we can probably find a way to make this more obvious.

 

 

My next question is this: I now have a Phrase shortcut that reads the pattern-editor-currently-selected-note-column and adds +1/-1 delay value  depending on which place the pattern editor note column index is, but am unable to figure out how to find what the phrase editor note column index is. what am i missing?
 


| lackluster Website | lackluster on bandcamp | lackluster on facebooklackluster on soundcloud | esaruoho on twitter |

esaruoho@gmail.comesaruoho on reddit | esaruoho on ello | 

| OS X 10.11 El Capitan | Mac Book Pro 2.66 GHz Intel Core 2 Duo / 8GB 1067 MHz DDR3 |

| Latent Impulse Tracker/Scream Tracker 3/Schism Tracker <-> Renoise fanatic |

More API functions, please! ;)

#179 re.dread

re.dread

    Advanced Member

  • Normal Members
  • PipPipPip
  • 97 posts

Posted 16 February 2015 - 13:58

The "Pitch range" setting seems to be missing for Pitch Envelopes, so sth like:

-- pitch range in semitones
renoise.song().instruments[](.sample_modulation_sets[]).pitch_range
  -> [nil or number]

.. would be nice.



#180 ffx

ffx

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2801 posts
  • Gender:Not Telling
  • Interests:Renoise Sidechain

Posted 08 August 2015 - 00:17

+  renoise.app():get_status()

 

So it would be possible to concat the status message, or check if it's free and so on. Very useful while using multiple tools that each write status bar...



#181 ffx

ffx

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2801 posts
  • Gender:Not Telling
  • Interests:Renoise Sidechain

Posted 10 August 2015 - 11:03

+ renoise.song().*.toXML()

 

So any node starting from "pattern" would be copyable as an XML string, for easy storing into a variable.  The generated XML should exactly match with the node in Renoise song xml, so later it could be just inserted there.   This would also allow various cross-instance (opening two Renoise apps) operations.

 

Or even better, with checks:

 

+ renoise.song().*.copyFromXML()


Edited by Jurek, 10 August 2015 - 11:04.


#182 ffx

ffx

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2801 posts
  • Gender:Not Telling
  • Interests:Renoise Sidechain

Posted 11 August 2015 - 12:24

+ xml = renoise.song().*.toClipboardXML()

so you could generate a clipboard XML programmatically and manipulate it. Also from modified structures via lua. I guess to make such a implemention as easy as possible, the structure of the the copy paste buffer should be hierarchical...?

+ renoise.app().UndoBuffer().fillLastBuffer(xml string)

So you could have much more control over what's is written to copy paste.

+ xml = renoise.app().UndoBuffer().toXML()

The opposite from above, copy current undo state to variable as xml string ( the same as on normal copy operations).

What for?

- You could save old copy states, a states clipboard

- you could 1. Create a undo point , 2. Manipulate the song as you wish. 3. Save this new state into lua string 4. Revert undo, so now you would have future state in the string.... With that you could do easy complex a/b mechanisms in any way .

Edited by Jurek, 11 August 2015 - 12:24.


#183 ffx

ffx

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2801 posts
  • Gender:Not Telling
  • Interests:Renoise Sidechain

Posted 11 August 2015 - 12:38

+ renoise.song().clipboard observable and writable

Return true -> continue paste processing
Return false -> stop further execution. (like event.stopropagation() / stop bubbling)


Edited by Jurek, 12 August 2015 - 12:18.

  • toblerpone likes this

#184 cupcake

cupcake

    Member

  • Normal Members
  • PipPip
  • 51 posts

Posted 21 August 2015 - 03:36

Please add an observer for renoise.song().selection_in_pattern


Edited by cupcake, 21 August 2015 - 03:37.


#185 ffx

ffx

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2801 posts
  • Gender:Not Telling
  • Interests:Renoise Sidechain

Posted 24 August 2015 - 16:28

Please add:
 
+ renoise.tool().trigger_short_cut(path)   To be able to trigger ANY shortcut from the renoise short page...
 

+ renoise.song().selected_line_index_observable, so it triggers on every manual edit pos change....
 

+ renoise.song().current_pdc  /  renoise.song().latency  ,   for scenarios see below 

 
renoise.song().transport:play_one_line_at(pos),   just like if you pressing return for playing only one line.   Without any position scrolling.  And without enabling the play symbol!  And please BEFORE the playing of keyboard or midi input happens!!!  So it plays like it wasn't edited.
 
I would like to enable playing the current line while editing...
 
 
If I try to play the song on a edit position with current functionality, I have to stop it after the delay of one line... this also does not work correctly.
 
So another request:
 
+ Modified renoise.song().transport:start_at(pos)   to be modified that it will play immediately the first line. Even on immediate stop afterwards. 
 
See my problem live here: Attached File  jurek.tools.TunedShortcuts.xrnx   2.67KB   86 downloads

 

EDIT: This version quite works now... Also seems to work with high latencies. But would be much better with these api extensions.

 
- Bind "Pattern Editor:Navigation:Toggle Play On Edit" to a shortcut.
- Press shortcut once to activate.
- Activate edit mode.
 
Now you should be able to listen to the current position on editing position changes.  ....  
 
My problems now are:
- it doesn't work so well, since i have to fire a transport.stop() with a delay.....
 
- Also, sometimes strange velocity values will occur or note-offs!!!??!   (I edited with keyboard!) 
 
- The current edit is now double played. The note you enter will be played on key down + on reply immediately again..
 
 Here is the code:

Spoiler



jhkghj


Edited by Jurek, 24 August 2015 - 20:45.


#186 Ledger

Ledger

    Guruh Motha Fakka Knows More About Renoise Than Taktik

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

Posted 24 October 2015 - 12:01

post-428-0-92523700-1445390573.png

 

get/ set for .selected_instrument_index  in the  *Instr. Automation device (so we could change from Twin 2 to another inst. in the pic above) 

 

The DSP_Parameter assignments to different Plugin_Parameters would be handy in the API too as they are only accessible via xml. preset . Though I guess that may be more difficult as non generic to DSP devices. 


Edited by Ledger, 30 November 2015 - 04:50.

  • ffx and KanetonKiller like this

--> Lua For Beginners <--
--> 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


#187 ffx

ffx

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2801 posts
  • Gender:Not Telling
  • Interests:Renoise Sidechain

Posted 06 August 2016 - 10:15

For Renoise 3.2:

 

 

renoise.song().tracks[].insert_column_at(index)  (index == 0 -> on the very left)

 

So you easily can insert a column to a track, without taking care of nasty manual note data copy action :P

 

 

moving track columns using lua

 

It was added just before 3.1 release, but I cannot find it in the lua api... Moving track column via api. So insert_column_at wouldn't be hard to do...

 

 

1000% speed up of lua api and pattern operations

 

If you start to iterate over many loops, you will quickly realize has slooow the renoise api is. Normally even multiple looping over a whole song should be done in the time of a wink. Even more nowadays, with those power cpus... C'mon guys, why is it so slow? It's also quite slow while using advanced editor... Is it using lua, too, or is the XML song data access so slow? Please consider this...

 

 

HTML-ified Renoise LUA API docs

 

I don't know how you guys find proper information in your plain text api docs... It's well written, no doubt here. But for somebody who doesn't memorize the complete api, it's really hard to check if there is a required functionality!

 

Basically the docs lacks of:

 

- A proper method index, sorted by topic, clickable with fancy link to the section. Uber would be a permanent index on the left or right.

 

- Cross-links!  There is a reference to another function ? Fine, then also link to that section within text.

 

- More references

 

C'mon guys. Not everybody writes novels with Latex in his/her spare time... Can you please use an automatic html-ifer tool for your docs? There are many many for php stuff and c++, maybe it can but used for lua stuff, too?


Edited by ffx, 06 August 2016 - 10:21.


#188 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1346 posts
  • Gender:Not Telling
  • Location:Sweden
  • Interests:music, philosophy, engineering

Posted 28 August 2016 - 10:46

For keeping good track of all alias_pattern_index values in a song, the following seems to be needed:

 

1) Use observables that keep track of the sequences and tracks in a song.

2) Add observables to all alias_pattern_index values of every single patterntrack. This must be updated if tracks or sequences are added/removed.

3) Make your own scheme (probably comparing tables) for determining what alias(es) have been changed and how.

 

Perhaps something simpler could be provided? I'm thinking something similar to the line_notifier, returning a table of what was changed and how.

 

Perhaps: renoise.song().active_aliases_observable -- returning { track_index, pattern_index, alias_pattern_index }



#189 ffx

ffx

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2801 posts
  • Gender:Not Telling
  • Interests:Renoise Sidechain

Posted 29 August 2016 - 19:29

+ renoise.song().tracks[].devices[].external_editor_visible  (observable)

 

or is it observable?

 

+ target instrument of automation device either in active-preset-data or parameters. I would really love to see all parameters in parameter list, even non-automatable, non writable

 

EDIT:

 

 

+ renoise.song().patterns[].tracks[].automation[].reading_disabled [boolean]

or 

+ sng:instruments[].plugin_properties.plugin_device.parameters.reading_disabled [boolean]

 

for temporary disabling feedback (renoise automation/slider -> actual plugin parameter), so while automation recording, the currently written automation point within a line (PLAYMODE_LINEAR/CUBIC) does not feed-back to the plugin again, and again writes strange automation values

 

 

PATCH sng:instruments[].plugin_properties.plugin_device.parameters 

 

Patched in a way, that feed backed / endless looped sending of values is not possible. For example you listen for a parameter, write it to automation, the automation again triggers the plugin, and the plugin triggers again the plugin_device.parameters[x] ...


Edited by ffx, 30 August 2016 - 10:41.


#190 ffx

ffx

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2801 posts
  • Gender:Not Telling
  • Interests:Renoise Sidechain

Posted 03 September 2016 - 10:26

renoise.app():undo_step_record_start()

Set marker to current undo history position as start point for join.

 

renoise.app():undo_step_join_record()

Ability to join multiple undo steps into one step, starting from "record_start". If the result is the same value as before, just delete undo steps.

 

I know that Taktik had good arguments against this (I forgot in detail though :P ), but maybe this approach would work? Lots of tools would profit if you could remove undo steps in the undo history.

 

Examples of benefit:  

 

Custom Wave Form Generator Tool. If you move the slider while using "live update", the undo buffer literally is flooded with every tiny slider movement step. Instead here the code could do the following: On mouse down on slider, one time calling undo_step_record_start(), on release one time calling undo_step_join_record().

 

Fancy color flashing would be possible again, too!

 

Loads of other tools would profit, for example any kind of automation writing, or pattern manipulation.


Edited by ffx, 03 September 2016 - 10:27.


#191 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1346 posts
  • Gender:Not Telling
  • Location:Sweden
  • Interests:music, philosophy, engineering

Posted 23 December 2016 - 10:53

If possible, it would be very nice being able to use renoise objects as keys (the same way you can use tables as keys). Normally this is possible in LUA, but the renoise API is not laid out in a way that allows this. Perhaps it could be fixed?
 
This would simplify some currently advanced logistics immensely. For example, being able to do stuff like:
 
my_table = { }

my_table[renoise.song().tracks[1]] = { my_track_data }

if my_table[renoise.song().tracks[1]] then
 -- do something
end
 
 
From what I gather, it is currently not possible due to:
 
1) Renoise objects lack the appropriate __tostring method.
2) Renoise objects are currently not truly unique and the fetchers of renoise.song() will return data with ever-changing ID:s. They are created when fetched and given a pseudo-uniqueness via API metamethods. Perhaps there is no other way?

I'm mentioning it as something to consider. Maybe I've missed some clever workaround?

Edited by joule, 23 December 2016 - 10:56.


#192 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1346 posts
  • Gender:Not Telling
  • Location:Sweden
  • Interests:music, philosophy, engineering

Posted 28 December 2016 - 11:51

Access to granular selection could be implemented like this. Thanks for considering!

 

renoise.song().selection_in_pattern

 

[end_column] =>  1
[end_line] =>  14
[end_track] =>  2

[end_sub_column_type] => [number]
[start_column] =>  1
[start_line] =>  4
[start_track] =>  2

[start_sub_column_type] => [number]


  • danoise likes this

#193 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6116 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 28 December 2016 - 12:21

If possible, it would be very nice being able to use renoise objects as keys (the same way you can use tables as keys). Normally this is possible in LUA

 

But, in order to use objects as keys, you surely would want them to be unique? Can't really see how the Renoise API should enforce this. 

IMHO, tostring() is not really meant to have practical applications for non-string objects. Definitely useful when debugging (e.g. to print the type of object, and possibly a few of it's values to the console), but otherwise not. 

 

But maybe I got the idea wrong - you're saying that this is something you have done elsewhere? 


Tracking with Stuff. API wishlist | Soundcloud


#194 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1346 posts
  • Gender:Not Telling
  • Location:Sweden
  • Interests:music, philosophy, engineering

Posted 28 December 2016 - 12:43

But maybe I got the idea wrong - you're saying that this is something you have done elsewhere? 

 

You can do it with your own luabind objects, since they maintain their uniqueness. It's kind of a nifty feature of lua tables ("anything as key").

 

This is a useless example that actually works now. Would be quite nice if Renoise objects maintained their uniqueness in a similar way. It's quite possible that it's impossible with luabind classes provided from C (I don't know the deepest workings of it all), but I wanted to mention it just in case.

global_table = global_table or { }

class 'MyClass'

function MyClass:__init(something)
  self._something = something
  global_table[self] = self -- self key will be the lua ID, I think.
end

(No more traversing your global table-record with "if rawequal" et c)

 

In fact, if Renoise objects provided just something unique and persistent (anything), this could be used as key to simplify a lot of things.


Edited by joule, 28 December 2016 - 12:47.


#195 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1346 posts
  • Gender:Not Telling
  • Location:Sweden
  • Interests:music, philosophy, engineering

Posted 13 January 2017 - 15:14

The ViewBuilder could get just a little bit of love imo. Some details missing, to make it more consistent with the native GUI.

 

1) A possibility to determine what value an element snaps to when double clicking it. (In the native GUI, this differs depending on the DSP parameter, for example). I think it applies to the following classes:

 

vb:rotary { default_value = 0.5 }

vb:slider { default_value = 1.0 }

vb:minislider { default_value = 0.3 }

 

2) A slider/minislider where 0 is being in its center (typically, like panning sliders). This occurs in the native GUI, but is not available in renoise.ViewBuilder()

 

3) Textfields with invisible background (as in the clickable DSP parameters). I'd really like this one, just because it looks nice :)

 

EDIT: Can be done by using valuefield instead - use tonumber/tostring properties and it can easily act as a nicer textfield.

 

4) Snapback for slider is also missing in the viewbuilder. Not terribly important, maybe.

 

EDIT: 5) A vertical mode for vb:switch, as seen in the sample modulations sets.

 

6) Text and bitmap capabilities of vb:checkbox - no more usage of toggle buttons having an incorrect/arbitrary color for its active state.

 

These are the non-complex stuff I've found natively so far, that would be nice to have.


Edited by joule, 01 February 2017 - 09:55.

  • danoise likes this

#196 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1346 posts
  • Gender:Not Telling
  • Location:Sweden
  • Interests:music, philosophy, engineering

Posted 17 January 2017 - 20:12

I'm not sure if already requested or if there's some trick that I've missed:

 

vb:bitmap { repeat = true } -- or possibly "repeat", "repeat-y" and "repeat-x"

 

Currently, using many big images becomes quite sluggish, but a repeat property could optimize performance when you want to fill a bigger area with an image (like an opacity image).

 

I'm using rows and columns to restrict the boundaries of "background images", and they have to be made very big to ensure that they will always fill the area. (can of course be optimized a bit by dynamically loading different images depending on what's needed).

 

The background in this example shows a case where this becomes an obvious performance bottleneck: https://dl.dropboxus...812754/gui1.gif


  • Djeroek likes this

#197 Ledger

Ledger

    Guruh Motha Fakka Knows More About Renoise Than Taktik

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

Posted 17 January 2017 - 20:42


The background in this example shows a case where this becomes an obvious performance bottleneck: https://dl.dropboxus...812754/gui1.gif

 

Is that what I think it is? :panic:


  • Djeroek and joule like this

--> Lua For Beginners <--
--> 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


#198 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1346 posts
  • Gender:Not Telling
  • Location:Sweden
  • Interests:music, philosophy, engineering

Posted 30 January 2017 - 09:54

If I'm not mistaken, the only way to change the pattern index of a sequence is via renoise.song().selected_pattern_index ? (or have I missed something?)

 

This means that you have to change "cursor position" to set up a sequence list, which seems like bad design.

 

I think that renoise.song().sequencer.pattern_sequence should be read/write. Alternatively, add a method - renoise.song().sequencer:set_pattern(sequence_index, pattern_index)

 

PS. I wouldn't mind if .selected_pattern_index was changed to read-only. It's the kind of subtle consistency that forces us into the right mindset :)



#199 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1346 posts
  • Gender:Not Telling
  • Location:Sweden
  • Interests:music, philosophy, engineering

Posted 30 January 2017 - 11:25

I think that the width property of viewbuilder objects would benefit from being refined when it comes to % values. The % calculation seems a bit crude, not always ensuring that the total width is kept (rounding errors when summing an array). If you do dynamic gui stuff with %-widths, it becomes jittery with a lot of nervous pixels on width changes :)

 

Suggestion:

 

1) Make % values support fractions.

2) Use a rounding principle (% to pixels) that keeps the sum of all widths constant.

 

Some inspiration that might be useful for the maths: http://stackoverflow.com/a/792490 .. (not sure it's working 100%)



#200 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1346 posts
  • Gender:Not Telling
  • Location:Sweden
  • Interests:music, philosophy, engineering

Posted 17 February 2017 - 11:31

(Possibly a dupl request?)

 

* Resizable window.

Would be absolutely great for doing some next-gen stuff ;) I am guessing it would require some kind of buffering that would make it a tiny bit complicated to implement? LUA-wise, it wouldn't have to be anything special - e g just pad with empty area if the user abuses a resizable dialog by not designing it properly with % widths/heights in the "top layer" et c.

local my_dialog = renoise.app():show_resizable_dialog("Title", vb_content, my_keyhandler_func)

* "Remembering" window positions.

Could basically be implemented and handled with just something like:

local my_dialog = renoise.app():show_custom_dialog("Title", vb_content, my_keyhandler_func)

-- relative to the screen or to the Renoise window?
my_dialog.x = 100
my_dialog.y = 200