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

Reply via email to