Re: [yoshimi-user] Where is everything?

  • From: cal <cal@xxxxxxxxxxxx>
  • To: yoshimi-user@xxxxxxxxxxxxxxxxxxxxx
  • Date: Fri, 06 Aug 2010 10:34:43 +1000

On 06/08/10 07:10, Will J Godfrey wrote:

Well, not quite everything.

I thought I'd have a look at the code and see if I could help by doing a
bit of tidying up. I was particularly interested in file loading/saving.

The problem is I can't find out how this goes together. There seems to
be bits and pieces spread through 'Master' and 'Utils' (no doubt other
places too), but none of it makes any sense to me. It probably doesn't
help that I have only a sketchy idea of C++ :(

Yay, go for it! From (notably vague) memory, the save/load routines in Master
and
Utils mostly relate to dealing with config and state files. Most of the stuff to
deal with instrument save/load is in Misc/Bank.cpp, driven from UI/BankUI.fl.
From
there it meanders through Part, Effects, god knows what else, with each section
building or processing its own little area of the xml. On second thoughts, my
advice
would be - Don't go there, that way madness lies!

Not so long back I got it into my head that the ancient mxml lib simply _had_
to go.
So I wrote a whole huge section of code to save/load instruments, configs,
state files,
the whole lot, using raptor/rdf and turtle format. I loved it, hell of lot
faster and
ultimately a whole lot simpler to use than the mxml code that's there. But then
I faced
the prospect of a) converting all known instruments to turtle format, and b) the
probably more difficult task of convincing people that it was a good idea to
drift away
from pure compatibility with the zynaddsubfx format. That stuff's been
archived, probably
never to be revisited.

I also had a go at using SQLite. Now that has serious potential, particulary
for one of
the most persistent items on my wish list - midi control of bank/program
changes. What
I want there is to be able to tag up .xiz and .xmz files into bank/program
organisation,
then have midi switch according to need.
This is not exactly a priority, so I wouldn't want Cal to divert
attention from more important stuff, but if anyone else understands the
code perhaps they could give me a few pointers {ouch!}

Perfect timing actually, right now I _needed_ a distraction. I've gotten rid of
the
segfault problems nicely ... ain't gdb what living is really about? (No it
isn't!!!).
But ... I'm stuck with strangely weird and weirdly strange distortion on
anything
beyond the pure and simple adnote default. Which is not what the dev branch is
doing.
Somewhere in there I suspect I've stuffed up one of the buffersize -> blocksize
transitions, but finding just where is proving not so much difficult as just
plain
tedious. So far I haven't resorted to scouring 60-80K diffs looking for that
single
incorrect assignment, but I fear it may come to that :-(.

cheers, Cal


Other related posts:

  • » Re: [yoshimi-user] Where is everything? - cal