Recreate MIDI EFFECT > PITCH - from Ableton Native Plugins w/ slight alteration

Aj's icon

I have been working on a solution to a midi hardware problem with the popular SP-404 mkii & I have nearly completed my task. I am wondering if anyone can help me by re-creating an ableton native plugin - the Midi Effect > Pitch with some alterations. I would like the knob that usually changes the pitch by + or - 1st at a time to change the pitch by + 15st per click instead. I am also hoping this knob can start at 0 & only go up in value as negative pitch is not needed for this fix I am creating. I think there may be a way to remove the "range" & "lowest" portion of the original ableton plug-in as well as long as the midi note value starts at the same octave as the original Pitch plugin starts when the knob is at neutral 0. If you are interested please let me know the cost & turnaround time as well as any questions you may have. Thanks kindly for your time.

Source Audio's icon

that is a very simple thing to do

Max Patch
Copy patch and select New From Clipboard in Max.

...
that was for max,
for live one needs to route other midi messages through

Trans-15.amxd
amxd 9.31 KB


Aj's icon

Hi SOURCE AUDIO,

Thank you for the reply, I am an ultra-noob with Max but I will try to figure out how to do this with what you've sent me. I appreciate your time.

Source Audio's icon

you need to do no more than to use the amxd file in live track.
if you want to transpose notes in max itself,
just assign midi in and out.
need more help ?
just ask

Aj's icon

Okay thanks SOURCE AUDIO, yes I am trying to use it in ableton before an instance of "simpler" so I can access more slices on a 16 pad midi device when I'm in manual slice mode (workaround on an SP-404 to mimic sample chopping how you would chop with a Push 2) - I will test it out when I get home & reply. Thank you again for the help!

Source Audio's icon

ok, I have limited transpose range to 6 steps x 15 = 90,
thinking that one needs not to transpose more...
if you need more one could do 7 x 15 = 105 up
which would be max for notes input 0-15

Aj's icon

Simpler maxes out at 64 slices so 6 x 15 is more than enough - about to test this out!

Aj's icon

For some reason the transpose plugin is bricking simpler so it can only trigger the first note instead of the full scale.

Source Audio's icon

I know nothing about that simpler.
this amxd I posted does the same as that live plugin,

whenever transpose value changes, it turnes all held notes off
to avoid hanging notes.

Source Audio's icon

do you actually need +16 ?
if it should shift 16 pads

Source Audio's icon

if that is the case, here is x16 transposer

Trans-16.amxd
amxd 9.31 KB

Aj's icon

+15 is perfect so that the previous last pad (16) becomes pad 1. When chopping in simpler on a 16 pad midi device you want to be able to retrigger the last chop on the new set of pads so you know where you are starting from.

You've been very helpful, I am going to see if I can figure out a way to show the issue - I truly appreciate your time.

Source Audio's icon

If you provide note numbers,

input and wished outputs depending on transpose steps.
than one could be sure how to transpose.

Aj's icon

Here are two screen grabs of the midi transpose vs the max transpose & how they are being used.

I've also attached the max plugin that goes at the end of the chain which enables manual slice mode with a midi controller (supposedly only possible with Push before this plugin was made).

To the right of my screen you can see the pads on my midi device being triggered - I'm sorry I'm not more articulate with writing down my explanations, thanks for your patience.

The signal chain is ---- transpose --- simpler --- pad slicer. You can see with the max transpose it re-triggers slice 1 no matter what pad I hit vs with the midi transpose each pad triggers the next note / creates a new slice.

Thanks again!

AZ-LABS_Pad Slicing Mode 1.1.0.amxd
amxd 286.08 KB
slicer plug-in at the end of chain.

Aj's icon

