Update: Although this project wasnt completed, due to it entirely disappearing when the hard disk failed, I still havnt forgotten about it :)
I ended up with a working widget set, and an app that communicated to csound spitting out score data in realtime. looping sections, and some sequencing support. implemented several realtime instruments with ncurses interface, got some of the granular synth finished. Shouldnt take too long to recreate since i know what works now.
Realtime sequencer is almost useable, at least in a basic form. It is now capable of spawning Vim for score editing. This saved score can be looped.
Next on the implementation ToDo list is a tracker-style window for sequencing these blocks of code, with multiple tracks. A method for serialising the entire sequencer data will have to be written here.
Forking the UI to a seperate process removes the need to perform update loops based on signal interrupts, instead Ill do a while() based on the current time, and communicate to the UI via pipes. UI will need a small tweak to not use getch() and fall sleep, rather, it should idle, polling the keyboard and checking the time for UI updates. This cleanup is high on the priority list.
This is the bare-bones system required to get the sequencer engine running. Once it is, csound score can be written, and work on the instruments begun. As the interface to instruments starts to stabilise a little, adding dedicated text based widget box stuff in the sequencer will become viable, as a replacement to raw csound score.
A simple parser needs to process the raw score, and do some variable name substitiution from a simple lookup table. Hopefully not too complicated. This should be finalised at the same time as the rest of the routing parts, as well as implementing parts of the probability set system.