Hey guys,

This is from an IRC user who is specialized in audio software development.
These are his thoughts on the roadmap for 2.0

[11:17:20] <HarryHaaren> re LMMS 2.0; cool, that thread definitly needs to
be summarized into the Wiki, spent 5 mins reading iterations of "the plan",
and now its all fuzzy in my head.
[11:17:58] <HarryHaaren> In general, it sounds good. I stand behind the
idea _dd had to break backward-compat, and remove as much cruft / legacy
code as possible.
[11:18:38] <HarryHaaren> especially with small dev teams, maintaining a
small and efficient code-base is essential: and *removing* code and
refactoring in the process to keep features is a very good way to maintain
software
[11:18:58] <HarryHaaren> (easier for future work to be done, less code
involved, and less code == less bugs)

On Mon, Nov 10, 2014 at 10:34 AM, Raine M. Ekman <ra...@iki.fi> wrote:

> Quoting Vesa <dii....@nbl.fi>:
>
> > On 11/07/2014 12:56 PM, Raine M. Ekman wrote:
> > The current situation isn't exactly "one thread per note" either, it's
> > one threadable job per note, one threadable job per audioport, and one
> > job per mixer channel. All my idea does is basically cutting down on the
> > amount of jobs, the amount of worker threads stays the same.
>
> That sounds better than my misunderstanding of the situation. Thanks
> for the clarification.
>
>
> >> That benefit will be real if you have enough stacking, arps and heavy
> >> filters in a track using e.g. SID. Basically, you're talking about
> >> stomping heavily on most native instruments to give the rest a little
> >> bit more CPU time, if any.
> >
> > Actually I think that benefit is very questionable. No matter how many
> > threadable jobs you divide the task into, you still can't process more
> > of those jobs in parallel than you have worker threads.
>
> If there are cores sitting around just twiddling their bits waiting
> for something to process, the "one job per note" model won't run out
> of CPU when the instrument has too much processing to do. It evens out
> the peak demand in busy parts if using one of the multistream
> instruments.
>
>
> >> I'd look closely at what kind of code compilers can vectorize. Might
> >> be better to put the audio in something like float[notes*2][bufsize]
> >> and possibly get 4 or more channels through the env/lfo section in
> >> parallel. Same probably goes for parts of the mixer.
> >
> > Well there's the thing that again the notes still have to be mixed
> > serially. And channel inputs also have to be processed serially because
> > they all mix to the same channel. I kind of suspect that setting up the
> > threads for parallelizing such a small part of the chain would cost more
> > than it would save...
>
> I'm not talking about threads, it's SIMD, Single Instruction, Multiple
> Data. I.e. making the CPU do the same calculations on more than one
> number at a time. But if the mixing has to be "serial" I'll just
> withdraw the suggestion.
>
>
> >> The MIDI model of note-on/note-off really has no alternatives when you
> >> think about live playing and streaming input events, and it should
> >> work for everything else, too. Maybe everything could move to that?
> >> I.e. a note plays until it's turned off. Or is there a need to know
> >> the note length in advance for any features? I could imagine some kind
> >> of advanced arpeggiator doing something with that knowledge.
> >
> > There isn't a need to know in advance, but this is getting to how notes
> > are stored in patterns. We store the notes in a map based on their
> > starting position, and each note contains its length.
>
> Oops, spoke too much from an instrument POV. I was probably thinking
> "it should work for every instrument". As a data structure on the
> sequencer side a note is totally the correct unit of music compared to
> plain MIDI events.
>
>
>
> --
> ra...@iki.fi
> softrabbit on #lmms
>
>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> LMMS-devel mailing list
> LMMS-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lmms-devel
>



-- 
Jonathan Aquilina
------------------------------------------------------------------------------
_______________________________________________
LMMS-devel mailing list
LMMS-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lmms-devel

Reply via email to