carrierdown / mutateful Goto Github PK
View Code? Open in Web Editor NEWAdd-on for Ableton Live that enables live coding functionality fully integrated into Live's session view.
License: GNU General Public License v3.0
Add-on for Ableton Live that enables live coding functionality fully integrated into Live's session view.
License: GNU General Public License v3.0
Inputting an incorrect formula crashes the app.
For example [A1] =b1 slice /8
results in
Received 1 clips and formula: [<b1>0] slice /8 transpose -12
Unhandled exception. System.FormatException: Input string was not in a correct format.
Nested statements could be very useful to specify a pre-transformation to a clip inline, without having to set up a separate clip/cell with this transformation first. For instance, consider the difference between
[A1] beat
[A2] =A1 resize .5
[A3] =A1 A2 interleave -ranges 1/16
and
[A1] beat
[A2] =A1 (A1 resize .5) interleave -ranges 1/16
Passing the arg -invert to a filter command would leave the result rather than deleting it.
Reasoning: Often less interesting passages contain longer note to accentuate cadence and the flourishes would be shorter.
I could look at this, if it is non trivial. Many thanks
Extend one or more clips by looping, by specifying a loop factor or absolute length.
It would be helpful to pad silence
perhaps
padtime [-at time] [duration]
and just insert that as blank space
Many thanks, Even just at the start would be fine.
This is particularly relevant for things like SCAN where the results can be hard to envisage in advance and hard to sync in retrospect.
Not least it can be used for rhythm nudging. At which point a negative value might be handy to delete time at the start too.
These operators would be very useful to have in mutateful as well.
Examples:
Unable to get formulas running properly on OSX 10.14.5: no MIDI data generated upon execution via [Cmd+R, return] renaming of clips. Opening the patcher for mutateful.amxd from Ableton, patcher console reads "sadam.udpReceiver - can't open socket."
Update - trashing and restoring .mxe externals and running the mutateful.app from v1.0.0 (instead of latest version) has it working for me.
Having a bit of trouble running the UNIX exec application on macOS Mojave 10.14.5 despite it working perfectly before. Receiving the following issue with both the v1.0.1 and v1.0 builds upon opening:
The application to execute does not exist: '/private/var/folders/6x/x59ln4fd5y1dvdz7zlxm5rph0000gn/T/.net/Mutate4l/cgscinom.sti/Mutate4l.dll'.
Seems to be looking for a .dll library file but the path goes bad after [/T/], and I can't seem to find anything helpful in the code or patchers for either version. Any help would be appreciated, excited to work with the new commands!
I get the bug "On macOS there seems to sometimes be an issue with activating the externals needed for the patcher to work"
which i can resolve as by opening the m4l device as you suggested.
But as soon as i close it the connection is lost again. So i would need to keep the device open all the time to work with mutateful.
Command to mix two or more clips
Is there a limit on Clip length or size?
Seems reasonable, but it is not mentioned in the "docs".
Support input like =a1 setpitch c3 c#3 e4 g#4 (which will make notes and clip references interchangeable in many cases, but can be parsed based on context, i.e. implicit casting).
Also support input like =a1 scale dorian f#
As well as possibly things like =a1 setscale dorian f# setoctave 4 setpitch 1 4 2 1 5 (where the numbers represent degrees of the current scale)
How does one express a crotchet, minim, semibreve and moreover multiples of those for durations?
I tried the obvious "1" for a crochet and got an error about mixing formats.
Rather than report that (annoyingly) as a bug I am checking how would one would express it.
I am assuming it must be 1/1 for crotchet, 2/1 minim, 4/1 semibreve, 8/1 breve, 16/1 longa, et cetera.
Lets say Take is the command. How would one say
Start at "4 bars and 2 beats" and take "2 bars and 3 beats"
is it 9/2 5/2 ?
If so, that's pretty tortuous for the average user probably, I am not even sure the maths in that example would be correct and obviously some really fiddly values could result. :\ And that was a really easy example :\
perhaps some sort of shorthand? Maybe check for two periods in the string and do a Bars.Beats.Ticks conversion? Live works like that internally AFAIK, at least as far as the average user is concerned.
Possibly request for enhancement?
Hi- just downloaded the latest release to try this out, and the executable seems to not ever finish loading.
macOS 10.14.5
Would be nice to have the rm (rhythmic motive) and ns (noteset) commands from re<urse in mutateful.
You have OS X 10.11.6. The application requires OS X 10.13 or later. Can't update environment/OS. Anyway around this?
In practical use commands that don't have a TLA (Two/three letter acronym in this case) are cumbersome. Going forward if all command could have a TLA that would be ideal.
(With exception to things that possibly have no good shortname like "scan")
For those cases that are currently missing a TLA obviously considerations such as 'clarity of short-name'; 'avoiding accidental cognates' and of course the general lack of namespace are key.
Recognising that would it be better to just provide a push with my ideas or do you want to hash it out in comments on this issue first?
Many thanks.
Welcome to mutateful!
Open Ableton Live, drop mutateful-connector.amxd onto one of the tracks, and start entering formulas.
watchedclips at 2557 set to 2524
Received 2 clips and formula: [0] arp -by [1]
Sent 309 bytes over UDP
Received 1 clips and formula: [0] relength 2.0
Sent 159 bytes over UDP
watchedclips at 2556 set to 2524
Received 3 clips and formula: [0] arp -by [1] -by [2]
Unhandled exception. System.ArgumentException: An item with the same key has already been added. Key: By
at System.Collections.Generic.Dictionary2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) at Mutate4l.Cli.Parser.ParseTokensToCommand(IEnumerable
1 tokens)
at Mutate4l.Cli.Parser.<>c.b__1_3(List1 x) at System.Linq.Enumerable.SelectListIterator
2.ToList()
at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source) at Mutate4l.Cli.Parser.ParseFormulaToChainedCommand(String formula, List
1 clips, ClipMetaData metadata)
at Mutate4l.Cli.CliHandler.Start()
at Mutate4l.Program.Main(String[] args)
Edge case maybe but there
Using macOS Sierra 10.12.6 formulas not working. Tried clicking the edit button and trying a formula but nothing changed.
Thanks!
As seen in http://jgarcia.hungry.jp/project/alias-clips/ it is possible to track and update arrangement clips as well, provided they've been selected before and you don't move them in groups.
I don't know the details but I started implementing until I've found both your projects so I figured this much. You can observe the selected clip and keep track of it by id, even though they don't have a canonical path (though strangely they have a track as canonical parent).
Mutateful.app, when clicked, produces an error popup with message: "The application “Mutateful.app” can’t be opened."
I tried compiling it via command line:
dotnet publish -c Release /p:RuntimeIdentifier=osx.10.15-x64
and it worked.
I've rewritten the concat to support a simple -with (since, in my mind this is concat and the original version is more like the unix cat command) perhaps this will seem stupid when I understand more however
= cc a1 -with b1
now results in a1+b1 in the new clip
if this is not ridiculous I could put together a pull. thanks.
Old syntax:
interleave a1 a2 mode time ranges 1/4 => a3
New syntax?
a1 a2 interleave -mode time -range 1/4 => a3
All functions should support 1 or more inputs and outputs to support easy chaining without needing to worry about exact outputs of each step.
Doing some quick haze testing I noted that 909 notes appears to be the upper bound per clip.
Passing greater than this would cause the System.ArgumentException: 'Destination array is not long enough to copy all the items in the collection. Check array index and length. Arg_ParamName_Name' error pictured.
Can we confirm that 900 is a reasonable upper bound per clip and is there any situation where that value is further added to, that I have overlooked here. For example is this the total count of all notes passed in all clips for this one transaction? Just trying to establish if that is indeed the right place to drop in some defensive error-handling.
Many thanks
Hi, I just started from scratch with the 1.1 release on Catalina 10.15.5. Populating the formula ids works correctly, but the formulas themselves don't do anything, and when I edit the device I see some errors in the Max console:
I just had the experience setting up gibberwocky of needing to use xattr
to remove a quarantine attribute from externals before Max could load them, so it occurred to me that the problem here could be similar, but I actually have no idea where the sadam.udp*
externals are (supposed to be) stored.
Notably lists and decimals
Everything was working fine until today, when it started giving me this error:
exit;
The application to execute does not exist: '/private/var/folders/r9/zm8jfd9112l0w8r9xl56ycz00000gn/T/.net/Mutateful/iwn3ozxb.2zu/Mutate4l.dll'.
I am on High Sierra 10.13.5
Tried to download and relaunch but keep getting this, any ideas to what I might've done to cause it to do this?
Thanks
It would be great to have a functionality which allows smooth cross over of 2 clips. The function would work over x beats and switch pitches and or rhythm smoothly.
Love the idea. Would be nice if it worked on the arrangement view as well as the live view, as I barely use the live view.
Whilst doing some very basic tests I noted that all internal maths is performed with an assumption of 4/4 and clips that are copied in non common-time signatures via concat end up being 4/4 (and obviously the wrong length)
It may not be well known that one can name the scenes with a Signature and BPM and the transport auto-switches to it on playback. (Shown in diagram)
This being the case supporting multi time playback seems more critical.
Noted that Clip class did not have a concept of signature_numerator and signature_denominator properties and moreover I suppose this also need generalising to not mash up any other extant math wangles you did for establishing timings and whatnot. Thus I did not look at what it would take to support this end to end yet as you would very likely know the gotchas. But seemed worthy of note here. Seems to me that any extant maths would just need scaling by the reciprocal of the results from "factor of signature_numerator over signature_denominator" for both such that 3/4 from 4/4 gives us 1.33333333333 but maybe I am wrong there.
In the interim common-time is the only safe choice
Not sure if this issue is bc I'm using live 11 or if its another bug but there are no errors in the mutateful application or the m4l device but no formulas work. the automatic setting of clip names works but formulas dont create any notes.
I've been using the following to scale my velocities.
I recognise it could have more options but it's what I currently use.
Would this be useful upstream?
https://gist.github.com/twobob/c6355773901d7517b0d0dc7249085f73
It just floors the multiplicative to int per note with some scaffolding
Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.