On Thu, 2007-02-22 at 06:42 -0600, Jan Depner wrote:
> I can say that the QT package is much easier to use and has
> better documentation and support. Not that GTK is terrible, it's just
> not as polished or professional.
the enemy of the good is the better.
i, for one, used the past 3 days to write a python module named
"audiogui", which provides widgets to mimick the look and feel of
traditional audio hardware panels (i dare you to start an audio ui
design war with me). it will be the base for providing an engine which
renders panels from stylesheets, to be used with plugins of aldrin - but
of course that whole thing could be connected to an OSC library and
control any DSSI host.
the basic idea was to imitate the design seen from native instruments
plugins and propellerheads reason. of course i'm damn proud that the
results look so well ;)
here is a demo showing the three widgets DecoBox, Knob and LCD, with
different settings applied.
http://www.paniq.org/images/audiogui5.png
in case you want to play with it, the module is based on PyGTK+ and
Cairo, and can be checked out from the aldrin svn.
http://svn.zeitherrschaft.org/aldrin/trunk
you find the scripts in share/aldrin, they are named audiogui.py and
lcdfont.py. run audiogui.py for above demonstration.
--
Leonard Ritter
-- Freelance Art & Logic
-- http://www.leonard-ritter.com
Hi!
I nearly finished alsaseq driver for jackmidi, but have a problem.
Alsaseq reorders events in fast sequences, so note-on/note-off pairs got mixed.
The algorithm of sending is simple:
snd_seq_ev_schedule_real(&alsa_event, output_que, 1, ×tamp);
frame_time = jack_frame_time(self->jack);
frame_offset = event.time - frame_time;
offset = ((long long)frame_offset) * 1000000000 / rate;
timestamp.tv_sec = (long) (offset / 1000000000);
timestamp.tv_nsec = (long) (offset % 1000000000);
snd_seq_event_output(self->seq, &alsa_event);
Here are the traces of what is going on:
jackmidi_alsaseq reads events from external midi interface and send
them to another midi interface.
Log shows what is being sent to alsaseq and when. Output format is:
[event] at [event.time] ([frame_time] + [frame_offset]) (+[offset]ns)
c0ff@ace ~/src/jack/alsamidi $ ./jackmidi_alsaseq
port created: in (20:0) MIDI 1
port created: out (20:0) MIDI 1
port created: in (24:0) USB Trigger Finger MIDI 1
port created: out (24:0) USB Trigger Finger MIDI 1
port_event: ADD 130:0
port created: out (130:0) aseqdump
90 4e 7f at 86646526 (86622198 + 24328) (+506833333ns)
80 4e 40 at 86649830 (86622200 + 27630) (+575625000ns)
90 4e 7f at 86654006 (86622201 + 31805) (+662604166ns)
80 4e 40 at 86656795 (86638582 + 18213) (+379437500ns)
90 4e 7f at 86660562 (86638584 + 21978) (+457875000ns)
80 4e 40 at 86663502 (86638584 + 24918) (+519125000ns)
90 4e 7f at 86666819 (86638585 + 28234) (+588208333ns)
80 4e 40 at 86669453 (86638585 + 30868) (+643083333ns)
90 4e 7f at 86673078 (86654965 + 18113) (+377354166ns)
80 4e 40 at 86676430 (86654966 + 21464) (+447166666ns)
90 4e 6f at 86678638 (86654967 + 23671) (+493145833ns)
80 4e 40 at 86680654 (86654968 + 25686) (+535125000ns)
We can see that all events go strictly in order (their frame_time is
monotonically increasing). Frame offsets are so big, because it runs
under jackd -d dummy -p 16384.
At the same time, aseqdump is hooked to jackmidi_alsaseq output port:
c0ff@ace ~ $ aseqdump
Waiting for data at port 130:0. Press Ctrl+C to end.
Source_ Event_________________ Ch _Data__
0:1 Port subscribed 128:5 -> 130:0
0:1 Port subscribed 128:2 -> 130:0
128:2 Note on 0 78 127
128:2 Note off 0 78 64
128:2 Note off 0 78 64
128:2 Note on 0 78 127
128:2 Note on 0 78 127
128:2 Note on 0 78 127
128:2 Note off 0 78 64
128:2 Note on 0 78 127
128:2 Note off 0 78 64
128:2 Note off 0 78 64
128:2 Note on 0 78 111
128:2 Note off 0 78 64
We see, Note on/Note off events are mixed.
Your suggestions, please.
Regards,
Dmitry.
P.S. Not wanting to start a flame war, but it is exactly the case, why
it's better for jackmidi driver to use as lower-level interface as
possible - less problems, more control.
P.P.S. alsa-devels, if you reply, please CC me, i'm not subscribed.
With ongoing preparation to "Integrate End User and Developer Resources
at linuxaudio.org" (workshop @ LAC2007) we are proud to announce a first
version of Dave's linux-sound application index as public-wiki:
http://apps.linuxaudio.org/
this is by far no cute end-user resource portal yet, but a first
step in merging data and setting up a prototype back-end!
We are looking for interested people to contribute at various levels and
suggest to use the mailing list for general discussion while keeping
dokuwiki and style related requests at
http://apps.linuxaudio.org/wiki:open_discussion
Further [major] back-end development on http://apps.linuxaudio.org/ will
probably not happen until LAC2007, but we are interested to tweak the
look and feel, fix bugs, and collect feedback.
We're also looking for qualified LAU's and LAD's to verify and maintain
the current content with editor privileges, responsibilities and deeds.
next up: docs.linuxaudio.org:
- static documentation (docbook, LateX, [x]html)
- slides and presentations (PDF, ps, png jpg,..??)
- music (collaborate with or outsource to freesound et al.)
- include (external?) video presentations, movies, etc
- source code (coding examples: wiki-page; svn-mirror/server ??)
for each hosted documentation there will be an option for user
annotation(s). eg. wiki-discussion page, blog-comments,
email-notify[-mailing-list]? - some of it will be merged with
apps.linuxaudio.org which will provide automatic indexing; details
remain to be discussed.
some of the intended supported formats imply moderation / maintained
upload or installation of static documentation. - the ring of
maintainers could evolve with key-signatures, and parts of the system
may become completely open. - suggestions:
http://apps-devel.linuxaudio.org/wiki:suggest_doc
ico & robin