Jump to content


Photo

New tool (3.0, 3.1): Noodletrap

phrase recording keyboard

  • Please log in to reply
84 replies to this topic

#1 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 01 October 2014 - 23:47

Noodletrap - realtime recording of PC/MIDI Keyboard (notes only)

 

noodletrap-splash.png

 

Looks familiar? I modelled it after the existing sample recording dialog in Renoise  B)
What you see in the middle are current phrases in the instrument: 

Green = Not selected 
Yellow = Selected
Red = The "virtual" phrase (where the next recording will appear)

 

Main features

+ Record notes from MIDI/PC keyboard at any LPB (lines-per-beat) value 

+ Recordings are stored as phrases in the instrument

+ Bypass edit mode: your keyboard noodlings can be recorded even when playback is paused

+ Many recording options, ability to split recordings into "takes", etc.

+ MIDI assignable interface

 

Keyboard shortcuts (when the dialog is focused)

[Left/Right] Push the arrow keys to select the current phrase
[Delete] Remove the current phrase from the instrument
[Enter] When not recording: prepare for input ("record-arm"). While recording: finalize recording ("stop")
[Esc] While recording: cancel recording, else toggle edit mode
[Tab] Will take you back and forth between the phrase editor and your "current working space"
(it will try to memorize whatever middle frame you have currently selected, and restore that)
 

Requirements

Renoise 3.0.1 has an important bugfix in the lua coroutine.

This version is required for Noodletrap to work properly

 

Download

http://www.renoise.com/tools/noodletrap


  • Denim, jiku, Djeroek and 12 others like this

Tracking with Stuff. API wishlist | Soundcloud


#2 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 02 October 2014 - 14:43

Noodletrap 0.5

 

Uhm, posted a version with some debug crap enabled.  Sorry, should work now


Tracking with Stuff. API wishlist | Soundcloud


#3 Skolskoly

Skolskoly

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 282 posts
  • Gender:Not Telling
  • Location:probably not behind you.
  • Interests:Music, Video games, computers, coding

Posted 02 October 2014 - 17:30

looks super cool. I've gotta try this when I get home!



#4 urbster1

urbster1

    Member

  • Normal Members
  • PipPip
  • 35 posts
  • Gender:Male
  • Location:Indianapolis
  • Interests:hard and soft synths

Posted 02 October 2014 - 23:35

So you're saying I can record MIDI notes without recording other MIDI parameters? I have been looking for a way to do this....



#5 Skolskoly

Skolskoly

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 282 posts
  • Gender:Not Telling
  • Location:probably not behind you.
  • Interests:Music, Video games, computers, coding

Posted 03 October 2014 - 04:04

I exceeded the legal phrase size (512) and got this error. The tool's stop button locks up and I can't record anything without restarting renoise.

 

.\classes/NTrap.lua:956: attempt to compare nil with number
stack traceback:
  .\classes/NTrap.lua:956: in function '_get_virtual_phrase'
  .\classes/NTrap.lua:1198: in function '_process_recording'
  .\classes/NTrap.lua:201: in function 'stop_recording'
  .\classes/NTrapUI.lua:817: in function <.\classes/NTrapUI.lua:808>

 

I work with a high bpm so this is partially my own doing that it got to 512 so quickly. But a bug is a bug. :P

 

edit: possible feature request to remedy this: could virtual phrases be split in multiple 512 line chunks, so that we can record indefinitely? (at least for however many notes are on the keyboard ofc)


Edited by Skolskoly, 03 October 2014 - 04:11.


#6 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 722 posts
  • Gender:Male
  • Location:London

Posted 03 October 2014 - 16:58

Nice! This is super slick, having lots of fun with it!

 

I've never managed to work out how to get a tool to record notes played on qwerty keyboard with all the timings intact so will definitely be hacking this.

Also bonus points for a tool that doesn't require duplex, qwerty keyboard is all the controller I need :badteethslayer:



#7 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

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

Posted 03 October 2014 - 22:22

Introducing Noodletrap

 

Nice!  B)