((PS. SOURCE AUDIO I posted this in jobs because I'm willing to pay for help with this, let me know.))

Source Audio's icon

this is so trivial thing to make,
no need to look at it as job.

can you not somehow post what notes need to get in and what needs to get out.
I am not using live, and from that videos one can't really say.

maybe you make 2 midi tracks.
insert my plug in one, that original plug in other.
assign midi input from your controller, set both to same transposition
factor and record outputs as midi.
that is something that I can understand.

Source Audio's icon

I just posted Trans-15.amxd to a Live user to check it against
that pitch plugin.

both produce absolutely same midi note output
So problem can not be in transposer itself

Aj's icon

Hmm ok. It sounds like the note values from the Trans-15.amxd are the same as the midi pitch plugin - it must have something to do specifically with how it is interacting with simpler or the AZ-LABS_Pad Slicing Mode 1.1.0.amxd. Would it still be helpful if I share the note values? I can try to figure that out - thanks again for you patience & help as I'm such a noob as far as some of this goes.

Source Audio's icon

are you using any mappings or anything else that can disturb normal midi
stream?

could you post exactly what your source controller is sending.
I mean that 16 midi notes.

then make new live set, insert all you need for a working example,
but without any mappings, automations etc.
including short audio clip with slices, and send it over as zip archive
using files.fm

then I could ask someone to test.

if I understand correcty, all you need is to transpose that 16 midi notes
to target higher banks of slices, is that correct ?

Aj's icon

Okay I think I understand your request - my only question is what you mean by "could you post exactly what your source controller is sending. I mean that 16 midi notes" - do you mean the note values the controller is sending, like C-1 - that kinda thing?

I believe you understand correct, I need to transpose the 16 midi notes to target higher banks of slices, getting simpler to behave as though I have 64 midi pads to trigger instead of only 16.

I can make a project as you requested, I'll get started right away. I really appreciate your help! If we can get this device working with simpler & the slicer.amxd it will be a HUGE help for the SP-404 community (& other 16 pad midi users), people have been trying to figure this out for a while now.

Source Audio's icon

Yes, I mean that source 16 midi note numbers.
I really don't understand the problem because receiving 16 notes and transposing them to any value is such a simple thing...

maybe it is Roland SP-404MKII thing ?
I have no idea about it, and how it interacts with Live.
it looks as being samper itself...
Are you only using that 16 pads as midi note sources ?

and notes that get transposed do not go back to it, but to that simpler whatever device that slices audio loop within Live itself ?
so that one can say it does not matter at all where midi notes come in,
they get used only in the track ?

Aj's icon

The source 16 midi note values are C1 through D#2.

The Roland sends midi note values into ableton & otherwise ableton does not send any info back into the Roland, the pads only trigger midi note values & do not send any other information. The same as any midi controller, as I understand it. (This midi information is sent to ableton via USD-C)

Midi info from the Roland comes into ableton from the 16 pads - the midi info triggers notes in simpler (or any other midi instrument for example if I open up a drum rack or a midi piano in ableton it does the same thing, plays the 1st 16 notes C1 through D#2) The goal is to use the transpose-15.amxd to allow the 16 pads to trigger C1 through D#6 (64 notes in total, shifting the pads up by 15 with each click on the transpose-15.amxd as the sample is being sliced in real time in simpler - I know shifting by increments of 15st seems odd but is to solve for a very specific problem.)

The trick with simpler has to do with the manual slice mode - the AZ-LABS_Pad Slicing Mode 1.1.0.amxd is enabling this manual slice mode where normally simpler ONLY allows manual slice mode to be active with an ableton push controller (here is a video of how it is used with push & what we are trying to replicate without a push controller - ignore the nudge functions & all that, we just care about the slices being generated when a new pad is triggered) otherwise this manual slice function does not work (this was the first big problem that needed solving). I don't understand how the AZ-LABS_Pad Slicing Mode 1.1.0.amxd is solving this, but it works great for midi controllers with 64+ keys / pads. My best guess is the issue has to do with how the transpose-15.amxd is sending midi information into simpler or perhaps how that info is being used by the AZ-LABS_Pad Slicing Mode 1.1.0.amxd, in some way it must be different than the native ableton Midi Pitch since using Midi Pitch works, albeit a less elegant solution.

I'm exporting a large project for a client right now but I will make the .zip as you requested once my project has exported. Thanks again.

Source Audio's icon

no need to send anything.
I just asked my tester to load that slicer, simpler and transposer.
everything works as it should.
I will get short video soon as confirmation

Source Audio's icon

here it shows 16 notes running, getting transposed
and playing slices.
note generator, transposer, simpler and slicer all in same track


Source Audio's icon

you can load the project to see yourself

to test midi input from external source,
remove leftmost device which generates notes.
I added note in-out monitor in Trans-15 device

T-Slicer Project.zip
application/zip 2.74 MB

P.S. do you need external control to step through transpose steps ?
or a different gui element like live.tab or anything else
to get switching easier ?

Aj's icon

The issue occurs when the "slice by" mode is in "manual" on the simpler device. The order of operations is to setup simpler in this mode - then click "pad slicing" on the AZ-LABS_Pad Slicing Mode 1.1.0.amxd plugin, then trigger midi notes. First trigger C1 which should begin playing the sample, as the sample plays hitting C#1 should then create a new slice while the sample continues to play & so on, (D1 adds a slice etc.) To see how this works you can click the hyperlinked youtube video in my prior reply.

I think the answer to your P.S. question is that I would just use the mouse to click through to the next step on the transpose plugin (if I had a midi device with more capability than 16 pads, such as a knob or something, I would midi map it, but with the SP-404 the only midi info it can send comes from the 16 pads.)

Source Audio's icon

I have impression that this simpler device with that AZ-LABS plugin
only works correctly if it remains strictly in Live runtime,
as soon as any max4live device gets inserted, even simple midiin-midiout through, it does no respond to notes for slicing.

I will need time to get that verified, and also to test if recorded notes
in it's or any other live track can trigger slicing
on the other hand, playing sliced sample works without AZ-LABS slicer plugin.

Source Audio's icon

confirmed, only direct midi input works for slicing.
- midi notes from any track sent to simpler - does not work
- any max4live device inserted in midi path - does not work
solution is to deactivate transposer device while slicing,
and activate for playback of slices later.

that works, because any key higher than root note adds slices,
as many as one wants,
but one has no way to use more than 16 pads.
----
On Mac one could use IAC buss to route midi from
16 pads to transposer,
out to different buss or channel, and than into simpler track.
Like that one has no restrictions, becaues notes seem to come from
external source into Live.

I guess loopmidi on windows could do the same.

Aj's icon

So strange that the midi pitch works while actively manual slicing it must be sending midi data different than a max plugin does. Wish I better understood the difference in the type of transpose data being sent into simpler. In a last ditch effort I am attaching a screen recording to show that it does work with midi pitch - I do not need to deactivate it. You can see that I can change the transpose knob on midi pitch by 15st while I am actively slicing & it works (which...hey if that is what I always gotta do that is ok, just was hoping for a more elegant solution.)

slicing with midi transpose active - accessing more than 16 pads by adding 15st

Thank you so much for all your time & effort.

Source Audio's icon

I know all of that, and also explained the difference and only solution known to me at this time.
if you are on mac, use IAC buss

Aj's icon

Thanks so much & thanks for clarifying, I don't understand all of the terminology & you've been very kind. I will look into IAC buss. :)

Source Audio's icon

setup is simple,
you place transposer into midi track,
input from your controller, output IAC driver ch1
simpler track :
midi input IAC driver ch1
------
I looked into that pad slicing device.
it is a bit outdated and uses too many things to perform single task,
to set pad slicing on.

I have made new slicer plugin, and also transposer,


numeric keys 1-7 can trigger 7 transpose values,
also CC#7 can slide through them,
both need to be turned on to function.

CC#7 because it seems that roland can send that if in DJ mode ?
you probably know more about it.
The question is - do you want keys and CC to be enabled by default,
and if yes which , or both?
here are current devices

Trans-15.amxd
amxd 17.29 KB

Simpler_SlicingSW.amxd
amxd 27.21 KB


Aj's icon

I was away for the weekend I will check all of this out today!

Source Audio's icon

P.S. while you are at it,
maxbe you can suggest best way of dealing with recalling transposition.

I realised that max key object needs focus to work,
and in addition ableton has own means with assigning keys to mappings,
or whatever that is called.
If you use mac, one could use hi object,
that can capture keystrokes even if live is in the background

Aj's icon

Hey there, I'm still on the case, just wrapping my head around new terminology that I haven't come into contact with before & making sure my routing is correct. CC7 isn't necessary as Dj mode is for a different purpose on the SP. The numeric keys is really cool how you got that setup & I like the new slicer design.

So far I cannot get the IAC driver to change the outcome - it works until I use the transpose plugin (which I have setup as you instructed) once the transpose plugin is on it no longer creates slices in simpler.

Can you enlighten me on what hi object is so I can try to capture keystrokes for you?

Thanks kindly & again thanks for your patience with me as I'm a hardware guy & don't understand all this software stuff very well.

Source Audio's icon

I am not at home and can't send you screenshots of IAC setup at this time.
But you could, send a screenshot showing track with Simpler device and visible
midi input, together with midi track which hosts transposer plugin and also
it's midi in - out.

I can remove CC# input if you want.
hi object captures keystrokes no matter if Live or pluginit where it resides is in foreground
or not.
key object in max must have at least max as app in foreground, in Live things are even more compicated.

I have disabled storage and automation as well as mappings for transposer GUI elements,
in order to keep it out of usual live storage & automation etc, giving it only manual
control.

Stevon's icon

Hey Guys,
i had a look at the problem and it seems like every time you use a max midi device, no matter how the MIDI Notes are processed (even if you just pass it thru), the pad slicing function stops working. That includes sending it from another track too.
This doesn't seem to happen by using the native "pitch" plugin from Ableton. So controlling this one might be a solution, just trying something out atm what might be the solution to your problem if I understood it right. Keep you updated.
Greetings from Hamburg
Stevon

Source Audio's icon

As I allteady memtioned, one can solve that by using IAC driver on mac, maybe also loopmidi or similar on windows.
it is only a matter to receive midi from source that simpler track sees as external.
sending
midi from track to simpler via
internal path does not work.

Stevon's icon

Sorry for repeating, just wanted to clarify things (maybe just for myself haha).
Anyway I think I found kind of a workaround:

I took that PadSlicing functionality and added a remote control to the Pitch Parameter of the "Pitch" Midi Effect. It needs to be setup like this to work but it was the easiest solution I could think of ( still not sure if I understood every aspect of the problem, not a native speaker so there might something I overlooked)

Excited if it fits the needs
Greetings

SimplerPadSlicingTranspose.amxd
amxd 48.96 KB

Source Audio's icon

I am sure that is also going to work.
by the way one can't download the amxd, error gets displayed,
I guess because of + sign in amxd name.

but also IAC trick does
here max (instead of Roland) sends midi to transposer,
which outputs to IAC bus, and simpler receives it from IAC Bus.
Slicing works.

I don't know if all this makes sense,
but it shows that midi isn't really 100% midi within Live...



Aj's icon

S.A. - Okay I am sure I have IAC driver setup correct watched an hour of YouTube info & followed your instructions again, I'll screen record soon. Did your tester get it to work? If so, then clearly I am the issue haha

S.K. - Welcome to the situation. Thanks kindly for joining in! I am getting an error message when I try to download the .amxd file you attached but curious to try it out later as well, please re-upload if you can & feel free to ask any questions to clarify.

Aj's icon

S.A. Thanks for that screen cap! I will try again as soon as I am home, I swear that is how I had it setup but clearly I am missing something or there is something weird about how the SP interacts in place of max. I didn't get an alert about your post that was a few minutes before my last one, apologies for redundancy.

Stevon's icon

Thanks for the Tip with the + Sign, the Download should work now.

Aj's icon

Okay S.A - got yours to work! Had something wrong in ableton with the “remote“ boxes in my midi settings in the application.

S.K. - About to try yours out.

Aj's icon

S.K. - This lets me chop beyond 15 pads which is cool but it doesn't allow the pads to recall the slices for playback of the sample which is needed for using the sample slices to create a song with them, if that makes sense? Sorry if my terminology is shakey haha. Thanks!

Aj's icon

Source Audio - I think this is a really cool fix, do you have other thoughts on simplifying, considering a hardware nerd like me had a hard time? Really appreciate all your efforts.

Source Audio's icon

just had a look into Steven's SimplerPadSlicingTranspose.amxd

maybe turning device on/off should not be used to switch pad slicing,
because then also setting transpose value does not work.

also better for this case would be to insert tab for transposition,
instead of having to step up / down.

otherwise, this could be a better solution then having to use IAC driver,
all could be in same track etc.

Source Audio's icon

here is no CC, HID and standard Key option for transposed values.

for standard key, device needs to be focused,
and after loosing focus, one has to click into
it to regain focus .

For HID keys first pick correct device to listen to,
it will depend on hardware,
is it built in MacBook, external keyboard,
and then this devices usually have more instances,
so for example on my Macbook Pro
one needs to use
Apple Internal Keyboard / Trackpad 4
for exernal keyboard
Apple Keyboard 2

once set right and enabled, keys 1-7 will trigger transposition
even if Live is in background.
I left standard keys in there, because on windows,
system prevents keys and mouse devices from functioning as HID devices.
--------------
P.S.
initial upload had a mistake, I reuploaded it fixed

Trans-15_HID.amxd
amxd 41.73 KB