"It should be simple to code"

Someone please start the thread …

1 Like

i’d go so far to say, we could assume a virtual API exist following the API ‘available’ / more or less known for all other machines of Elektron. Only limitation - no Overbridge audio - doesn’t mean there will be no bridge of some sort that communicates dedicated to the OT in particular.
And because an API would be used to communicate over sysex likely anyway one can focus on the “I” in API, the interface. The thing that you face when using it.

What I’d be interested in is a way to do what Elkherd does for older versions of the Digitakt:

  • clean up and rearrange projects, banks, patterns, sample lists, parts
  • copy patterns, sounds, settings etc between projects
  • mix and match tracks from different patterns

On top of that (nice to have but not essential)

  • export patterns or tracks as MIDI files (with the proper CC instead of parameter locks)

Personally I wouldn’t need a full App, a simple SDK (libraries with a simple API) for accessing the data in the files would go a long way, I’d probably build a simple interpreter on top of that to achieve what I want.

2 Likes

even tho i know this thread might blow up by interest…
just for the sake to know what can be talked about… the following video shows the state i am in with the works… in the background you see an webinterface that communicates freshly extra developed full OSC2.0 specs (including bundle support) that listens and talks to the app which also hosts the interface and can be exposed via your router to who ever you want by simply giving the link (for those who know it, works much like subethaedit but based on musical standards [aka OSC protocol]). I did that interface including a extra developed vanilla.js framework because that simply lasts longer than react and co. So that is what i understand as the box of pandora that needs to be opened, so you could share with whom ever you want to work with or do with the data what ever you want mangling it, visualising, shifting, copying or just make it different as you please. That means i have an OSC protocol (set of link-syntax) that grows slowly to communicate. That includes that i had to develop OSC for ableton supporting python3 also with osc-bundle support in full.

I know waiting is the hardest part, even for me, but things are tricky in the details… specifically the visualisation needs to be valid at all time, not just the data. Because if the visualisation has a tiny flaw then you mess up the data for sure without even knowing… So you also see i completely re-interpreted the arranger so you dont have to learn a second time how that works… OT learning curve is hard enough for most, but hey deep as heck. So … here we go.

ps: saying that in advance (again) please no download requests or platform preference requests, it will start on OSX.

7 Likes

@Lizard-of-Oz

  • export patterns or tracks as MIDI files (with the proper CC instead of parameter locks)

done, check, already implemented. The solution i might have to refine again exports all data as MIDI or *.als aka Ableton Set.

  • clean up and rearrange projects, banks, patterns, sample lists, parts
  • copy patterns, sounds, settings etc between projects
  • mix and match tracks from different patterns

done. check you can even open multiple projects, which means the data can be moved around. All it needs is (as i wish for myself) a javascript API or python API that lets me generalise this process so that i dont have to develop all possible combinations of weirdo mangle processes but rather define a set of functions that can be called to do the job. If those are triggered from the app itself to implement copy / paste / sort / cleanup / validate doesnt matter anymore because i would have one single interface that you go thru to do just that. So yes, good point. Actually that is very much what an API is.

So the basic idea is, if we don’t have Overbridge for the OT means we build the missing bridge on our own and make use of audio interfaces and midi interfaces we usually use for that already. It needs a central place where that is kept together to actually walk over the bridge. Doesnt hurt if there might be actually overbridge support for the OT in future. More the contrary in my eyes, we could define the API we wish for.

Maybe i give also some clue what that is so complex. The visualisation is based on so much paramaters all the time that in example changing one parameter has to show up valid when you press Scene A to see what tracks and pages make use of the scene. Shift all Trigs 5 steps to the Left. Oh! Slide Trigs have to move as well, oops, all data belonging to those Trigs will come back at the end of the loop, rrrgh round robin code. Uff! All in 8byte data chunks, ok let’s do bit operations. Gosh its not big endian, ok lets flip the bytes back to endian memory. Erase a Trig by fast hitting the button, when i release the button will it empty the trig or did i just hold the trig to edit its properties? Ouutsch, the actual editing needs to be done when i release they key (button) not when i hold it. So i keep the operation in memory and apply when you do the action “lifting your finger”. Yikes there is a CUE button to the right of FUNC, where do i place that button? Hmm… maybe just same layout to the right of SHIFT (which is FUNC in the app). But this key is not supposed to work as Modifier Key for other Keys… how do i do that… ok - lets invent modifier key code for normal key letters. And on and on… it’s insane, if i’d know before in what hell of a UI work i dig into I might have never started… haha.

By slowly doing the check step by step i make sure that my interpretation of the OT format is really really correct, because - well - i had to discover what is what myself of course and some properties are surprising simple and then it turns out they are not simple because they interfere with another property like, lets say just accationally switch to another track - boom. Do i re-evaluate again (CPU intense) or do i just call pre-validation to show up risking invalid visualisation. It is like writing the most complex liveset of my life… lol. Then implement code that speeds things up and reduce function calls and so on… Ok lets shift the pattern to the right two steps… ok what data does have to change as well? Am i sure i did all of them and not miss one single out ? Did i parse the scene again correct? See that is what is time consuming and kinda crazy to even do that as a single developer…

