What's the easiest way to export Sequence/Text out of a song?


(Sparky) #1

What’s the easiest way to export a list of song sequence/pattern numbers and any notes/comments that have been made against them?

I’d like to export and cut/paste this kind of info into Word and start writing some lyrics. :slight_smile:


(Raul (ulneiz)) #2

You can build a tool with the API available. I think there is everything necessary with the instructions of the API and LUA to dump all these values in a text file (TXT format), sorting it by accumulated lines. You can probably do it with a single shooting function. I could even have several options according to the data that you want to dump.

The TXT format is not the Word format, but it is plain text that you can quickly copy and paste into a Word or even an Excel.

One way to do this is to associate the line of the text with the index of the sequence. Thus, in each line (sequence) you can have the classified information (index of pattern, name of the pattern, name of the section if it exists.) …these are strings in LUA.

Besides you can do the same with a list of the name of the tracks, a list with the name of instruments. It would even be possible to save 3 listings separately, in 3 text files, inside a folder with the name of the song.

They are only ideas…


(Sparky) #3

Thanks @Raul. I think I’ll give LUA a go. I got some LUA books sitting on my shelf which I haven’t looked at yet so may as well get them out and give it a try. Might be a good lunchtime project. :slight_smile: I’ve already imported XRNS into my own song format (using TinyXML etc) but writing a C++ app is probably overkill for this. Text is fine. :slight_smile:


(Raul (ulneiz)) #4

You would basically need 3 things:

  1. Know how to build the base of some type of tool (be it a drop-down menu or a window with buttons), to be able to trigger functions. Enables the integrated Scripting Terminal & Editor and use it. Consult the documentation of Renoise.ViewBuilder.API.lua file to create windows or use the renoise.tool (): add_menu_entry (menu_entry_definition_table) inside the Renoise.ScriptingTool.API.lua file to integrate it into a menu.
  2. Obtain the necessary data and convert them into strings. LUA has several capabilities to manipulate the strings. You can extract all the data using the Renoise.Song.API.lua instructions. You can use print(), oprint(), rprint() to check things.
  3. Know how to create a folder (better that it is inside your tool), put text files in it (TXT format, or XML format), rename them and put the previous strings inside each line. Although the Renoise API has some ways of operating directly based on LUA, there are many things in the LUA language that are not in the API and that you can use equally.

Also, if you know a bit of programming, you will know that you can not create a text file inside a folder called “my_folder” if this folder does not exist. You will have to create it first, or verify that it exists. Details like that.


(joule) #5

If you use the Renoise Document API, it’s very simple to save custom table-like data with its provided XML export method.


(Raul (ulneiz)) #6

I suppose that what he needs is a clean file, with only the necessary text, without adding keys or strange signs.

Maybe lines like this?

the data of…

sequence index, pattern index, pattern name, section name (if exist)… (LINE 1)
sequence index, pattern index, pattern name, section name (if exist)… (LINE 2)
etc…

track index, track name, note columns name… (LINE 1)
track index, track name, note columns name… (LINE 2)

Put all this inside a text file and after select all, copy and paste inside Word file.


(joule) #7

I think he’s very well familiar with the XML format though? It’s up to him if he wants to use it or not. Maybe he thinks it’s enough just printing the data into the console and copy/paste from there.

PS. Sidenote: he certainly doesn’t need to create a GUI and learn Viewbuilder to achieve what he’s asking for. That’s some very weird advice…


(Raul (ulneiz)) #8

This will be valid if you want to add several options in a small interface. Nor is it so complicated to add a window with buttons and checkboxes and all that. It is much more complicated to create the function itself.

If he only want a single access function from the drop-down menu, a small window GUI is obviously not necessary. It will depend on where he want to go.