apologies this is a long post, as you’ll see its kind of exploring some broader ideas, brainstorming,
and, im going to have to keep using norns for software, until i get a collective name… or perhaps i switch to MCM ? (matron/crone/maiden?)
ok, MEC already is a shared library/api, so thats not really an issue, but I think a step further, once Ive got some kind of norns platform working - but for sure an interesting idea.
I think possibly we are looking at this from two different viewpoints, so its probably helpful to clarify this.
so my aim, is to get existing ‘norns app’ working unchanged on a platform I can afford, so push2+pi+pisound.
once I have that platform , then I can discover norns, see what it offers, and see how I can contribute further.
from my understanding of the code base, this means the push2 have to work with the current ‘matron api’ (as defined by lua/weaver) - hence my talk of abstraction at the lower levels.
this is kind of a milestone for me, as I can’t develop on something, if what I see is fundamentally different from what norns hardware users see - it would lead me to a different ‘idea’ of what norns is… and thats not a place i want to be.
however, Im getting the feeling you (@zebra) view this slightly differently…
what I think your suggesting is:
(please correct me, here im stating this , so i can get to a common understanding)
push2 etc, should be added as separate matron devices, in a similar way to dev_monome, dev_midi,
and each device has their own api.
the ‘apps’ (is that what they are called, or scripts?) can then be written to use that lua api, specially for that device. (and so use its ‘unique’ properties)
if apps wanted to treat devices similarly, then a lua abstraction layer could be written.
(so we could have a display ‘lua abstraction’, that could switch between using push2 screen and norn screen)
is that correct?
if thats correct i do understand your viewpoint,
the approach means that apps can target hardware specifically (so use all its features), and a lua abstraction could make the ‘cross device’ if thats what the app developer wants.
( im gleaning this understanding for a few others posts I seen you write on the role of lua,
but this might be 1+1 = 3
)
if so its cool, I get it…and I can understand that view generally, it does make sense for those with norns hardware.
In this sense, your in some ways saying norns is a platform for apps, but the specific apps are a only a part of it.
Im not being derogatory to apps here.
more that norns is worth ‘building on’ to write your own apps, dont be too worried about the supplied apps.
however, I have a problem with this approach for my immediate goal
I do want to see the current apps, as I think they are an important part of what end users will believe norns is,
and to this within ‘your’ approach means:
- If I want to see the current apps on the push,
this requires me to :
write a device for norn
write a lua abstraction layer
start adapting the all the current apps
this is a lot of work, particularly as my core competencies are in C/low level, not lua
- ive no ‘guarantee’ that new apps will use the lua abstraction (because the developer may only be interested in monome) , so id have to port these too.
- it potentially ‘fractures’ the norns community, into those with norns hardware and those without.
so whilst I can see how I can do this, I don’t see it as moving me closer to my objectives, without quite an undertaking of work.
Im wondering…
norns is young, the ‘community’ around it is buzzing with idea, so the vision of where norns is going is in a state of flux - similarly, you (the developers) are still exploring, and also have no doubt lots of things you want to add before it reaches your visions.
perhaps, my views are just a bit premature, they are not where your priorities lie… and in some ways are talking about ‘distant ideas’, when the current ideas are not even fully developed.
and similarly on my side, the vision of norns and the role of lua and supercollider etc is unclear, because its still ‘in progress’
so, we are all in a learning and exploring phase…
in that sense perhaps what its better for me to do is simple - fork matron, and just do what i want/need to get the rPI+piSound+Push2 working.
it’ll be on a public repo, so if you want to look you can, but I won’t do PRs etc.
I can then use this as a vehicle to explore norns, to watch it grow, see how the apps grow, and see how norns develops - and this will perhaps lead over time for me to understand the norns ‘vision’ a bit better.
then as this is clear, none of this stops me, pursuing the approach (I think) your suggesting, for push 2/ eigenharps / soundplanes
so in this sense, its a typical ‘prototype’ which can potentially be thrown away, its aim is educational, and lets be honest here, this is something I can achieve in a matter of hours, where as the lua abstraction is days++ , and ‘feeling’ norns in my hands, Im not sure thats something I can commit to.
ironically, this actually was one of the reasons I was being ‘coy’…
I wanted to be in the background, get a quiet understanding of what norns is, and where its going … rather than start ‘committing’ to extend it, before I have a firm understanding of what ‘it’ is, and what shape it will take.
(note: anyone reading this , here im making no commitments, Ive many open source projects… so time is limited)
thoughts?
sorry , another long post, but I guess the important question is
@zebra am i broadly correct in my understanding of how you see new devices fitting in , and the role of lua?
knowing this helps clarify in my mind where you think (at the moment) where norns is going.
finally apologies to anyone if they feel this is all some how a ‘waste of time’ , perhaps it is…
(not my intention, I tried to originally keep the question very specific, but that approach failed too)
my only ‘defence’ is that if you want to attract new open source developers, there is a certain amount of ‘investment’ in time on both sides (I have already spent quite a bit on norns) as both sides explore whats possible - that investment gets rewarded once both sides get comfortable with the direction they want to go, a direction both sides find interesting, and rewarding.