Jump to content


Photo

New Tool (2.8): Cells! 2.0


  • Please log in to reply
84 replies to this topic

#1 mxb

mxb

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 703 posts
  • Gender:Male

Posted 06 February 2012 - 08:09

Posted Image

[changelog:

2.0 Final
- fixed Launchpad controller (thanks danoise)

2.0 Beta 2
- Updated/Tested on Renoise 2.8 beta 8
- Handle closing of song while Cells! is running
- Fixed preferences not initialised before rendering patterns bug
- Updated the controller API and associated documentation (also added to this post)
- Updated Ohm64 support for the new controller API
- Updated Launchpad support for the new controller API (to be tested)

2.0 Beta 1.1
- Quick fix release which fixes a bug making note patterns on Renoise 2.8 beta 7

2.0 Beta 1
- Inital public release of Cells! 2.0



Cells! 2.0 is a complete rewrite of Cells! 0.9. This has been based upon further code experimentation and user feedback. However, due to the improved approach and cleaner code, it has been possible to add many more features.

Screenshot

Posted Image


Demo Video


Thanks to Void Pointer for kindly supplying the samples used in the demo video


Major New Features

Realtime 'Granular' Timestretch

Cells! 2.0 allows realtime timestretch in a 'granular style'. This allows full independant control of both tempo and pitch while still keeping playback syncronised to the beat. Granular timestretch applies to samples which have both a beat sync value and autoseek enabled but beat sync is disabled.


Realtime 'Slice Based' Timestretch

Similar to the 'granular' timestretch, Cells! 2.0 adds support for sliced loops with independant tempo and pitch control. Each slice will be played back at the correct time to maintain the overall tempo of the entire loop. Slice-stretch applies to samples which are sliced. The length of the cell is assigned through the beat-sync value.


Pattern 'Riff' Storage and Playback

Cells! 2.0 allows you to quickly save individual pattern tracks as riffs for use live in Cells!. The riffs are stored in compressed format within the instrument itself, so you can quickly and easily save all samples, sample mappings and riffs self-contained within a single XRNI file. Note that any Renoise instrument is be supported. This means you should be able to send note riffs to external instruments or VSTi's.


Live Jamming Mode

For specific types of samples, Cells! 2.0 allows real-time 'live jamming' playback mode. Play your samples directly with either the mouse or a physical controller for improvising over your mixes to add that extra sparkle. Individual slices from sliced loops and plain one-shot samples can be played in 'live jamming' mode.


Bidirectional Controller Support

Cells! 2.0 now has it's own native controller framework. This allows full bidirectional support for supported hardware controllers. Livid Instruments Ohm64 and Novation Launchpad (beta) are available with the inital release. If you would like further support for any additional controllers, feel free to either send them to me for development or contact me directly to work together and implement support.

[edit: controller API - 'doc/controler-api.txt]
Spoiler



MultiFX

Cells! 2.0 incorporates a simple 'DJ style' effects processor into the main UI. Effects supported are a low-pass filter, beat repeat, delay and phaser. All effects are controlled through simple common amount and rate controls. All time based effects are syncronised to the beat.


Sample Preparation Tools

Cells! 2.0 incorporates simple methods to quickly create and prepare samples for use. Both the sample editor and the sample list box contain a 'Cells! menu' from which the sample can easily assigned to a specific playback mode and length. A 'sample report' feature is also available which allows you to quickly identify how the selected sample will play within Cells! 2.0.

Additionally, Cells! 2.0 allows quick rendering of either entire patterns or specific tracks within patterns from your existing songs. Only the instrument of the first note within the pattern track will be saved. It will automatically assign the correct beat sync values even if the original song is not written at 4 LPB. All rendered samples will be contained within an 'Unsorted Cells! Renders' instrument within the song to easily allow saving of all samples to disk. This menu is present in the pattern editor context menu.

Multiplayer Networking (beta)

Cells! 2.0 has built in support for up to four machines to link together over a lan (via OSC) and keep in sync. Make huge mixes across multiple machines or get some friends around and all play together. Setup network connections on the master and ensure Renoise OSC servers are running on all machines.


Minor improvements

  • Variable channels from 4 to 16.
  • Variable cells per channel from 4 to 16.
  • Variable cell height and width (for touch screen usage).
  • Automatic sample selection option (for waveform view in the sample editor).
  • Safe cueing option to automatically mute cue output if set to the same as the main audio output.
  • Single output mode (splits the audio so master output on one channel and cue output on the other).
  • Slightly tweaked user interface to cater for the additional features.
  • Better audio routing (A/B crossfader or crossfader bypass (M))
  • Various other optimisations (too many to list)


Downloads

The tool can be downloaded from its tools page here.
Download the updated 2.0 beta manual here.



Acknowledgements

There are many people I wish to thank who have assisted or supported Cells! during it's development. In no particular order: taktik, dblue, danoise, void pointer, miron_man, Peter Kirn, Livid Instruments and everyone on #renoise. Sorry if I have missed anyone.

Enjoy!
  • It-Alien, danoise, mr_mark_dollin and 18 others like this
Is a footer a sweater for feet?

#2 fladd

fladd

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

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

Posted 06 February 2012 - 08:31

Are you kidding me? This looks awesome!!!

#3 KMaki

KMaki

    Big Super Masta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPip
  • 672 posts
  • Gender:Male
  • Location:Tampere, Finland
  • Interests:Survival (e.g. breathing). Small scale renoise-tool-coding. The Melvins. Absurdity of it all. Zen / Not-zen. Wifey&Kids.

Posted 06 February 2012 - 08:39

... waaaaaaaaaaa? :eek:
Renoise (2.6->) 2.8 / Mac mini 2010 - 2.66GHz Intel Core 2 Duo - 4 Gb 1067 MHz DDR3 / OS X 10.8 / M-Audio Fast Track USB

#4 mr_mark_dollin

mr_mark_dollin

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2823 posts
  • Gender:Male
  • Location:In the Pattern Matrix.
  • Interests:Quiet Revolutions.

Posted 06 February 2012 - 09:07

What a mountain of work! Respects to mxb. I hope people enjoy this one. :)
Posted Image

#5 Beatslaughter

Beatslaughter

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2293 posts
  • Gender:Male
  • Location:Berlin, Germany
  • Interests:Music, Blu-ray, PC Games

Posted 06 February 2012 - 09:54

Excellent work here!

#6 s-n-s

s-n-s

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2029 posts
  • Gender:Male

Posted 06 February 2012 - 10:18

WOW awesome work ableton4Renoise:)

