Jump to content


Photo

New Tool (3.1): PhraseMate

phrases zxx

  • Please log in to reply
78 replies to this topic

#51 pat

pat

    Big Daddy Member

  • Normal Members
  • PipPipPipPipPipPipPip
  • 445 posts
  • Gender:Male

Posted 02 September 2016 - 15:48

Yeah, once I understood how output worked, I was able to get some good stuff going with it.

 

In a nutshell, here's the workflow I'm looking for:

 

1. Write patterns

2. Select all patterns and extract to phrases

3. Wriite new patterns using phrases

4. Select all patterns and expand phrases to patterns

 

1-3 are a reality and super quick today. 4 is the missing piece right now.

 

Anyway, the more I use PM, the more I love it, so thanks for all your hard work! Renoise + PM is helping me compose in a way I've dreamed of for a long time.



#52 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 14 September 2016 - 11:33

Just a little teaser - almost done with a bunch of new features for PhraseMate.
 
Property tab: (batch-) apply properties to all phrases in instrument.
Supports all phrase properties, including LPB, number of lines, looping etc.
This is cool, e.g. when you want to double the tempo of all phrases. 
 
props_tab.png?raw=1
 
Preset tab - batch import and export of phrase presets (.xrnz files)
Much easier than having to save/import a single preset at a time...
 
presets_tab.png?raw=1
 
The (MIDI-mappable. keyboard shortcut-able) phrase navigation in the top also have gotten "remove" and "insert" buttons. Perhaps it should have duplicate too?
New phrases are created according to settings specified in the "New" tab. 
 
I'm also going to take a good look at the Zxx implementation. My ideas:
* Allow "any" instrument to have Zxx command added (not just the selected one)
* Optionally: prefer the local effect-column (the one associated with the note-column) 
 
As always, ideas and suggestions are welcome!
  • Djeroek, Fsus4 and Meef Chaloin like this

Tracking with Stuff. API wishlist | Soundcloud


#53 Fsus4

Fsus4

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 150 posts

Posted 14 September 2016 - 21:09

As always, ideas and suggestions are welcome!

 

http://forum.renoise...acros/?p=350563



#54 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 14 September 2016 - 21:50

You would launch the tool with a hotkey combo, a prompt shows up, you enter something and the script will import the data from the textfile with the same filename as something. That way we could build complex sets of data for e.g. chord progressions or whatever.
 
So for example if you wrote "Fsus4" at the prompt, the script would look for a textfile called "Fsus4.txt" (or just "Fsus4" without the .txt extension) and insert whatever is in that file into the pattern editor (at the cursor). 

 

Very cool, I like it. Pretty sure I'd never have thought about such a streamlined option. And indeed, this tool already provides much of the necessary "wiring" (assuming, of course, that you can limit yourself to phrases - the language that this tool speaks). 

 

The way you describe it, it's more or less a question of specifying an "import folder" and then doing some on-the-fly matching against the contents of this folder as you're typing... 

But I would also like to do the same thing for phrases within instruments that are already loaded into Renoise (i.e. not having to save presets to disk first). 


Tracking with Stuff. API wishlist | Soundcloud


#55 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 21 September 2016 - 14:10

Here is a preview of the next PhraseMate, v1.7 

Edit: the stable release is now up at the tool page 
 
It contains the largest set of new features yet, and a number of stability improvements
FEATURE Anchor to selection more refined, now works both vertically and horizontally
FEATURE Continuous paste now able to recreate looped phrases
FEATURE ‘Smart write’ dialog (text-based phrase browser, supports saved .xrnz files)
FEATURE Ability to batch-apply properties to phrases (set or transform values)
FEATURE Import and Export of individual presets and entire preset banks
FEATURE “Insert” and “Remove” phrase buttons + more MIDI mappings
FEATURE Output: include Z00 command to ignore/disable phrase playback
FIXME Write to pattern: “expand columns” was broken in some scenarios
FIXME Continuous paste: last line is skipped
FIXME Auto-assign to keymap do not supports keymappings with gaps
FIXME When applying to selection, always output at the track containing the selection
CORE Refactored code to make more use of classes (xLib,vLib+cLib)
--
 