#8 afta8

afta8

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 722 posts
  • Gender:Male
  • Location:London

Posted 04 October 2014 - 09:40

I get this error when starting Renoise or opening a new song.

std::runtime_error: 'notifier feedback loop detected. do not change values you are listening to within your notifiers.'
stack traceback:
  [C]: ?
  [C]: in function '__newindex'
  [string "do..."]:22: in function <[string "do..."]:11>
  ./classes/NTrapUI.lua:1463: in function '_apply_instrument_from_option'
  ./classes/NTrapUI.lua:903: in function 'update'
  ./classes/NTrapUI.lua:425: in function <./classes/NTrapUI.lua:422>
  [C]: ?
  [C]: in function '__newindex'
  [string "do..."]:22: in function <[string "do..."]:11>
  ./classes/NTrapUI.lua:897: in function 'update'
  ./classes/NTrap.lua:395: in function '_on_idle'
  main.lua:84: in function <main.lua:77>

Edited by afta8, 04 October 2014 - 09:42.


#9 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 04 October 2014 - 12:40

Thanks for the feedback / bug reports!

 

The tool's stop button locks up and I can't record anything without restarting renoise.

 

Ouch. Well, whenever a tool locks up you can still restart that particular tool without restarting Renoise. The tool browser has a "disable/enable"  tool button that you can use. Should be a bit less painful :-)

 

possible feature request to remedy this: could virtual phrases be split in multiple 512 line chunks, so that we can record indefinitely? (at least for however many notes are on the keyboard ofc)

 

Even better - a split option that we could control while recording, creating phrases on the fly? 

Because, splitting automatically could be quite hard to manage (creating a bunch of recordings with 512 lines?).

 

Edit: all of the ideas below have been implemented since v0.9

 

Instead, I have been thinking about how it could be an option, much like the existing options:

* Manual split (hit some button/shortcut)

* Automatically split after #number_of_lines

* Automatically split when reaching end of pattern

 

Last option is perhaps especially interesting, as it would allow you to accompany your song and have each phrase aligned to each pattern's beginning. 

 

I should add too, that currently the tool is able to sync to the beginning and end of a pattern. It does however rely on idle notifiers, polling the playback progress ~10 times per second. And sometimes, it overshoots a little, depending on the song tempo and several other factors.

However, this is relatively easy to fix but simply something I have not yet gotten around to (on the TODO list). 

 

 

I've never managed to work out how to get a tool to record notes played on qwerty keyboard with all the timings intact so will definitely be hacking this.

Also bonus points for a tool that doesn't require duplex, qwerty keyboard is all the controller I need :badteethslayer:

 

Well, you should be aware that the PC keyboard input in this tool is in fact a huge hackaround. Currently, we can't detect released keys, so what I'm doing is to listen for a pressed key and then "mimic" a pressed key by  extending it's life for as long as the tool is receiving a stream of repeated keys. This is good enough for note-on events, but not exactly precise for note offs. Furthermore, when you are pressing multiple keys, the first released one will release the other ones as well (because the stream of repeated keys temporarily pauses). So, if (note-off) timing really is essential you still need to get a MIDI controller of some kind. 

 

Speaking of Duplex, working on the Keyboard application was actually what inspired me to make this. But yes, I thought it would be useful in other ways too so I decided to make it a standalone tool to begin with. And of course, once we've gotten rid of the worst bugs other tool authors are more than welcome to integrate Noodletrap into their own creations as well :-)

 

Again, thanks for the feedback.  


  • afta8 and Skolskoly like this

Tracking with Stuff. API wishlist | Soundcloud


#10 Skolskoly

Skolskoly

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 282 posts
  • Gender:Not Telling
  • Location:probably not behind you.
  • Interests:Music, Video games, computers, coding

Posted 04 October 2014 - 22:42

Thanks danoise! You're doing awesome work! :)



#11 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 07 October 2014 - 15:50

I have gotten rid of the reported bugs, but want to do some feature finetuning before releasing.