Subbase - Danish Dark DnB


#7 KURTZ

KURTZ

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1047 posts
  • Gender:Male
  • Location:Poitiers (France)
  • Interests:bunnies

Posted 06 February 2012 - 10:27

mxb for president ! :yeah:
  • Suva likes this

.
KURTZ

 

¤ cpu intel core i5 3.20Ghz | ram 8gb | nvidia geforce gtx 970 | hd1.2 tb | os win10 64bits | midi maudio oxygen 49 master keyboard
¤ kurtz/lapiNIC's french blog
¤ renoise france - communauté francophone des utilisateurs de renoise

 


#8 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

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

Posted 06 February 2012 - 12:59

Respects to mxb


that is some ridiculous feature list :drummer:

#9 CeeRo

CeeRo

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 163 posts
  • Location:Bergen, Norway

Posted 06 February 2012 - 12:59

Sounds awesome, will test this out!

#10 Dr. Drips

Dr. Drips

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1417 posts
  • Gender:Male
  • Location:Groningen, the Netherlands

Posted 06 February 2012 - 15:00

Very impressive!

but I got this when I loaded a new song.
std::logic_error: 'trying to access a nil object of type 'class PatternTrack'. the object is not or no longer available.'
stack traceback:
  [C]: in function 'line'
  .\core/CellsChannel.lua:1102: in function 'Tick'
  .\core/CellsTransport.lua:429: in function 'LineTick'
  .\core/CellsTransport.lua:403: in function <.\core/CellsTransport.lua:386>

I know I'm not supposed to load a new song while cells! is running but I thought I'd mention it anyway.
"It's nice to be important, but it's more important to be nice"

