Jump to content


Photo

New Tool (3.0,3.1): xStream

live coding sandbox

  • Please log in to reply
101 replies to this topic

#26 fladd

fladd

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1179 posts
  • Gender:Male
  • Location:The Netherlands

Posted 03 October 2015 - 19:20

3.1 spoiler, nice :)

 

I really hope not!

I see none of the things that are actually great about Redux! No note column names! No sliders for Volume, Pan, Delay!

 

But I do see that there is no accordion in the sampler anymore, which indeed means that it is not 3.0.

 

I am officially worried again!!! I thought all the Redux stuff will be in Renoise 3.1?

 

Maybe this is some of the earlier alpha builds?



#27 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 03 October 2015 - 19:24

Can this tool go through a selection of notes and sort these over time, from lowest note to highest note or the other way around?

 

Yes, with some limitations. For example, I hacked into ledger's 'Reorder Notes' tool to restrict drum notes to specific columns.
The trouble with that sorting algorithm (in an xStream context) is that it requires two passes - one to collect data about the notes and another pass to do the actual re-ordering. Sorting by two dimensions (pitch/time) can quickly become complex.

 

But - sometimes, simple is good too. I could, for example, easily see a model which would pick out specific notes and place them in specific columns. 

It would certainly meet my own requirements for the modification I made to Ledgers tool (which was to clean up drum tracks). 
 

I have to completely disable and re-enable xstream, before I can see any external made changes.

Yes, we need a 'reload' button for these sort of situations. Good that you worked it out anyway.
 

I wanna do some note splitting, I the way that for each num_notes on one col, it will be splitted to num_tracks/cols. E.g. having a mono 16th note track, settings 1,2, it should split the notes alternating.  I want to do this for multiple vsti instancing, individual note panning.

Ahh, I see :)  Couldn't really figure it out by just looking.


I thought all the Redux stuff will be in Renoise 3.1?

 

It's pretty much the headline of that release: all of Redux will certainly belong to Renoise. 

But maybe in a different way than you imagined.


  • pat and redpanda13 like this

Tracking with Stuff. API wishlist | Soundcloud


#28 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 October 2015 - 19:53

Thx danoise, one more question:

 

How can I access renoise.song().selected_note_column_index  from inside xstream?



#29 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 03 October 2015 - 20:05

Thx danoise, one more question:

 

How can I access renoise.song().selected_note_column_index  from inside xstream?

 

The quick and dirty way is to replace 'renoise.song()' with 'rns' - it's just a shortcut, you can access any song property from there. 

And since you are using it offline, it should be safe enough to access it like this. 

 

(for a more advanced approach suitable for realtime output, check out the 'Args-Polling' example model) 


Tracking with Stuff. API wishlist | Soundcloud


#30 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 October 2015 - 20:29

Thanks, updated code above.



#31 fladd

fladd

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1179 posts
  • Gender:Male
  • Location:The Netherlands

Posted 06 October 2015 - 16:20

I really hope not!

I see none of the things that are actually great about Redux! No note column names! No sliders for Volume, Pan, Delay!

 

But I do see that there is no accordion in the sampler anymore, which indeed means that it is not 3.0.

 

I am officially worried again!!! I thought all the Redux stuff will be in Renoise 3.1?

 

Maybe this is some of the earlier alpha builds?

Any "official" thoughts on that?



#32 Legendary Taunt

Legendary Taunt

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 123 posts
  • Gender:Male
  • Location:Austin
  • Interests:My kid.
    Music, Movies, and people.
    And my cat. He's an asshole at times.

Posted 07 October 2015 - 02:39

Regarding that video above: If someone reaches the one hour point, they are rewarded with something reminiscent of actual music. 

 

Also, it could be turned into a drinking game:

If you take a hit every time I say "the thing is...", you will be blasted quite quickly  :smashed:

 

 

GAME ON!!!



#33 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 07 October 2015 - 20:33

I usually don't tease with pre-announcements, but I could not sit on this: a major update is on its way.