First and foremost, it would be great if - when recording synced to beginning / end of pattern, that the resulting phrase would have this exact length.
Right now, it just looks at the recording's length, which doesn't work that well with phrases that are supposed to be looped.
Instead, I want to be so that recording in a 48 lines pattern, looping it a couple of times and proceeding into another one with 128 lines would result in a total of (48+48+128) 224 lines.

Also, I think it would be a good thing if a recording with a stop-timer (after X number of beats) would actually "pad" the recording to the recorded length in beats.
So, if you recorded for almost 16 beats and then let it time out, the resulting length could be "padded" to exactly 16 beats. Currently, it's just using the recording's length, which could be something like 15.62 beats.

Tracking with Stuff. API wishlist | Soundcloud


#12 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

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

Posted 09 October 2014 - 18:37

Opening up Renoise just gave me;

 

 

'C:\Users\plugexpert\AppData\Roaming\Renoise\V3.0.1\Scripts\Tools\com.renoise.NoodleTrap.xrnx\main.lua' failed in one of its notifiers.

 
Please contact the author (danoise (bjorn@renoise.com)) for assistance...
 
std::runtime_error: 'notifier feedback loop detected. do not change values you are listening to within your notifiers.'
stack traceback:
  [C]: ?
  [C]: in function '__newindex'
  [string "do..."]:22: in function <[string "do..."]:9>
  .\classes/NTrapUI.lua:1463: in function '_apply_instrument_from_option'
  .\classes/NTrapUI.lua:903: in function 'update'
  .\classes/NTrapUI.lua:425: in function <.\classes/NTrapUI.lua:422>
  [C]: ?
  [C]: in function '__newindex'
  [string "do..."]:22: in function <[string "do..."]:9>
  .\classes/NTrapUI.lua:897: in function 'update'
  .\classes/NTrap.lua:395: in function '_on_idle'
  main.lua:84: in function <main.lua:77>

 

Clicking away this notice popped up the 'script is taking to long' window. 



#13 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 09 October 2014 - 19:36

Yes, I was made aware of that bug and a fix will arrive shortly (if all goes well, tonight). 

I have also discovered and fixed another bug that affected slow LPB recordings.

 

It's supposed to work like this: when you record in a sufficiently slow tempo, the note could end up on the same line. 

So, noodletrap detects when the repeating the same note quickly and assign each note to a unique note column.

 

But, somehow this was a little broken and as a result, slow recordings could skip notes under certain conditions.


Tracking with Stuff. API wishlist | Soundcloud


#14 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 10 October 2014 - 01:59

Noodletrap v0.9 is out

 

Please uninstall the previous version before installing this one

 

Fixed all the known bugs, had a blast recording my new softsynth this evening  :lol:

Also, the new "split" feature is very useful for creating multiple takes

 

IMPORTANT: this release is using lua coroutines to reduce CPU usage, 

Therefore, it is NOT recommended to use Renoise 3.0 (please update to 3.0.1)


  • Djeroek likes this

Tracking with Stuff. API wishlist | Soundcloud


#15 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 12 October 2014 - 14:20

Noodletrap v0.91 has arrived

 

A few bug fixes and a couple of new features. 

+ MIDI Assignable record buttons
+ When using timed recording mode "stop after note --> beats" + "start at first incoming note", automatically prepare for new recording after having finished one. 
FIXME When basing the recording’s length of an existing phrase, the result would become one line longer
FIXME When another instrument is loaded on top of (replacing) the working instrument, selecting a phrase could throw an error

MIDI assignable buttons should be pretty self-explanatory, but it's worth pointing out that noodletrap expects a "trigger" (not a toggle) mapping. You can use toggling buttons, but you might need to press twice...to make use of them, first press CTRL/CMD+M to bring up the MIDI mapping dialog

 

The second feature is nothing but a little tweak to the existing functionality...

Yesterday, I was recording a set of standalone chords using the "start recording when first note arrives" (so notes are at the very start of the phrase), and with an automatic timeout (the "stop after note --> beats" option).