CPU:Intel Core i5 3570K, OS:Windows 7 (64 bit), mem:16 GB, video:NVIDIA GeForce GTX 670 DCII 2GB
CPU:Intel Atom Z3740, OS:Windows 8.1 (32 bit), mem:2 GB

Soundcard: Focusrite Scarlett 2I2

#11 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 06 February 2012 - 15:33

Major New Features


That about says it all...

Tracking with Stuff. API wishlist | Soundcloud


#12 Conner_Bw

Conner_Bw

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 7081 posts
  • Gender:Male
  • Location:Montreal, Quebec, Canada

Posted 06 February 2012 - 16:06

mxb, resident Lua maniac.

Good stuff.
  • ideomux likes this

cpu Lenovo X220, Intel i7-2640M @ 2.80GHz ×4 os Windows 10 / Ubuntu 16.04 LTS
My Homepage » : My Renoise Tools » : Normalize Your Sig » : One million clicks! »


#13 DoubleDeep

DoubleDeep

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 121 posts
  • Gender:Male
  • Location:Norway

Posted 06 February 2012 - 18:40

mind... blown

#14 plasmaniac

plasmaniac

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 195 posts
  • Gender:Male
  • Location:Trier, Germany
  • Interests:drug consumption and satan worship

Posted 06 February 2012 - 21:53

I'm getting

'C:\Documents and Settings\User\Application Data\Renoise\V2.8.0\Scripts\Tools\com.mxb.Cells.xrnx\' failed to execute in one of its menu entry functions.

Please contact the author (Martin Bealby | mxb (mbealby@gmail.com)) for assistance...

.\extras/PatternRendering.lua:103: attempt to index global 'preferences' (a nil value)
stack traceback:
  .\extras/PatternRendering.lua:103: in function 'render_pattern_to_sample'
  .\extras/PatternRendering.lua:188: in function <.\extras/PatternRendering.lua:187>

for each pattern action (Render current pattern[...]) started from the context menu. When I open Cells! -> Preferences first, everything works fine afterwards. Is this intentional?
I get this on XP and Win7 (both 32bit) btw...
-- "on a long enough time line, the survival rate for everyone drops to zero."

#15 vV

vV

    God's or Borg's Chief and Ruler of All Species

  • Moderator
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 16855 posts
  • Gender:Male
  • Location:Netherlands

Posted 06 February 2012 - 22:13

Good, playtime is over... now get back to your FmSynth project, embed some instrument envelope arpeggios :P
  • esaruoho likes this
Vv....


cpu Intel Core i7-4820K @3.70GHz
chipset Intel X79 chipset
mem 32 Gb 2400Mhz
os Win 7 64-bit SP1, DirectX 11
audio ESI ESP1010e - > Driver rev:2.0.6.0
video nVidia Geforce GTX780 - > Driver rev:335.23


Renoise Official Manual

#16 mxb

mxb

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 703 posts
  • Gender:Male

Posted 06 February 2012 - 22:24

I'm getting

'C:\Documents and Settings\User\Application Data\Renoise\V2.8.0\Scripts\Tools\com.mxb.Cells.xrnx\' failed to execute in one of its menu entry functions.

Please contact the author (Martin Bealby | mxb (mbealby@gmail.com)) for assistance...

.\extras/PatternRendering.lua:103: attempt to index global 'preferences' (a nil value)
stack traceback:
  .\extras/PatternRendering.lua:103: in function 'render_pattern_to_sample'
  .\extras/PatternRendering.lua:188: in function <.\extras/PatternRendering.lua:187>

for each pattern action (Render current pattern[...]) started from the context menu. When I open Cells! -> Preferences first, everything works fine afterwards. Is this intentional?
I get this on XP and Win7 (both 32bit) btw...


Thanks for this. Replicated here, it will be fixed for the next version. For now, open preferences before rendering anything to initialise the preferences table.

Good, playtime is over... now get back to your FmSynth project, embed some instrument envelope arpeggios :P


Awwwwwwwww..... you're no fun! :P
Is a footer a sweater for feet?

#17 kazakore

kazakore

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6140 posts
  • Gender:Male

Posted 06 February 2012 - 22:40

All I can say is WOW!! :D