I've basically explored the possibilities of Fsus4's vision - having a grand "switchboard" for quick access to any of the xStream models.

screenshot-1.04c.png

 

Edit: another screenshot - even more compact interface

screenshot-1.04d.png

 

Or how about this one...

screenshot-1.04e.png

You can think of that grid on the right side as 'customizable shortcuts', which will allow quick access to any model+preset combination with a single keystroke,

Workflow-wise, this is much better than having to (1) select a model, (2) find the right preset, and then (3) trigger the shortcut to "apply to pattern" 

 

Right now, it's using persistent storage - you can create models, presets and preset banks, and they will all load into the grid on startup. 

But further down the line, xStream could support sessions - in which a particular grid would load up for a particular song. 

 

Oh, and the grid ties really fine into live performances as well. Especially true, since the next version will have proper "scheduling" - switching is no longer done on a line-to-line basis, but can happen over the duration of a beat,bar,block or pattern. 

 

Expect the next update to arrive in a couple of days

Edited by danoise, 07 October 2015 - 23:23.

  • taktik, Ledger, ffx and 8 others like this

Tracking with Stuff. API wishlist | Soundcloud


#34 fladd

fladd

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1179 posts
  • Gender:Male
  • Location:The Netherlands

Posted 08 October 2015 - 16:28

Any "official" thoughts on that?

 

Apparently not :-(



#35 tL One

tL One

    Member

  • Normal Members
  • PipPip
  • 51 posts
  • Gender:Male
  • Location:Earth
  • Interests:Nature & Space.

Posted 09 October 2015 - 16:15

 

I usually don't tease with pre-announcements, but I could not sit on this: a major update is on its way.

I've basically explored the possibilities of Fsus4's vision - having a grand "switchboard" for quick access to any of the xStream models.

screenshot-1.04c.png

 

Edit: another screenshot - even more compact interface

screenshot-1.04d.png

 

Or how about this one...

screenshot-1.04e.png

You can think of that grid on the right side as 'customizable shortcuts', which will allow quick access to any model+preset combination with a single keystroke,

Workflow-wise, this is much better than having to (1) select a model, (2) find the right preset, and then (3) trigger the shortcut to "apply to pattern" 

 

Right now, it's using persistent storage - you can create models, presets and preset banks, and they will all load into the grid on startup. 

But further down the line, xStream could support sessions - in which a particular grid would load up for a particular song. 

 

Oh, and the grid ties really fine into live performances as well. Especially true, since the next version will have proper "scheduling" - switching is no longer done on a line-to-line basis, but can happen over the duration of a beat,bar,block or pattern. 

 

Expect the next update to arrive in a couple of days

 

 

Wooow man, I can see why you couldn't wait sharing.. :D



#36 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 09 October 2015 - 17:00

Everybody loves grids!! 

 

But yeah, have been burning the midnight old oil for a few days now. Hopefully, the redesign will be worth it  :)


Tracking with Stuff. API wishlist | Soundcloud


#37 Fsus4

Fsus4

    Advanced Member

  • Normal Members
  • PipPipPip
  • 119 posts

Posted 10 October 2015 - 23:31

 

I usually don't tease with pre-announcements, but I could not sit on this: a major update is on its way.

 

Lovely. Can't wait to run this in 3.1. If there was an Oscar award for best script, xStream would deserve it. A nice bonus effect is that people will use this tool and get sucked into Lua scripting as well. A nice and safe way to start experimenting. One idea here is to build another tool, based on xStream but rewritten to serve as an introduction to Renoise scripting, where each machine served as a mini tutorial.

 

Keep up the great work danoise, this tool is really a game changer. :walkman:



#38 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 17 October 2015 - 14:10

A new version of xStream is out (supports Renoise 3.1). Get it here

 

As promised, the interface has been completely rewritten. It's much more flexible now - won't (necessarily) take up your entire screen ^_^  

 

screenshot-1.35-expanded.png

#1: Expanded mode

 

screenshot-1.35-compact.png

#2: Compact mode - still useful :-)

 

 

