Hi Gabriel (others may read this too) I spent a couple of nights skimming through the files in the transport_redesign_2 branch. This is really cool! I like the idea of decoupling transport code from sequencer code, it gets a lot easier that way.
I'm not so sure about the SeqScript idea though, it seems that every note (that has length set) gets two events associated with it instead of one, which could complicate things. Why not just use Note objects as before? the sampler still uses them internally, and in that process, various fields on the Note get manipulated (notably m_fSamplePosition). A full implementation of the SongSequencer would also have to keep some copied notes around for lookahead purposes (I imagine setting a floating point tick position on them first [to include humanize etc.], putting them in a priority queue based on that tick position, and then only converting to frame positions for notes that will actually _play_ during the current buffer cycle.) It seems to me as the SeqScript just adds anothe round of copying Note objects (I might very well be wrong here) ? Another question is the ring buffer in SeqScript -- `ring buffer` implies `first in-first out`, and this becomes a problem as soon as lead/lag, humanize time etc. get implemented. I was imagining something like a free list, making it possible to delete note objects in random order, without using `delete`. Last question: Why the technique of using another class SomethingPrivate for class Something's private stuff? What is the reason for not just declaring the methods and variables private inside the class itself? I think you deserve a lot of credit for this, and for the amount of work you put into it. Cheers Jakob. ------------------------------------------------------------------------------ _______________________________________________ Hydrogen-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/hydrogen-devel
