> That being said, there's a number of itches to scratch before I can totally
> dump FL and use this great software. Luckily I'm also a C++ programmer, so
> I've decided to write some code.
>

Toby and I will have to review it, it sounds like some of these
features are indepth.

> I've extended the 'note' class to keep track of the channel the note is tied
> to, and added a new button to the piano roll toolbar which displays a color
> for it's icon. Clicking it gives you a menu of the 16 inputs (each have
> colors which are provided by the current LmmsStyle).

This makes sense conceptually as long as the UI isn't too complex, also:

> Normally when notePlayHandle sends the midi out events for NoteOn, NoteOff,
> Volume etc, it uses the midi output channel configured in the
> InstrumentTrack's MidiPort. I changed this to use the new channel getter of
> the 'note' type, and added a check for outputEnabled() on the midi port to
> change the port to the output port (so it's either/or).

As long as the user can still use the MidiPort's channel to specify
the "default". For when per-note-channels is not desired.

> I don't think this makes sense though. I don't really understand why all
> instrument plugins *have* midi out ability. In FL studio afaicr you could
> use a special Midi Out instrument, and any instrument could take midi *in*.
> The question with LMMS' setup is: when midi out is enabled, do we duplicate
> the events to send out so that the VST (or other instrument) gets the events
> *as well as* whatever controller listens on the midi-out port, or don't send
> the events to the VST (which would seem silly). Either way, with the
> exception of chaining instruments or reusing the midi data from the VST for
> some other purpose, it doesn't seem that useful.

Yeah, it was odd to me at first too,  AFAIK, the note is sent both to
the MIDI and to the LMMS-Instrument when MIDI-Out is set.
Having support for both _could_ be handy perhaps if you are in a
situations where your hardware synth is unavailable. But, I don't use
external synths so I wouldn't know.

> Apart from hearing from you guys on how that situation should be handled, my
> changes toward this goal are almost complete. One of the last things to do
> is update the FLP import to support multiple notes, but I'm not sure how
> well that will turn out (I'm guessing the FLP documentation isn't very nice,
> but so far a lot of the bits needed for what I've done were there, but not
> hooked up yet) so we'll see. I have some other obligations but I should
> tentatively be able to deliver a patch in a week or so.

Yes, the FLP import is totally reverse engineered I believe.  However,
there are definitely cases in the code that are exposed but just not
handled.

> Another feature I'm hoping to look into is that to get the step sequencer to
> be capable of making beats longer than a single measure. Changing the time
> signature currently changes the amount of beats in a beat pattern but that's
> not really a solution.

Don't bother with this.  I already have it planned in our Song-editor
rewrite.  Every Beat-line will have an explicit time-signature and
length associated with it.

> Finally there are some general bugs I'd like to try to fix (or at least
> point out). Both the stable version I got from Canonical's repos and the
> latest git have an issue which causes clicks on the inner window borders to
> not update Z layering, so you can move and interact with the window but it
> will not raise above any other inner windows.

Not familiar with this one.  What version of Qt are you using?

> Also, the shading which is supposed to indicate beats per measure on the
> step sequencer is static, so when the time signature is changed, it does not
> update to use groups of 3 or whatever you have selected.

This is a huge undertaking actually.  And it is currently being
handled by my new song-editor code as well.  The song now has a
metric-map associated with it. This stores Meter and Tempo changes.
This way, song editor can be displayed in linear-time, and timesig and
tempo changes can be displayed with the TimeLine-widget.

> One more: when you use the File menu when the shiny new get started screen
> is shown (nice, btw), sometimes that screen will not be hidden when it
> should. I don't know about File->Open, but File->Import shows this behavior
> (I'm guessing that stuffs pretty new though, so I wouldn't expect it to be
> perfect and it's very minor.

Yes. I noticed this as well.  You have to do "import" first, then
"new" which will close the window.  This is certainly a bug.

> I'm excited to help with this project! Any advice/gotchas or pointers to
> extended documentation on the underlying architecture of LMMS would be
> appreciated. I scanned the wiki but I see the documentation is mostly
> related to using it and getting started with development rather than
> documenting the system architecture (well I guess I could help with that too

I'm excited about new developers ;).  I have a few documents.  I'll
try to move them to the Wiki. In the meantime, I recommend hanging out
in our IRC channel.

=Paul

------------------------------------------------------------------------------
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
LMMS-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lmms-devel

Reply via email to