Hey all,
I've been trying Waveform again and have been really impressed. I've never been 100% happy with any DAW I've used but Waveform now does pretty much everything I would want a DAW to do. All the annoyances and pain points from when I tried it years ago seem to have since been resolved. One thing I do miss is being able to duplicate a time selection like in Ableton Live. Basically you select time across one or more tracks and as many times as you hit ctrl/cmd+d it will duplicate that selection. Like this: Waveform duplicate does not work like this but as you can see I've created a macro to mimic Live's functionality. I thought I would share the script in case anyone else is interested in it. Here it is:Let me know if you find it useful (or encounter any issues)!
I've been trying Waveform again and have been really impressed. I've never been 100% happy with any DAW I've used but Waveform now does pretty much everything I would want a DAW to do. All the annoyances and pain points from when I tried it years ago seem to have since been resolved. One thing I do miss is being able to duplicate a time selection like in Ableton Live. Basically you select time across one or more tracks and as many times as you hit ctrl/cmd+d it will duplicate that selection. Like this: Waveform duplicate does not work like this but as you can see I've created a macro to mimic Live's functionality. I thought I would share the script in case anyone else is interested in it. Here it is:
Code:
if(Tracktion.getPosition ('markOut')){ // There is a range set // Comment this line to avoid splitting clips partially in the marked region (they will instead be ignored // if they start before the marked region) Tracktion.splitMarkedRegion(); // Select all marked clips, then get them in an array Tracktion.selectClips ('marked'); var selectedClips = Tracktion.getSelectedEditElements ('clip'); if(selectedClips.length){ // There are clips in the marked region // Iterate over the array to find the offset from markIn of the clip with the earliest start var offset = Math.pow(10, 1000); for(var i = 0; i < selectedClips.length; i++){ var clipOffset = selectedClips[i].getProperty ('start') - Tracktion.getPosition ('markIn'); if(clipOffset < offset){ offset = clipOffset; } if(offset === 0){ break; } } if(offset < 0 || offset === Math.pow(10, 1000)){ offset = 0; } // Copy clips in the current time selection Tracktion.copy(); // Paste in place - pasted clips are selected automatically Tracktion.paste(); // Move the cursor to markOut plus the offset of the earliest clip // and then move the selected clips (i.e. the ones that were just pasted) there as well Tracktion.setPosition ('cursor', Tracktion.getPosition ('markOut') + offset); Tracktion.moveStartOfSelectedClipsToCursor(); // Shift the marked region over by one length // Grab current markOut position var markOut = Tracktion.getPosition ('markOut'); // Move markOut one length forward Tracktion.setPosition ('markOut', markOut + (markOut - Tracktion.getPosition('markIn'))); // Set markIn to the old markOut position Tracktion.setPosition ('markIn', markOut); } // No marked clips - do nothing}else{ // No range set - just call regular duplicate method Tracktion.duplicate();}
Statistics: Posted by Greenstorm33 — Thu Feb 29, 2024 12:03 am — Replies 2 — Views 58