http://forum.renoise...acros/?p=350563

 
Done! It's called the Smart Write dialog, and can be launched via keyboard shortcut or found in the 'Write' tab
 
smart_write.png?raw=1
 
Basically, it's an auto-completing text dialog which searches through either (a) the instrument phrases or (b ) phrases that are located in the 'export path' (export of phrases is another new feature)
 
It's designed to be completely keyboard driven. In the picture above, I've entered "m", and the dialog responds by showing the two saved entries matching this letter. 
Pressing Return will select the first entry. You can also use the popup to select between all matching entries. 
 
Once selected, pressing return again will apply the phrase, using the settings specified settings in the 'Write' tab
Also, while the dialog is focused, pressing TAB will bring focus to the text input and allow another search.
ESC closes the dialog.

Edited by danoise, 01 May 2017 - 16:33.

  • Djeroek, TheBellows, crazya02 and 3 others like this

Tracking with Stuff. API wishlist | Soundcloud


#56 Akiz

Akiz

    Guruh Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPip
  • 971 posts
  • Gender:Male

Posted 21 September 2016 - 17:23

'C:\Users\MIKEHAM\AppData\Roaming\Renoise\V3.1.0\Scripts\Tools\com.renoise.PhraseMate.xrnx\' failed to execute in one of its menu entry functions.
 
Please contact the author (danoise [bjorn.nesby@gmail.com]) for assistance...
 
main.lua:426: attempt to index global 'phrasemate' (a nil value)
stack traceback:
  main.lua:426: in function 'show'
  main.lua:85: in function <main.lua:84>


#57 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 21 September 2016 - 17:32

@Akiz: Good catch. This should be easy to fix.

Only, I wonder how you made it happen... Did you double-click the xrnx to launch/install it in Renoise?


Tracking with Stuff. API wishlist | Soundcloud


#58 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 21 September 2016 - 21:58

Did some smaller tweaks and released v1.7 (see changelog)

 

A new feature is that you can choose to launch the tool at startup, but without showing the GUI.

This is pretty handy if you like the automatic insertion of Zxx commands, but can't be bothered to see a dialog pop up every time you start Renoise. 

 

Grab it from the tools page


Tracking with Stuff. API wishlist | Soundcloud


#59 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 23 September 2016 - 18:49

Another release, v1.71.

 

As usual, grab it from the tools page (or add it to the tool updater). 
 
Fixed a bug that would cause exports to be saved into an illegal location when export path not set.
Instead of complaining it would happily export to a folder called "⚠ Please select a path!"  :blush:
 
Also, I added a feature to strip the prefixes that can (optionally) be set on export.
Should make presets survive a trip through the whole export/import/etc cycle without getting their names screwed up. 
 
Finally, the keyboard shortcuts and MIDI mappings also had some trouble. Fixed that as well.


Tracking with Stuff. API wishlist | Soundcloud


#60 Fsus4

Fsus4

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 150 posts

Posted 25 September 2016 - 12:57

Excellent work being done here. What a fantastic tool!

 

In particular, the PhraseMate Smart Write update is very... well, smart. ;)  Lots of potential there.

 

To speed things up even further, the following two functions would be lovely:

 

(1) In the "Enter name of phrase field": Allow the auto-complete/search to be optionally checkboxed for becoming hidden and disabled, only allowing for the precise manual text input + Return.

(2) In the "Mode" pull-down menu: Allow for a new option - Insert at pattern editor cursor. Meaning a one shot (1X times) writing at the current editor cursor position in the pattern editor. Would speed up things in the workflow quite a lot.

 

I'll continue to test drive this tool further this next week when I have more time to explore it in depth.


Edited by Fsus4, 25 September 2016 - 13:15.


#61 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 25 September 2016 - 18:28

Hey, thanks. I take it as a nice 'you read my mind' type complement.
Because, like I mentioned, I probably wouldn't have come up with this idea myself.
 

(1) In the "Enter name of phrase field": Allow the auto-complete/search to be optionally checkboxed for becoming hidden and disabled, only allowing for the precise manual text input + Return.

