Post by xPsycHoWasPx on Aug 14, 2019 18:12:19 GMT
I might have found the way to build a new lemur.
The last 6 months I been working hard on a new controller for ableton live.
Original I started out using lemur for building up the basics, so I hat a frontend for Python script I been working on for the Midi Remote Script part.
To this day I couldn't made it this far without lemur, but 4 months ago I hitted the wall, until that point lemur have been brilliant to fast build up the GUI I needed, but suddenly everything took longer and longer, suddenly my advanced scripts would end up taking days to build... I mean cmon..... It took me like 30 mins to write the function in Python to send info to lemur, why did it have to be so complicated to read the data again. o yea I know because fucking 256 bytes pr expression and same with osc msg.. Picture the mess it took to convert a list from python with 700 words(sample names) into a container that hat 100 expressions, and that was just to save it, then takes all 100 expressions, and combines all those lists into buttons on a canvas window.....
My plan in the end was to rebuild it all again in a real app. But because I hitted that wall, I ended up having to study real app program before I hat enough finished with lemur(original i wanted 70% done before switching but hat to switch at 30%)
But fuck it I'm happy now it turned out that way, because I found
KIVY
What is kivy?
A GUI programming library for python, and with a little wizardry , the result can be ported to all platforms IOS Android windows etc.
Until now this thing just been perfect for what I wanted to do with my live controller.
No more expression with just 256 bytes, no more global 12 mb project size limit, and doing canvas is a absolute dream vs lemur(lemur what a joke you are)
But after trying an example file, I realized omfg that the external files for the GUI set up can be loaded on the fly.
Meaning that basically it already have all the tools to make an external editor and the ability transfer it an another device like an iPad, and dynamic load and change the content.
Well that's sound all good man, but how will that make it better than lemur?
1. Hmm you can load custom images?? And still do vector gfx...
2. One variable can save more mb of data, than a whole lemur project, allows to store.
You said vector gfx 2, so how much better is that than since u said it was a dream compared.
3. Sorry a dream was an underrated statement, it's fucking out of this world compared...
To draw 10 lines in lemur u must do 10 draw commands.
Kivy: bitch move aside please, oki give me 80.000 draw line commands (x, y in an array) and I draw it all with one command.. And done.. Anything else ?
Oh did I forgot to say lemur canvas only can do 2048 draw commands pr canvas.,
And to put nails in the coffin, any GUI object in kivy can do canvas, so you want extra canvas stuff on top of your image button, no problemo.
No need to add extra canvas windows like lemur.
And getting midi and osc working was child's play.
And now I can at least send 1024 bytes(propperly could go higher with some tweaks) of data pr OSC msg, vs 256.
To me just those 3 reasons is enough to say if Liine doesn't shape up within 6 months, then I will make them into a little side note of midi history.
Oh did I mention that you can reuse an object multiply times, without having to duplicate them(scripts and everything)
And since everything more relies on % size of your screen, then when you reuse objects they will auto resize to new window.
Meaning that you also don't have to worry about moving touch projects between different resolutions.
I know with some clever scripting lemur can resize to any reso also, but why the hell do ppl need to do that when it should be build in to be begin with.
To get down on earth and back to reality again.
What is needed to be done before all this can happen?
1.
Well to begin with an editor, that can design all of the GUI like lemur.
But I will slowly start soon building that, because I'm starting to miss the ability to build my live app, like I did with lemur.
And it could save me a lot of time in the end + I can use it as building block for ”new lemur” project.
2.
Ability to inject own scripts to objects.
Atm I haven't tested how it could be done with python, other than reading some threads about it, so one way or another it seems like something that could be done
Without to much hassle,
But for a version 1.0 I would properly just add a basic scripting option, and a few releases later open it more up.
It will in the end be main focus, but 60% of the time ppl need to do scripting, is because they need to do sysex stuff.
So to me it I seems more like a question of adding a midi library of all synths and other midi devices possible.
So ppl can just select a synth and one the parameters and assign it to the newly created knob or fader, and finito.
No need to write sysex codes etc.
And by time the scripting can be expanded because boy if I said canvas was out of this world vs lemur, same thing can be said in general about writing stuff in python, not only
I find it more easy than the C alike code they use in lemur.
Variables can store anything, so it can be used to shorten length of function call commands
So
App.whatever.anotherthing.something.else.value
Could be done like
X = App.whatever.anotherthing.something.else
X.value
So just basic access to scripting would already be able to do a lot of what lemur does if not more.
I will add a basic script editor window, but apps like vscode does a hell lot better job at that stuff, so why not embrace it and instead add option to temporary create an txt file of what ever is in the editor window and make it open in something like vscode, the user now edit his stuff and hits save, then hits refresh in the GUI editor app and done..
3. Basic Obejcts with midi and osc functions.
Like pads, switches, knobs, faders etc.but kivy already have most of that so all is needed is to tie some permanent osc and midi functions to them, then they will be exactly like lemur.
Since adding images is no problem, then I will properly not focus to much on adding tons of build-in skins for knobs etc, and instead just build a nice image strip reader, so ppl can just use anything knobman gallery has to offer. Or whatever other image strip tools there is out there.
Take a look:
Knobman Gallery
And of course as soon they release more info about the new midi 2 standard, I will add it that 2.
But I still have a live remote app to build first, + it would also be nice to gain abit more experience of python/kivy before this next step.
But to me it's not a question about if the marked for midi touch app is dead, but more that nobody really done enough about it yet.
If lemur have been updated more, I bet more ppl would be using it today.
And if this is all it takes to do something like lemur justice or better. Then fuck it count me in guys I will do it. I see to many cry over they love there lemur but sad that everyday it becomes less operational, and just a question of one day apple will change something that involves stuff lemur uses and it will all be over for you guys..
6 months ago I properly would have considered it impossible at least alone, but now it looks more possible.
But if any of you ppl with python skills reading this and want to be a part of making this new glorious app, please let me know, I could use a few more heads on this.
And python btw won't be final code in the app, there is a way to convert it all from Python to c++ code, so end result could be as fast as real c++ code but still able to stick to python coding.
And if there is any features you wished lemur could do, but never did.... please please please Write them below.. I'm not liine that wont listen, I'm not that stupid... some of the greatest app features comes from user requests.
That's all for now.
Just wanted to let u guys know that unless the future brings a new lemur then I will.
Peace PsycHoWasP
The last 6 months I been working hard on a new controller for ableton live.
Original I started out using lemur for building up the basics, so I hat a frontend for Python script I been working on for the Midi Remote Script part.
To this day I couldn't made it this far without lemur, but 4 months ago I hitted the wall, until that point lemur have been brilliant to fast build up the GUI I needed, but suddenly everything took longer and longer, suddenly my advanced scripts would end up taking days to build... I mean cmon..... It took me like 30 mins to write the function in Python to send info to lemur, why did it have to be so complicated to read the data again. o yea I know because fucking 256 bytes pr expression and same with osc msg.. Picture the mess it took to convert a list from python with 700 words(sample names) into a container that hat 100 expressions, and that was just to save it, then takes all 100 expressions, and combines all those lists into buttons on a canvas window.....
My plan in the end was to rebuild it all again in a real app. But because I hitted that wall, I ended up having to study real app program before I hat enough finished with lemur(original i wanted 70% done before switching but hat to switch at 30%)
But fuck it I'm happy now it turned out that way, because I found
KIVY
What is kivy?
A GUI programming library for python, and with a little wizardry , the result can be ported to all platforms IOS Android windows etc.
Until now this thing just been perfect for what I wanted to do with my live controller.
No more expression with just 256 bytes, no more global 12 mb project size limit, and doing canvas is a absolute dream vs lemur(lemur what a joke you are)
But after trying an example file, I realized omfg that the external files for the GUI set up can be loaded on the fly.
Meaning that basically it already have all the tools to make an external editor and the ability transfer it an another device like an iPad, and dynamic load and change the content.
Well that's sound all good man, but how will that make it better than lemur?
1. Hmm you can load custom images?? And still do vector gfx...
2. One variable can save more mb of data, than a whole lemur project, allows to store.
You said vector gfx 2, so how much better is that than since u said it was a dream compared.
3. Sorry a dream was an underrated statement, it's fucking out of this world compared...
To draw 10 lines in lemur u must do 10 draw commands.
Kivy: bitch move aside please, oki give me 80.000 draw line commands (x, y in an array) and I draw it all with one command.. And done.. Anything else ?
Oh did I forgot to say lemur canvas only can do 2048 draw commands pr canvas.,
And to put nails in the coffin, any GUI object in kivy can do canvas, so you want extra canvas stuff on top of your image button, no problemo.
No need to add extra canvas windows like lemur.
And getting midi and osc working was child's play.
And now I can at least send 1024 bytes(propperly could go higher with some tweaks) of data pr OSC msg, vs 256.
To me just those 3 reasons is enough to say if Liine doesn't shape up within 6 months, then I will make them into a little side note of midi history.
Oh did I mention that you can reuse an object multiply times, without having to duplicate them(scripts and everything)
And since everything more relies on % size of your screen, then when you reuse objects they will auto resize to new window.
Meaning that you also don't have to worry about moving touch projects between different resolutions.
I know with some clever scripting lemur can resize to any reso also, but why the hell do ppl need to do that when it should be build in to be begin with.
To get down on earth and back to reality again.
What is needed to be done before all this can happen?
1.
Well to begin with an editor, that can design all of the GUI like lemur.
But I will slowly start soon building that, because I'm starting to miss the ability to build my live app, like I did with lemur.
And it could save me a lot of time in the end + I can use it as building block for ”new lemur” project.
2.
Ability to inject own scripts to objects.
Atm I haven't tested how it could be done with python, other than reading some threads about it, so one way or another it seems like something that could be done
Without to much hassle,
But for a version 1.0 I would properly just add a basic scripting option, and a few releases later open it more up.
It will in the end be main focus, but 60% of the time ppl need to do scripting, is because they need to do sysex stuff.
So to me it I seems more like a question of adding a midi library of all synths and other midi devices possible.
So ppl can just select a synth and one the parameters and assign it to the newly created knob or fader, and finito.
No need to write sysex codes etc.
And by time the scripting can be expanded because boy if I said canvas was out of this world vs lemur, same thing can be said in general about writing stuff in python, not only
I find it more easy than the C alike code they use in lemur.
Variables can store anything, so it can be used to shorten length of function call commands
So
App.whatever.anotherthing.something.else.value
Could be done like
X = App.whatever.anotherthing.something.else
X.value
So just basic access to scripting would already be able to do a lot of what lemur does if not more.
I will add a basic script editor window, but apps like vscode does a hell lot better job at that stuff, so why not embrace it and instead add option to temporary create an txt file of what ever is in the editor window and make it open in something like vscode, the user now edit his stuff and hits save, then hits refresh in the GUI editor app and done..
3. Basic Obejcts with midi and osc functions.
Like pads, switches, knobs, faders etc.but kivy already have most of that so all is needed is to tie some permanent osc and midi functions to them, then they will be exactly like lemur.
Since adding images is no problem, then I will properly not focus to much on adding tons of build-in skins for knobs etc, and instead just build a nice image strip reader, so ppl can just use anything knobman gallery has to offer. Or whatever other image strip tools there is out there.
Take a look:
Knobman Gallery
And of course as soon they release more info about the new midi 2 standard, I will add it that 2.
But I still have a live remote app to build first, + it would also be nice to gain abit more experience of python/kivy before this next step.
But to me it's not a question about if the marked for midi touch app is dead, but more that nobody really done enough about it yet.
If lemur have been updated more, I bet more ppl would be using it today.
And if this is all it takes to do something like lemur justice or better. Then fuck it count me in guys I will do it. I see to many cry over they love there lemur but sad that everyday it becomes less operational, and just a question of one day apple will change something that involves stuff lemur uses and it will all be over for you guys..
6 months ago I properly would have considered it impossible at least alone, but now it looks more possible.
But if any of you ppl with python skills reading this and want to be a part of making this new glorious app, please let me know, I could use a few more heads on this.
And python btw won't be final code in the app, there is a way to convert it all from Python to c++ code, so end result could be as fast as real c++ code but still able to stick to python coding.
And if there is any features you wished lemur could do, but never did.... please please please Write them below.. I'm not liine that wont listen, I'm not that stupid... some of the greatest app features comes from user requests.
That's all for now.
Just wanted to let u guys know that unless the future brings a new lemur then I will.
Peace PsycHoWasP