New features

  • Flexible GUI - collapse or expand any part of the interface - layout is stored/recalled across sessions.
  • Scheduling - switch models or presets on a line/beat/bar/block or pattern basis.
  • Favorites - a MIDI/key-mappable grid that contain shortcuts to any model/preset combination.
  • External preset banks - automatically saved and available on next xStream session - can be favorited too.
  • Cleaned up models, added a few new ones (Args-Control, Granular).
  • Dialog keyhandler - will handle certain keystrokes, pass the rest along to Renoise
    [Tab] = toggle expanded UI 
    [Esc] = toggle Renoise edit mode 
    [Space] = (re-)start streaming + playback 
    ['] = toggle mute 

 

A bit more about favorites

Each shortcut you add to the grid can be set to a particular "launch mode"

 

AUTOMATIC - the default choice, will automatically decide output method:

1. streaming output (when playing).
2. apply to selection (when stopped, selection exists).
3. apply to track (when stopped, no selection).

 

STREAMING - allow you to specify the scheduling method line/beat/bar/block or pattern

 

SELECTION - write output to the selected lines in the pattern-track,

allow you to specify whether output is relative to top of pattern or the selection itself.

 

TRACK - write output to entire pattern-track.

 

Issues (updated)

  • Deleting patterns while running the tool should no longer throw errors
  • In general, there should be less chance of user code to throw errors (increased number of protected calls)
  • Scheduling models should be working, but presets might miss a few lines to begin with. Also, scheduling near a boundary might cause the scheduling to miss - this is simply not done yet, but will be addressed in the next version. 

  • ffx, crazya02, kopias and 1 other like this

Tracking with Stuff. API wishlist | Soundcloud


#39 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 17 October 2015 - 14:47

Neat!



#40 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 17 October 2015 - 15:15

Forgot to add that all files are OVERWRITTEN when you install a Renoise tool. 

So, if you've been cooking some models of your own, please take a backup of the "/models" folder before proceeding. 

(a planned feature is the ability to import and export all customizations you've made...)

 

Also, arguments are specified a little differently in this version - a lot more straightforward, actually. See "Args-Controls" for an example of this. 

 

Finally, I added a Granular model - it's just using just pattern commands, but can really warp a sample beyond recognition ^_^  


Tracking with Stuff. API wishlist | Soundcloud


#41 Fsus4

Fsus4

    Advanced Member

  • Normal Members
  • PipPipPip
  • 119 posts

Posted 17 October 2015 - 21:05

WOW :dribble:

 

The minimized custom sized grid with preset buttons is totally awesome!! :drummer:

 

Well done danoise, the updated xStream just spiced up the 3.1 release even further. The midi routing stuff in 3.1 blew me away, so much fun there with lots of plugins. But xStream filled the cool hightech spot for this release, thank you. :walkman:



#42 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 18 October 2015 - 13:29

New model: Exponential Delay (v1.31)
The famous bouncing ball and many other effects can be achieved with this one. 

 

How to use: download and install xStream and then, from the model popup, select "Exponential Delay"

The model takes input from the the first note column and writes output to the following columns (see image)

 

model_expdelay.png
 
+ Discovered a small bug which ignores the state of checkboxes when recalling presets - will fix.

HOWTO: download the file, paste into the xStream "models" folder and re/start tool


Edited by danoise, 24 June 2016 - 12:19.

  • Ledger, Djeroek, xrxs and 3 others like this

Tracking with Stuff. API wishlist | Soundcloud


#43 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6661 posts
  • Gender:Male
  • Location:Borneo

Posted 18 October 2015 - 16:08

This tool is pretty awesome  :drummer: , can't code for shit myself, but the models present can generate useful results for sure, hope you guys create a lot of them :) .


  • danoise likes this

#44 xrxs

xrxs

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 178 posts

Posted 19 October 2015 - 08:20

New model: Exponential Delay (v1.31)
The famous bouncing ball and many other effects can be achieved with this one. 

 

 
+ Discovered a small bug which ignores the state of checkboxes when recalling presets - will fix.

HOWTO: download the file, paste into the xStream "models" folder and re/start tool

 

Finally!


  • martyfmelb likes this

#45 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 19 October 2015 - 23:40

Version 1.35 has arrived. As usual, download from the tools page.

 

Just a small maintenance update, mostly fixing a couple of bugs I found and adding the exponential delay model. 

Also switched to a new graphic on the tools page  ^_^


  • ghostwerk likes this

Tracking with Stuff. API wishlist | Soundcloud


#46 ghostwerk

ghostwerk

    Member

  • Normal Members
  • PipPip
  • 47 posts
  • Gender:Male

Posted 19 October 2015 - 23:57

Version 1.35 has arrived

 

champion.



#47 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 24 October 2015 - 18:10

Another update, 1.40. Grab it from the tools page.

 

The focus this time has been on making xStream more friendly as a development environment.

In particular, not having to fire up another text editor (scripting console) in order to tweak/add arguments - this can all be done inline now. 

Also, a supporting class, xObservable, makes the task of figuring out which parameters you can bind to (and what their ranges are) a no-brainer. 

 

All in all, this means that there is less "domain specific stuff" to learn - no need to understand some arbitrary syntax that I have invented to describe arguments, or to have the Renoise API documentation around to learn which observables you can bind to.  

 

Full list of changes: 

+ inline editing, creation of arguments (no need to open .lua file)
+ 'wizard' style creation/import of models (e.g. paste model as string)
+ reordering of presets and arguments
+ ability to name presets (default is no name, shown as "Preset #x")
+ callback: check the 'output_mode' (streaming,track,selection)
+ callback: ability to set argument values (updates controls too)
+ using HSL color space for highlights (looks more Renoise native)
+ various small UI tweaks, improved icon set
+ detect longstrings and block comments before saving a model
+ renamed argument displays (please update models accordingly)
  boolean --> checkbox
  string --> textfield

Tracking with Stuff. API wishlist | Soundcloud


#48 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 25 October 2015 - 17:45

Another quick update, 1.41. Download from the tool page

 

Seems I overlooked a few special cases when using the new argument editing features from 1.40

And overall, when the logic in a callback is flawed, it will simply use the existing pattern data (wonder why I didn't do this to begin with?)  

 

Also, there is a wonderful new model to play with - Chord Memory.

This is the first model to make use of the new "settable arguments", so it will require xStream 1.40 or newer.


  • ffx and redpanda13 like this

Tracking with Stuff. API wishlist | Soundcloud


#49 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 27 October 2015 - 18:27

Feature request: Possibility to write to multiple tracks.



#50 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6661 posts
  • Gender:Male
  • Location:Borneo

Posted 28 October 2015 - 14:14

Got this with the latest version I guess, updated through renoise auto-update system;

 

 

'C:\Users\pluge\AppData\Roaming\Renoise\V3.1.0\Scripts\Tools\com.renoise.xStream.xrnx\main.lua' failed in one of its notifiers.

The notifier will be disabled to prevent further errors.
 
Please contact the author (danoise [bjorn.nesby@gmail.com]) for assistance...
 
std::logic_error: 'invalid sequence_pos index '21'. valid values are (1 to 8).'
stack traceback:
  [C]: in function 'pattern'
  .\source/xLib/xSongPos.lua:141: in function 'get_pattern_num_lines'
  .\source/xLib/xSongPos.lua:339: in function 'increase_by_lines'
  .\source/xLib/xStreamPos.lua:141: in function 'set_pos'
  .\source/xLib/xStreamPos.lua:209: in function 'track_pos'
  .\source/xStream.lua:1469: in function 'on_idle'
  .\source/xStream.lua:246: in function <.\source/xStream.lua:245>

 

I had run the tool in a previous song session, trying out the new chord memory model, tweaking the gui while playing back a pattern. After playing I closed the tool and started a new empty song, also have loaded different songfiles and suddenly this error. (windows 10, 32 bit renoise)







Also tagged with one or more of these keywords: live coding, sandbox