Re: [ANN] ALSA MIDI Humanizer v0.0.1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Stephen Cameron wrote:

--- Cesare Marilungo <cesare@xxxxxxxxxxxxxxxxx> wrote:
ALSA MIDI Humanizer is a tiny application that route MIDI events between two applications adding random timing and velocity offsets to NOTEON and
[...]
For the developers reading this list: at the moment the code is just a quick hack. I didn't know anything about ALSA develpment, the GTK+ toolkit and linux threads until this morning when I've started studying some tutorials (used the midirouter.c code from the ALSA tutorial by Matthias Nagorni as a starting point). So, be kind.

Comments and suggestions are highly appreciated.

Interesting idea, though I'm not sure adding random delays
really "humanizes" things.  Of course I realize this is mostly
something you've put together as a learning exercise.  BTW,
in case you're interested in reading some ramblings of another
beginning ALSA MIDI programmer (me), you might check out this:
http://www.geocities.com/smcameron/linux-audio-notes.html, which
is kind of a log I've kept for the last year or so.

Maybe there are some interesting links in there, if nothing
else, or maybe some humor at my expense, LOL.

For a humanizing type feature of my drum machine application,
I added a per instrument (per note, really, as MIDI drums
instruments are mapped to notes) feature that allows a particular
instrument to "drag" or "rush" which is to say, fire off a little
late, or a little early.  My implementation is a little buggy, in
that when dragging or rushing causes an instrument to slip across
a measure boundary, things get a little squirrelly, but the idea
is there.  I got that idea from reading a little instructional book
about playing the drums, I guess it's common practice among drommers to keep some important instruments in fairly strict time, while kind
of messing about with some others.

I guess for a filter app, "rushing" is not really possible, without
a time machine, though "dragging" every other instrument would amount to the same thing, plus insertion of latency.

-- steve


__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com

Thank you for your suggestions, Steve!

Yes, I'm writing it also as a learning exercise but I plan to actually use it. I've always used this kind of functionality in cubase.

And yes, "rushing" is not possible without a timemachine. :-) It could be done inside a sequencer, reading ahead.

Another problem that should be solved is that with the current implementation a noteon event that has been randomly delayed too much can happen after the noteoff.

I've also planned to add the possibility to have more channels, each with its own settings. But it would be interesting if I can define some filtering rules (like notes and velocity ranges) for each channel. This is easy.

Give me some time. It's just version 0.0.1! Don't they say to release early?

c.

--
www.cesaremarilungo.com


[Index of Archives]     [Linux Sound]     [ALSA Users]     [Pulse Audio]     [ALSA Devel]     [Sox Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux