New Tool (2.8): Mpe

(Regarding closing & opening of a tool window:

For a future Renoise version I think it would be nice to be able to toggle between opening and closing the last used tool window through a keyboard shortcut).

This man has the right idea.

This man also. Also, what if you use ESC to switch between edit_mode=on/off? ;)

ok calm down everyone, the next version has all this fixed, Im sorry for the bugs and a massive thanks to you all for being so involved in something I thought I may have never been able to create. Please let me know if you find any strange behaviour with the next version and I will try to jump on it! so go for it and download the updated version. Im uploading now…

im not sure what this is about can you explain in further detail?

I’m just chiming in on the fact that Esc-killing-MPE-interface is not very nice, when considering that some people use ESC as an edit_mode/on/off shortcut.

When will it be up? :)

sorry found a bug before upload by chance…fixing now

How’s it going? :) Btw, would it be possible for you to always paste the version update information to this page too? :)

added updated version 2.6

  • fixed “esc” key does not close tool anymore (you can press “esc” if sampling dialog is open to close it and tool wont close)
  • fixed multiple instances of tool opening
  • added midi mapping to all buttons (except new song button and transpose rotary)

http://tools.renoise.com/tools/musical-programming-environment

i am struggling to get the rotary transpose to midi map to a rotary controller.

good stuff,

got this message, starting a new song while having the tool open:

My apologies Jonas, I have fixed it and re-uploaded . please download and reinstall again!

preedit: sevenscientist replied while I was typing this, but I’ll leave it all in anyway.

Rotary encoders generally return twos-compliment encoded signed values to indicate direction and quantity.

The following function converts a twos compliment encoded value into its number equivelent:

  
function byte_to_twos_complement(raw_value)  
 --[[   
 Description: This function expects a numerical value from 0-255 (i.e. a   
 byte) and will return the twos complement value of that digit   
 (i.e. it will convert a raw binary value to it's signed   
 value). This is useful for handling rotary encoders on midi   
 controllers   
 Parameters : raw_value - the byte to be converted   
 Returns : a signed value from -128 to +127   
 ]]--   
  
 assert(type(raw_value) == "number", "Passed parameter is not a number")  
 assert(raw_value >= 0, "Passed parameter value is out of range (<0)")  
 assert(raw_value < 256, "Passed parameter value is out of range (>255)")  
  
 if raw_value == 0x80 then  
 return -128  
 elseif raw_value < 0x80 then  
 return raw_value  
 else  
 return -128+(raw_value-0x80)  
 end  
end  
  

Hopefully this will help

Regarding this issue as reported by Jonas:

This occurs when you try to initialise a midi mapping binding twice without releasing it first.

You can wrap each midi mapping to check if it already exists as follows:

Before:

  
renoise.tool():add_midi_mapping{  
name = "MPE:Function:Step Editing",  
invoke = function(message)  
 if (message:is_trigger()) then  
 fstep()  
 end  
 end  
}  
  

After:

  
if not renoise.tool():has_midi_mapping("MPE:Function:Step Editing") then  
 renoise.tool():add_midi_mapping{  
 name = "MPE:Function:Step Editing",  
 invoke = function(message)  
 if (message:is_trigger()) then  
 fstep()  
 end  
 end  
 }  
end  
  

Similar ‘safety’ wrapping can be performed on key bindings.

Hope this helps!

Sevenscientist - a question: Would it be completely against how the MPE is meant to work - if -Step and Step- would take into consideration the current note edit step?

sorry esaruho, Im not sure I understand what you are trying to do, can explain a little more? The step - functions are only meant to go forwards or back a quarter beat (as in 4/4 signature you would have 4 beats). I am yet to impliment timing modifications.

added updated version 2.7

  • added slices feature to display screen (slices a selected instrument sample by 4/8/16/32 even slices) works best with samples that are recorded/sampled as whole bar measures and in 4/4 timing. - selecting “none” will clear all slice markers.

http://tools.renoise.com/tools/musical-programming-environment

this tool is great stuff… sevenscientist, i’d really like to help you bring this thing to next level, especially midi / key binds would be my first extension of choice for this thing.

which ones?

Well, its been a while but I am bringing it to the next level! I am now performing with renoise live, so I have had to update the tool to accomplish this. There are some bugs I am fixing but you can now…

  • change instrument via midi
  • change pitch/transpose via midi
  • added 2 new rotary controls that will select the sample start point and end point. (inprogress -MIDI mappable)
  • changed the way the sample button works (when performing live I needed a one shot way to sample on the fly via midi , so now the sample button launches the record window and starts sampling).
  • added previous sequence button
  • added button to sample>process>maximizevolume (great for sampled recordings that sound too quiet)
  • added button for instrument>loop>off>forward>backwards (will cycle through off/forwards/backwards)
  • inprogress button for sample range> copy into new instrument (use midi faders or rotary to select sample range then press this button to create a new instrument from it)
  • inprogress button for sample range> trim (use midi faders or rotary to select sample range then press this button to discard what is outside the range)

Please let me know if you have any constructive ideas or suggestions…

Looks like my akai mpc2000xl is used only as a 16PAD midi controller. So I will be putting it for sale on ebay very soon.

link, or is your newest update currently making its way through the script moderators? Update tool in Renoise doesn’t detect anything.

sorry Jonas, not uploaded just yet , working on the last few bugs… wont be long now!

ahh ok, no worries, I have patience :)