I don't know the inner workings of Hydrogen so not much help. It would be great if it could be controlled or control other applications. Also, I noticed the issue you talk about with Hydrogen not being aware of the length of a bar. I know its probably not a common thing, but I personally would like to have different length bars in one song. Good luck and thanks!
Jakob Lund wrote: > Dear Drumheads. > > I wrote two small patches for Hydrogen previously. With a classical "scratch > your own itch" approach to development, I would like try fixing some of the > problems that I'm having using the program, but are not on the roadmap that > Alex laid out. Perhaps it seems like I'm taking my hands too full --- but > really, I don't think It's that bad, *and* if I could get it to work, it'd be > dead cool (H) > > I'll need some tips along the way though, and it would be nice to get > feedback > before I start to write code! Here's what it's all about: > > My first interest in Hydrogen is the timing and synchronization with other > JACK apps --- Ardour is, of course, the first reference when it comes to > JACK, and another one I really want to use together with Hydrogen is > Freewheling ( a wierd / wonderful live looping application ). The first > patch I wrote for Hydrogen already made it possible to accept changes in > tempo > and song position from the JACK transport system, and that seems to work o.k. > right now, at least with Ardour. > > Along the same line, I would like to try to enable Hydrogen to *send* these > messages to other JACK apps ( in JACK, an application can be either `slave' > or `timebase master'. Hydrogen acts as `slave' when the `Jack Transport' > button is active, and I would like to add a `master' option as well ) but > this is when I get into some problems that I think have to do with the > *fundamental design of the timeline* in Hydrogen, and, as far as I can tell, > the internal representation of this timeline will have to change > fundamentally, in order for me to succeed in adding the extra option... > > The problem is that Hydrogen doesn't really know the length of a `bar'... It > just knows the Patterns and PatternGroups. The latter are collections of > Patterns that start at the same time, and they are the columns in the "song > editor" part of the UI. If every pattern is 4 beats long, and the song is in > 4/4, it works great, and the PatternGroups are the barlines --- I'm guessing > this is what happens in 95% of the use cases. > > The trouble start when: > * Patterns of different length are inserted in the same PatternGroup. Then > the > behaivour of the program seems a bit random... It doesn't crash or make ugly > noise, but some patterns are cut off, or silence is inserted, somehow. > * If there is a two-bar pattern in one PatternGroup, and a one-bar pattern in > the next, the two-bar pattern only takes up one `bar' in the UI, which, I > think, seems illogical and buggy... > > To remedy all this, I *just about* figured out a way of storing the starting > times of patterns in a song in a way that it's o.k. if patterns are not the > same length, and one pattern can start in the middle of another one playing. > AND the sequencer will know which notes / patterns to play at any given time. > > When I start messing with all this, the entire program will of course stop > working at first, and It'll have to be repaired everywhere where the timeline > information is accessed... What I fear the most is the parts of the program > that I *don't know* interact with the timeline. I foresee trouble in these > three places: > > 1. The UI, where patterns are inserted into the song > 2. The Sequencer, that plays each note from each pattern in the song and > 3. The file format writer and reader, that also need to know the song > structure!! > > I want to know if I missed any? I also wonder if anyone is up to attacking > this, or at least giving me some hints -- I guess there are plenty of other > things to do before the long-awaited 9.4 release!! > > I think that making the changes I suggest could make Hydrogen a more musical > program, and also make the code easier to maintain, and maybe even faster. > > Well, think about it anyway, and have fun ;-) > see you > > Jakob Lund, Ollerup, Denmark. > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Hydrogen-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/hydrogen-devel > > ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Hydrogen-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/hydrogen-devel