4 Likes

All that looks and sounds excellent. Take your time, but please let me know when this is ready!

As I understand it your app removes any need for planning Octatrack projects because everything can be changed so easily. Which is a gamechanger for people who can only spend very little time on making music.

If I understand this correctly, one could even use your app to record patterns via midi into another sequencer in real time?

I like that, this would allow people who no longer own an OT but still have backups get access to their music again.

Now what would be really cool is a way to connect your App to rytm-rs and some software for the Digis (probably a future iteration of Elkherd, or something new entirely) to transfer patterns between devices. I guess that even approximations of sounds might be possible, especially between OT, DT and AR, or between AR and ST.

This sounds amazing ! :clap::clap::clap:

Do u plan to open source your work, sound super cool. Is it all in javascript (looks like a web app) or is there a backend in something else?

I only understand about half of your post, but I’m on board with the message.

I get it.

To a much lesser extent, I see it all the time. Every time I post a Max/MSP video on YouTube, I get the same “share your patch” messages and comments, like my hard work belongs to everyone else the second I dare to share it with the world.

Wouldn’t be so bad, but I’m not even sharing anything that a complete amateur couldn’t figure out for themselves if they put in just a tiny bit of work. Makes me quite prickly and increasingly defensive about/less interested in sharing what I’m doing, so must be really fucking annoying if you’re doing something that involves a great deal of skill and hard work.

8 Likes

One of the important insights being a programmer/dev gives you is pretty obvious is you think about it:

Ideas are easy and free. Anyone can have an idea. Implementation, on the other hand, is usually not free and quite often very labour intensive.

11 Likes

@Shredrr I still have a hard time visualising what exactly you are building, I do understand all the technical concepts you mention but I do not understand what all of this is doing.

Can you try to explain it in terms of product instead of tech? Some examples (without delving into how you are implementing it), or like a paragraph describing a use-case from end-to-end.

Even to me with 20+ years of professional experience in different fields (from Symbian-era phones to iOS/Android, web [since early 2000s], backend data processing [streaming/batching, etc.], infrastructure automation, and a few others) do not really follow what all of this will do in the end. I see a lot of technology thrown together but I do not understand what the “together” is.

3 Likes

Ideas without design or any architectural concerns are fairly worthless, the reason why all the cryptocurrency bros and their “showerthoughts” posts pivoted immediately to AI.

4 Likes

@Shredrr this might be the point to split the discussion into it’s own thread. I can see that so far the discussion is based on how easy it is to code, whether it should be open sourced etc. But as soon as you start to talk about what you’re producing in it’s own right (and not in relation to ease-of-coding) it might be time for another thread ?

1 Like

I’m adding

Implementation, without causing disruption, on the other hand, is usually not free and quite often very labour intensive.

I’m a software engineer. Yea ideas are free but time isn’t. This idea isn’t exactly novel, but the time spent is incredibly useful.

Open source is a way to share ideas that have had time from someone devoted to exploring an implementation.

It’s whether you see it as exploratory like science, trying to make the world a better place, (Especially if you are literally building on-top of open-source projects like OSC… you’re already using someone else’s donated time)

or if you are trying to make a product to sell.

In this case the product would be so niche and have so few customers that the amount of effort isn’t actually financially viable. So open source would be more about sharing the knowledge rather than giving away money. Since the value of sharing the knowledge is higher imo than the financial possibility.

It’s important to note that open-source != Open contribution. Look at vcv rack. You can have one main dev with some hand picked help, while leaving open source code for others to look at, perhaps track down bugs, offer suggestions etc.

I get it though not everyone subscribes to that idea. But I tend to prefer open everything, so I don’t think it’s unreasonable to at least ask.

Either way it’s a cool project, interested to see what he does with it.

4 Likes

I love open source things, but there are at least two hurdles to open-sourcing even a project you don’t plan to make money from:

  1. Documentation. You will get a barrage of messages if you don’t take the time to explain your work
  2. You’re on the hook to answer questions from anyone who uses your work. That is a job itself, and no amount of documentation will get rid of it
3 Likes

@bibenu one can not open source what does not exist in the hands of users as a working toolbox.
And knocking out the energy that drives invention does not safe the toolbox either. It just takes it apart, we can already read how attitude kills sharing.

@JPM indeed open source is not free. It has cost to it, either at the coder side or competitor side. It’s just the most direct way to share concepts, because they are written in code commands in a specific language and syntax so can be read in and checked twice. Apart from that open source kills competitors business model and it is not a secret also very much used for that. The times when open source was simply a community effort to get massive workload under control is not over yet, but rarely used for that anymore.

I don’t understand how this relates to anything I said ?

click user, see thread entries, filter with it, click. You can do it.

aaannd back to topic…
who else has this ptsd?

5 Likes