Not sure I get the advantage of having to type the entire name. I mean, you can do that anyway, usually it's just not required?
 

(2) In the "Mode" pull-down menu: Allow for a new option - Insert at pattern editor cursor. Meaning a one shot (1X times) writing at the current editor cursor position in the pattern editor. Would speed up things in the workflow quite a lot.

Yes, absolutely - this was on the TODO list, just didn't make it.
Actually I intended it as a switch, "relative to cursor position" or something like that. But now I can see that it might be better to have it as a separate mode. Because, then it can be accessed with keyboard shortcuts and via the smart-write dialog.

Another way to speed up the workflow would be if the dialog has a checkbox which, when enabled, would let you apply the phrase as soon as you make a match by typing and hitting return.

Tracking with Stuff. API wishlist | Soundcloud


#62 pat

pat

    Big Daddy Member

  • Normal Members
  • PipPipPipPipPipPipPip
  • 445 posts
  • Gender:Male

Posted 03 October 2016 - 06:25

1.7 and 1.7.1 break phrase reading for me.

 

If I select part of a pattern and choose "Create phrase from selection" I get: "main.lua:148: variable 'INPUT_SCOPE' is not declared" and no phrase is created.

 

If I open the settings window and choose "Selection in pattern" and then click "Collect phrases" it shows the error: "./source/PhraseMateUI.lua:658: attempt to call method 'invoke_task' (a nil value)" and successfully creates the phrase.



#63 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 07 October 2016 - 11:25

1.7 and 1.7.1 break phrase reading for me.

 

I will put out a new version over the weekend to fix this. Thanks! 


  • pat and Woodpecking Mantis like this

Tracking with Stuff. API wishlist | Soundcloud


#64 Woodpecking Mantis

Woodpecking Mantis

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 158 posts
  • Gender:Male
  • Location:Montréal, Qc
  • Interests:Plentifull...Renoise, Max/MSP, DSP, Sound design to name related ones...

Posted 22 October 2016 - 22:05

Hi Danoise!

Just wanted to report a script error message that I get.:

 

When I select content in the pattern and select "create phrase from selection" in the context menu to collect the content, I get this following error script message (input scope not declared) on the version 1.71

 

main.lua:148: variable 'INPUT_SCOPE' is not declared
stack traceback:
  [C]: in function '_error'
  [string "local mt = getmetatable(_G)..."]:29: in function <[string "local mt = getmetatable(_G)..."]:24>
  main.lua:148: in function <main.lua:146>

 

Picture: https://postimg.org/image/tpxy5ni0j/

 

thanks for your hard work...

cheers!


  • danoise likes this

#65 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 23 October 2016 - 14:24

I will put out a new version over the weekend to fix this

 

Ehe, yes, caught in a backlog of sorts. But it's not forgotten. 


  • Woodpecking Mantis and xbitz like this

Tracking with Stuff. API wishlist | Soundcloud


#66 xbitz

xbitz

    Member

  • Normal Members
  • PipPip
  • 21 posts

Posted 02 December 2016 - 18:35

khmmm :)



#67 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 03 December 2016 - 22:18

Bugfix release v1.72. Get it from the tool page

FIXME [Read] Fixed error when using custom source/target instrument 
FIXME [Read] When using custom source + same instrument (target), it picked the wrong instrument as target (the next instrument in the list)
FIXME [Read] “Selection in pattern” : when cursor is parked in a different track than the one containing the selection, that track was used as the source
FIXME [Read] Using context menu to collect content accidentally got broken 


  • pat likes this

Tracking with Stuff. API wishlist | Soundcloud


#68 pat

pat

    Big Daddy Member

  • Normal Members
  • PipPipPipPipPipPipPip
  • 445 posts
  • Gender:Male

Posted 04 December 2016 - 06:19

Looking good! Collecting phrases from the pattern editor still seems to have trouble... I tried it once with using the window, with "Replace notes with Zxx" enabled. It collected the phrases, but cleared the pattern editor – no Zxx command. Then when I tried using the "create phrase from selection" context menu item, it collects the phrase but doesn't change the pattern at all.

 

