On Fri, March 6, 2009 1:46 pm, [email protected] wrote:
> i like this simple synth idea. but hey if nobody develop this anymore...
> the same with the beginning of piano roll editor. think both (synth +
> piano roll) was for the same project.

:-)  I'd love to work on a subtractive synth, too...

BUT... how about we call it a day once MIDI Out is working.  Let
ZynAddSubFX or my Korg do the synth stuff.

> maybe to understand more of your ideas can give some introduction for
> this?

Sure!  However, this diagram is out of date.  The file is in chronological
order... so the stuff at the END of the file are more important.  There's
a similar diagram near the bottom that's more accurate (but still out of
date).

     HydrogenGUI
        A
        |                                              Current Song
        V                                                     |(**)
TransportControlInterface                JackTimebaseCallback |
        A (start, stop, locate, select              A         |
        |  transport master backend)                |(**)     |
        V                                   (++)    |         V
  Transport <-- TransportMasterInterface <-+-InternalTransportMaster
     | (private)                           |
     |                                     +-JackTransportMaster (++)
     V                                     |
TransportPosition (Struct/class)           +-MiscTransportMaster
            | (analog to jack_position_t)  |
            |                              .
            V                              .
    Hydrogen (sequencer)                   .
                        (**) Currently, the Current song is a module
                             variable (private) for hydrogen.cpp.
                             How do we expose this to the transport?
                        (++) Someone, somewhere, has to compensate
                             for these cases:
                             * When jack_position_t does not have BBT.
                             * When ticks don't match Hydrogen's ticks.


In a nutshell... H2Core::Transport feeds Hydrogen a TransportPosition
struct that is always sane and always maps to the current song (see
TransportMasterInterface.h).  (This part is done -- well, a first draft
anyway.)

Hydrogen takes the B:b.t info and the current song and schedules note
on/off events for the sampler.  The on/off events are scheduled by frame
and have nothing to do with B:b.t.  (I plan to do this part this weekend.)

The way that the sampler gets notes scheduled bears a very strong
resemblance to how MIDI Note On/Off events work... which makes MIDI Out
trivial to implement.

The transport back-ends are transparent to the sequencer.  Thus, the
sequencer is *always* the slave.  When we want to be JACK Timebase Master,
we just plug one of those up to JACK... but we still listen as the JACK
slave.

Peace,
Gabriel

-- 
               G a b r i e l   M   B e d d i n g f i e l d


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Hydrogen-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hydrogen-devel

Reply via email to