A solution for the "Delete clip button missing" problem!
A solution for the "Delete clip button missing" problem!
Hello,
There are many threads such as this one about the fact we cannot delete a clip in session view from a MIDI controller. There are some workarounds with M4L (I haven't tested), or with Bomes, etc.
Here is an easy solution for Launchpad :
1. Just launch this miditokey.exe (only 197 KB) and that's all. (No MIDI OX, MIDI Yoke, Bomes, etc. needed)
2. It will automatically open any MIDI device connected to computer containing the word "Launchpad" in its name
3. It will assign the bottom right button (MIDI note 119 in Session mode) to the DELETE keyboard key.
4. As long as the Ableton Live window has the focus and the session view has the focus, all you need to do is press the clip you want to delete (like if you want to play it), and press the bottom right button of the Launchpad. Done! The clip is deleted!
Very useful if you want to do many takes of an instrument, and immediately erase the bad takes.
Remarks:
* For now it's a very simple tool, but I could modify it to accept any other MIDI device than Launchpad, and any other mapping MIDI note xx => shortcut key yy
* Comments are welcome !
* To avoid this bottom right pad to behave like a Play/stop button of the 8th row, first test with a Live set containing maximum 7 scenes, so it won't act as a normal button for the 8th row. This can easily be bypassed, I'll explain in another post if needed.
There are many threads such as this one about the fact we cannot delete a clip in session view from a MIDI controller. There are some workarounds with M4L (I haven't tested), or with Bomes, etc.
Here is an easy solution for Launchpad :
1. Just launch this miditokey.exe (only 197 KB) and that's all. (No MIDI OX, MIDI Yoke, Bomes, etc. needed)
2. It will automatically open any MIDI device connected to computer containing the word "Launchpad" in its name
3. It will assign the bottom right button (MIDI note 119 in Session mode) to the DELETE keyboard key.
4. As long as the Ableton Live window has the focus and the session view has the focus, all you need to do is press the clip you want to delete (like if you want to play it), and press the bottom right button of the Launchpad. Done! The clip is deleted!
Very useful if you want to do many takes of an instrument, and immediately erase the bad takes.
Remarks:
* For now it's a very simple tool, but I could modify it to accept any other MIDI device than Launchpad, and any other mapping MIDI note xx => shortcut key yy
* Comments are welcome !
* To avoid this bottom right pad to behave like a Play/stop button of the 8th row, first test with a Live set containing maximum 7 scenes, so it won't act as a normal button for the 8th row. This can easily be bypassed, I'll explain in another post if needed.
Re: A solution for the "Delete clip button missing" problem!
An even better solution here: viewtopic.php?f=1&t=236768
Re: A solution for the "Delete clip button missing" problem!
How to delete the current clip in session view, using a MIDI message from a foot controller (or any other MIDI controller)
I have manage to code a tiny remote script that deletes the current clip when it receives a MIDI note message.
This is after several hours collating stuff from everywhere, including but not limited to:
https://livecontrol.q3f.org/ableton-liv ... k-classes/
viewtopic.php?t=200513
For a more complete explanation reference these two links for file locations and control surface setup. My explanation below will be brief.
My current setup is an FCB1010 controller midi-out to an UMC404HD which has usb-midi into Ableton Live 10 Lite.
1. Create a folder called DeleteClip in C:\ProgramData\Ableton\Live 10 Lite\Resources\MIDI Remote Scripts\, i.e.
C:\ProgramData\Ableton\Live 10 Lite\Resources\MIDI Remote Scripts\DeleteClip
2. Create two python (text) files in the DeleteClip folder, __init__.py & DeleteClip.py, using the code below
3. Start up Ableton, go to Preferences, Link MIDI, and hopefully you'll see DeleteClip listed as a control surface. Choose your MIDI input device to use with the control surface, and you should be done. I did not activate any of Track/Sync/Remote options for this MIDI port, and it still works. Your mileage may vary.
4. The note value 100 is hard coded in the script. You can change it to any another note. You can also uncomment the self.show_message lines if you need to troubleshoot.
I have manage to code a tiny remote script that deletes the current clip when it receives a MIDI note message.
This is after several hours collating stuff from everywhere, including but not limited to:
https://livecontrol.q3f.org/ableton-liv ... k-classes/
viewtopic.php?t=200513
For a more complete explanation reference these two links for file locations and control surface setup. My explanation below will be brief.
My current setup is an FCB1010 controller midi-out to an UMC404HD which has usb-midi into Ableton Live 10 Lite.
1. Create a folder called DeleteClip in C:\ProgramData\Ableton\Live 10 Lite\Resources\MIDI Remote Scripts\, i.e.
C:\ProgramData\Ableton\Live 10 Lite\Resources\MIDI Remote Scripts\DeleteClip
2. Create two python (text) files in the DeleteClip folder, __init__.py & DeleteClip.py, using the code below
3. Start up Ableton, go to Preferences, Link MIDI, and hopefully you'll see DeleteClip listed as a control surface. Choose your MIDI input device to use with the control surface, and you should be done. I did not activate any of Track/Sync/Remote options for this MIDI port, and it still works. Your mileage may vary.
4. The note value 100 is hard coded in the script. You can change it to any another note. You can also uncomment the self.show_message lines if you need to troubleshoot.
Code: Select all
#__init__.py
from .DeleteClip import DeleteClip
def create_instance(c_instance):
return DeleteClip(c_instance)
Code: Select all
#DeleteClip.py
from __future__ import with_statement
import Live
from _Framework.ControlSurface import ControlSurface # Central base class for scripts based on the new Framework
from _Framework.ButtonElement import ButtonElement # Class representing a button on the controller
from _Framework.InputControlElement import * # for MIDI_NOTE_TYPE
CHANNEL=0
IS_MOMENTARY=True
class DeleteClip(ControlSurface):
def __init__(self, c_instance):
ControlSurface.__init__(self, c_instance)
with self.component_guard():
#self.show_message('DeleteClip started')
self.deleteButton=ButtonElement(IS_MOMENTARY, MIDI_NOTE_TYPE, CHANNEL, 100) # Use MIDI note 100 to trigger the action
self.deleteButton.add_value_listener(self._delete_clip,identify_sender= False)
def _delete_clip(self, value):
#self.show_message('Deleting clip')
CurrentSlot = self.song().view.highlighted_clip_slot
if CurrentSlot.has_clip:
CurrentSlot.delete_clip()
-
- Posts: 3
- Joined: Sat Sep 26, 2020 2:22 pm
Re: A solution for the "Delete clip button missing" problem!
Thanks a lot Rynhardt! Using your scripts I got this to work on my Pearl MalletSTATION, it was a feature I was greatly missing so far.
-
- Posts: 3
- Joined: Sat Sep 26, 2020 2:22 pm
Re: A solution for the "Delete clip button missing" problem!
I accidentally lost my script because of upgrading from Trial to Intro. So I had to go throught the whole adventure again . If anyone else want to try this out, I put together a small repository: https://github.com/rienheuver/deleteclip-ableton
-
- Posts: 3
- Joined: Sat Sep 26, 2020 2:22 pm
Re: A solution for the "Delete clip button missing" problem!
It doesn't work anymore in Ableton 11. I found this post stating that the plugins have to be written in python3 from now on:
https://remotify.io/community/question/ ... te-scripts
My python skill isn't very good, so I wouldn't know if the current scripts are python 2 or 3. I tried the python library 2to3 to convert it, but didn't have any success with it yet.
Any clues to fix this? Help is greatly appreciated!
https://remotify.io/community/question/ ... te-scripts
My python skill isn't very good, so I wouldn't know if the current scripts are python 2 or 3. I tried the python library 2to3 to convert it, but didn't have any success with it yet.
Any clues to fix this? Help is greatly appreciated!
Re: A solution for the "Delete clip button missing" problem!
Hello, i tried your solution with Ableton Live 11 and it worked fine. Thank you rynhardt!
Last edited by Senkel on Fri Mar 12, 2021 5:06 pm, edited 1 time in total.
Re: A solution for the "Delete clip button missing" problem!
I put the script in "Ableton User Library/Remote Scripts". Maybe this is necessary in Live11.
Re: A solution for the "Delete clip button missing" problem!
Hi,
Thanks to everyone here for all the effort, really appreciate it. I've come up with a different solution as I want to do all my stuff using Clyphx. I'm using Ableton Live 11 and ClyphX 2.7.4. Similar to the fixed length function, I have modified the [] CLIP DEL function so that it deletes the last clip of the currently armed track instead of the currently selected clip. As I use the [] SRECFIX x function for looping, this is very helpful because you can assign the delete to any midi note and it works the same way, so you can easily correct your playing.
Roughly how I did it:
Go into Clyphx script and open ClyphXClipActions.py file. Search for the delete_clip function. Replace it with the following code:
Save the file and restart Ableton. Create an empty midi clip and rename it "[] CLIP DEL". Note that I don't need the original [] CLIP DEL function, so if you do, just rename it and create a new one.
Hope this helps, let me know if you need anything else.
Timo
Thanks to everyone here for all the effort, really appreciate it. I've come up with a different solution as I want to do all my stuff using Clyphx. I'm using Ableton Live 11 and ClyphX 2.7.4. Similar to the fixed length function, I have modified the [] CLIP DEL function so that it deletes the last clip of the currently armed track instead of the currently selected clip. As I use the [] SRECFIX x function for looping, this is very helpful because you can assign the delete to any midi note and it works the same way, so you can easily correct your playing.
Roughly how I did it:
Go into Clyphx script and open ClyphXClipActions.py file. Search for the delete_clip function. Replace it with the following code:
Code: Select all
def delete_last_clip_in_armed_track(self):
# Find the last armed track
armed_track = None
for track in self.song().tracks:
if track.can_be_armed and track.arm:
armed_track = track
if armed_track is not None:
# Find the last clip slot with a clip
last_clip_slot = None
for clip_slot in reversed(armed_track.clip_slots):
if clip_slot.has_clip:
last_clip_slot = clip_slot
break
if last_clip_slot is not None:
last_clip_slot.delete_clip()
def delete_clip(self, clip, track, xclip, ident, args):
# Call the function to delete the last clip in the armed track
self.delete_last_clip_in_armed_track()
Hope this helps, let me know if you need anything else.
Timo