Collecting phrases from the pattern matrix and replacing them with Zxx works great though!



#69 Akiz

Akiz

    Guruh Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPip
  • 971 posts
  • Gender:Male

Posted 04 December 2016 - 09:05

Renoise 3.1
AV Studio Linux 
 

No function works,

The "create phrase from selection" spits this out for example:
 

/home/akiz/.renoise/V3.1.0/Scripts/Tools/com.renoise.PhraseMate.xrnx/' failed to execute in one of its menu entry functions.
 
Please contact the author (danoise [bjorn.nesby@gmail.com]) for assistance...
 
./source/PhraseMate.lua:666: attempt to index local 'self' (a nil value)
stack traceback:
  ./source/PhraseMate.lua:666: in function 'fn'
  ./source/cLib/classes/cLib.lua:41: in function 'invoke_task'
  main.lua:134: in function <main.lua:133>


#70 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 04 December 2016 - 12:18

We're squashing quite a few bugs here!!

v1.73 fixes the following things

FIXME Mappings, menu items not working when app not yet initialized (dialog shown)
FIXME Missing “finalize action” for some scopes (replace with Zxx)
FIXME A few missing guards (GUI-less operation)

  • pat likes this

Tracking with Stuff. API wishlist | Soundcloud


#71 The Good Dr

The Good Dr

    Member

  • Normal Members
  • PipPip
  • 37 posts
  • Gender:Male
  • Location:Brighton, UK

Posted 16 June 2017 - 07:21

I might be being really thick here - but I'd simply love to render a sliced break to a phrase to keep the timing intact at my chosen tempo - then be able to copy the phrase into the main pattern window...

 

Please could someone walk me through the steps? Or, I might just need to man up and need more coffee / sleep.

 

Running Renoise 3.1 - tool installed via dragging into open Renoise session.

 

Thanks!


“Actually, I'm not interested in Zen that much, as a philosophy, nor in joining any movements. I don't pretend to understand it. I just find it comforting. And very similar to jazz. Like jazz, you can't explain it to anyone without losing the experience. It's got to be experienced, because it's feeling, not words.”

#72 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 16 June 2017 - 10:00

Once you have rendered the slice to a phrase (by right clicking a slice marker), it should be as a simple as PhraseMate > Write > Write to track

(or use the available keyboard shortcuts)


Tracking with Stuff. API wishlist | Soundcloud


#73 boonier

boonier

    Advanced Member

  • Normal Members
  • PipPipPip
  • 115 posts

Posted 09 October 2017 - 22:13

Found a bug I think - Setting Loop in Batch-apply or single mode seems to have no effect

 

Thanks



#74 ffx

ffx

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2996 posts
  • Gender:Not Telling
  • Interests:macOS fanboying

Posted 13 November 2017 - 19:43

Hey danoise,

 

currently trying to wrap my brain again around that scaling feature for phrases:  I would like to actually see the "re-scaled" notes directly in the pattern. So I put a single c-4 into the phrase to be able to use the scales. But now I would like to "render" that note patches directly into the front pattern (so I later can deactivate the scale and it still sounds the same)... Is that possible with this tool, and if not, is there already a way to do that?  So destructive renoise scaling to pattern-track. Thanks!

 

EDIT: Could I use "xScale.restrict_to_scale(note_value,scale_idx_or_name,scale_key)" from xLib?


Edited by ffx, 13 November 2017 - 20:39.

MacOS 10.12.6 Retina, Renoise 3.1 64 bit   -   Tuned Shortcuts | Multi-Jump From/To Send | Quick Template | Insert Native DSP Menu (incl. deprecated)


#75 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6474 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 13 November 2017 - 21:42

EDIT: Could I use "xScale.restrict_to_scale(note_value,scale_idx_or_name,scale_key)" from xLib?

 

Yes, that would be it. It's a planned feature *cough* - I'm quite busy these days, wouldn't have time to do it myself. 

But all the fundamentals should be in place...and if you're planning to go ahead with this, I would be happy to help...


  • ffx likes this

Tracking with Stuff. API wishlist | Soundcloud






Also tagged with one or more of these keywords: phrases, zxx