But I found it a bit annoying having to constantly prepare for a new recording (it means having to remove your hand from the keyboard!!), so I made the combination of these two start/stop options a special case that will automatically prepare for a new recording after each take. 


  • Djeroek and hmā like this

Tracking with Stuff. API wishlist | Soundcloud


#16 Akiz

Akiz

    Guruh Member

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

Posted 13 January 2015 - 10:15

This is amazing tool but i cant figure out how to record mono (oneline phrase).
Even if i just pressing just one one on the pc keyboard it creates multiple lines (usually 4 of them).
 



#17 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 14 January 2015 - 13:37

This is amazing tool but i cant figure out how to record mono (oneline phrase).
Even if i just pressing just one one on the pc keyboard it creates multiple lines (usually 4 of them).

 

I guess one possible configuration would be to start record when a note is received, with a fixed length of one line? 

 

Or, do you mean recording into a single column... you mention both columns and lines. 

In case of monophone, it should respect the mono setting of the instrument. If not, this is a bug. 


Tracking with Stuff. API wishlist | Soundcloud


#18 Akiz

Akiz

    Guruh Member

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

Posted 14 January 2015 - 19:48

I am sorry i meant mono setting (one collumn) of course...

and it doesnt respect it i have feeling that it doesnt respect quantization also.

would be great if it can be selected in your dialog both.



#19 Carbonthief

Carbonthief

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

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

Posted 28 February 2015 - 04:35

Ok... I should have started using this way sooner.  This is probably the most useful tool I've ever installed.



#20 Akiz

Akiz

    Guruh Member

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

Posted 10 March 2015 - 19:25

So mono recording wont be possible?


btw. noodletrap is the only tool that can be influenced by the other tools, if i install akaizer i have to reinstall noodletrap because it is blank.



#21 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 11 March 2015 - 13:43

@akiz: not at the moment, no
I'd like to see it getting monophonic support as well as Renoise style input quantize.

Btw: what do you mean by 'blank'?

Tracking with Stuff. API wishlist | Soundcloud


#22 Akiz

Akiz

    Guruh Member

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

Posted 11 March 2015 - 13:49

By blank i mean blank, you see gray window of noodletrap without any button or anything else (and it wrotes out bug) .
I dont wanna uninstall my tools (to make a screenshot of that bug) but i can tell you how to experiment it, it doesnt matter of you use linux, mac or windows i think.
Install noodletrap as a first tool and then install some other tools (10 at least and i am almost sure that duplex is one of them) and i am sure you will experience it. (Sometimes when you install tool and tools are reloaded it repairs broken noodletrap :-)).
I´ve experienced it during every fresh install of computer and it was about five times since noodletrap has been released. 


Edited by Akiz, 11 March 2015 - 13:53.


#23 danoise

danoise

    Probably More God or Borg Than Human Member

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

Posted 11 March 2015 - 19:20

Ah, it bugs out. Well, a blank dialog is no mystery then :-)

 

I have been told how to reproduce this bug elsewhere, so expect a fix to arrive shortly. 


Tracking with Stuff. API wishlist | Soundcloud


#24 realist

realist

    Composes without Wires burns Directly from Brain to DVD that is already in Store Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 3094 posts
  • Gender:Not Telling

Posted 11 March 2015 - 19:42

I do still not understand what the purpose of this tool is... :)  Its like multiple taking ideas and later fill them back to the pattern?  How can I easily transfer to pattern and playback my takes? Is it possible  not to use phrases (only for storage for the tool)?


.

#25 Akiz

Akiz

    Guruh Member

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

Posted 11 March 2015 - 20:41

You can copy it out of the phrase, but the problem for me that recording looks confusing because of not respekting quantization and mono / stereo setting. But it is great tool if patterns or its borders are limiting you. And phrases can work like clips so it is easy to experiment with different ideas. Just jam something, quantize it by hand (grrr!), transpose it and use it. 


Edited by Akiz, 11 March 2015 - 20:46.

  • realist likes this





Also tagged with one or more of these keywords: phrase, recording, keyboard