Are we putting bets on when he'll stop being just a Normal Member? ;)
  • Djeroek, eeter, KRIX and 1 other like this

#18 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

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

Posted 07 February 2012 - 01:32

randomly triggering a bunch of cells across a & b and got this:

'C:\Users\plugexpert\AppData\Roaming\Renoise\V2.8.0\Scripts\Tools\com.mxb.Cells.xrnx\main.lua' failed in one of its notifiers.
The notifier will be disabled to prevent further errors.

Please contact the author (Martin Bealby | mxb (mbealby@gmail.com)) for assistance...

std::logic_error: 'ViewBuilder: invalid value for mini slider: '5633'. value must be [5676 - 5692].'
stack traceback:
[C]: ?
[C]: in function '__newindex'
[string "do..."]:22: in function <[string "do..."]:11>
.\core/CellsChannel.lua:1292: in function 'Tick'
.\core/CellsTransport.lua:429: in function 'LineTick'
.\core/CellsTransport.lua:403: in function <.\core/CellsTransport.lua:386>



#19 lazerbeat

lazerbeat

    Member

  • Normal Members
  • PipPip
  • 46 posts

Posted 07 February 2012 - 01:51

Im really keen to see user demo videos of cells if anyone is putting it through its paces!

#20 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

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

Posted 07 February 2012 - 03:11

http://createdigital...clip-launching/

#21 petervh

petervh

    Member

  • Normal Members
  • PipPip
  • 28 posts

Posted 07 February 2012 - 04:42

i'm pretty impressed.

one bug found, right click track, select 'render track as repitched loop'...

'C:\Users\peter\AppData\Roaming\Renoise\V2.8.0\Scripts\Tools\com.mxb.Cells.xrnx\' failed to execute in one of its menu entry functions.

Please contact the author (Martin Bealby | mxb (mbealby@gmail.com)) for assistance...

.\extras/PatternRendering.lua:103: attempt to index global 'preferences' (a nil value)
stack traceback:
  .\extras/PatternRendering.lua:103: in function 'render_pattern_to_sample'
  .\extras/PatternRendering.lua:205: in function <.\extras/PatternRendering.lua:204>


#22 rezidue

rezidue

    Member

  • Normal Members
  • PipPip
  • 58 posts

Posted 07 February 2012 - 06:59

Super sexy.

#23 Beatslaughter

Beatslaughter

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2293 posts
  • Gender:Male
  • Location:Berlin, Germany
  • Interests:Music, Blu-ray, PC Games

Posted 07 February 2012 - 11:23

Just something i have noticed: It would be handy to have GetValueOfSomething() for the methods exposed to the controller implementation class. I could of course do own housekeeping inside the class, but having "get" functions would make writing support for endless encoders for example more readable and would take away a bit from the complexity.
  • Djeroek likes this

#24 mxb

mxb

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 703 posts
  • Gender:Male

Posted 07 February 2012 - 12:58

randomly triggering a bunch of cells across a & b and got this:


Thanks for the bug report, I'll look into it.


Im really keen to see user demo videos of cells if anyone is putting it through its paces!


So am I! Anyone up for making one?


i'm pretty impressed.

one bug found, right click track, select 'render track as repitched loop'...
<snip>


This is the same bug as reported earlier. See post #14 - basically, open the preferences dialog first as a work around for now.


Just something i have noticed: It would be handy to have GetValueOfSomething() for the methods exposed to the controller implementation class. I could of course do own housekeeping inside the class, but having "get" functions would make writing support for endless encoders for example more readable and would take away a bit from the complexity.


Makes sense, I'll look at adding it at some point.

Are you making some controller definitions? If so, excellent!
Is a footer a sweater for feet?

#25 Beatslaughter

Beatslaughter

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2293 posts
  • Gender:Male
  • Location:Berlin, Germany
  • Interests:Music, Blu-ray, PC Games

Posted 07 February 2012 - 19:27

Are you making some controller definitions? If so, excellent!

Not right now yet... i'm working on a low level framework for the Korg microKONTROL, mainly for own applications but it could be used for Cells too or probably also Duplex in some way. Deciphering that MIDI implementation is quite some pain though. :D