At Wed, 12 May 2004 12:16:37 +0200,
Alessandro Rubini - FSFE wrote:
>
>
> Sorry for the delay; we, as FSFE, as currently involved in the patent
> issue and other ones, and time is always too little.
>
> I write as FSFE member, after checking with other members, although we
> don't have an official position about the firmware issue, yet.
>
> Andrea Glorioso originally wrote:
> > My personal position is one of being a bit more pragmatic. A large
> > part of the hardware we use actually has firmware embedded into it,
> > the only difference being that we don't see it and we don't need to
> > upload it
>
> Takashi Iwai summarized:
> > 1. is the firmware binary is a program or a data?
> > 2. can we force the h/w vendor to show the source code under GPL (if
> > exists) in practice?
> > 3. if not, shouldn't we change the license to the non-restrictive one?
> > which license would be feasible?
> >
> > so far, alsa-firmware package is released from the understanding of 1
> > as "data". but if someone insists it as program, yes, it can be a
> > problem.
>
> Andrea again:
> > I might be wrong, but my guess is that if a piece of data is
> > absolutely necessary for a GNU GPL program to work, then that data
> > should be distributed together with the program at the same
> > conditions of the GNU GPL (otherwise the GNU GPL itself could be
> > very easily bypassed).
>
> Fernando Pablo Lopez-Lezcano:
> > I tend to look at it (very conveniently, of course) as neither. I view
> > it as part of the hardware device we're dealing with. Without it the
> > device does not work. It is distributed as a separate file (inside the
> > driver disk that actually comes with the device) because it is
> > convenient for the manufacturer for updates, avoiding a flash rom in the
> > device, and so on and so forth.
> >
> > Most probably very few people will agree with this viewpoint :-)
>
> Actually, I tend to agree with this view. But it's not easily supported
> outside of programmers' circles, so I'd leave it alone.
IMO, the only concern about saying "it's a part of hardware" is that
you can redistribute the firmware while you cannot do the hardware.
this is the basic difference between hardware and software.
> In my opinion we should treat firmware as data as far as the driver is
> concerned. That's similar to how emacs-lisp is data when loaded into OOo,
> and my own software is just data for the routers that bring it to my
> clients. [no example matches perfectly, they are exemplifications not
> demonstrations]
>
> Actually, a number of my drivers include plain binary arrays in the
> source files, and those arrays are just stored into register sets to
> bring the device up in a known and default state. The binary firmware
> is no different in the context of the GPL'd code.
>
> I don't buy the objection that "such binary blurb is software in
> another context", since in the context of the GPL driver it is not.
> Sure it is a work subject to copyright, but it is a different work;
> saying that we need source to that in order to fulfill the GPL doesn't
> look sensible to me [sure it would be _great_ to have that source, but
> it's another issue altogether].
>
> In my opinion, what is relevant as far as the GPL is concerned, is
> that the author of such binary blurb allows it to be modified at will
> in the form relevant to our free driver (i.e., data). I can change
> such data, so the GPL is satisfied (and my hardware won't work any
> more). It is the same with register default values: you can change
> them if you want your hardware to not work, and you don't ask for
> their source. The preferred form of modification for binary data is a
> binary editor or a text editor over the hex representation, no problem
> here.
fully agreed.
> This isn't a loophole of the GPL: if someone writes a GPL'd kernel
> module that executes its own data, then _that_ module is not compliant
> to its own license, since such data is actually code in disguise, and
> is integral to the driver according to copyright law (they are one
> work, acting as a driver).
>
> But with firmware, the GPL'd work is the driver, not the internals of
> the hardware. So binary or hex is the preferred form of modification
> for such data. What's important is being able to duplicate, study and
> port the driver to other operating systems, not being able to study
> the firmware to port it to other audio cards.
yes, the execution of the given data is a key point.
imagine that you give an example MIDI file to your application
released under GPL.
MIDI is a data, but it's also a kind of program, too -- it's the list
of pattern sequences to drive the MIDI devices with the programmed
timing. then, must the source of this MIDI file be provided as human
readable?
--
Takashi Iwai <tiwai(a)suse.de> ALSA Developer - www.alsa-project.org
Hello all,
The first release of FIL-plugins is now available at
<http://users.skynet.be/solaris/linuxaudio>
There's one plugin in this first release, a four-band parametric
equaliser. Each section has an active/bypass switch, frequency,
bandwidth and gain controls. There is also a global bypass switch
and gain control.
The 2nd order resonant filters are implemented using a Mitra-Regalia
style lattice filter, which has the nice property of being stable
even while parameter values are being changed.
All switches and controls are internally smoothed, so they can be
used 'live' whithout any clicks or zipper noises. This should make
this plugin a good candidate for use in systems that allow automation
of plugin control ports, such as Ardour, or for stage use.
--
Fons
hi...
i just wanted to announce the release of galan-0.3.0_beta6.
This release has vst(i) support through libfst.
So if you ever wanted to wire up networks of vst plugins and
instruments, you can do this now.
fst is available here:
http://linuxaudiosystems.com/fst/fst-1.5.tar.gz
we have some issues with the embedding of windows into the app.
it will work if you set managed = "N" in your wine config.
and it will work with IcwWM and fluxbox.
for other windowmanagers i cant tell.
i hope to find this issue so that it works with every windowmanager
soon.
and for those who dont know. gAlan is a mixture of pd and reaktor.
there is eventprocessing, and there are two windows: one for the
schematics and one for the controls.
in the controls window you can have several panels with custom
background images. look here for an example of an instrument built with
gAlan:
http://galan.sourceforge.net/anti-aliased-knobs.png
galan supports subpatches. and polyphony is already possible (but i will
refine that a lot in the future)
the documentation is not very good, and the example patches are a little
old.
but i hope the stuff which you can add from the Lib/ menu gets you
started quite easyly.
the download page is here:
http://sourceforge.net/projects/galan
--
torben Hohn
http://galan.sourceforge.net -- The graphical Audio language
Hi,
I recently tested two audio/multimedia oriented linux live cds (namely
Dyne:bolic 1.2 and Agnula LAM edition), and was rather disapointed to
see that alsa was only partly shipped on those distributions. The
alsa-tools and alsa-firmware packages were lacking, which renders some
cards useless (e.g. the RME hdsp Multiface and Digiface cards need to be
fed with a binary configuration data file found in alsa-firmware, using
hdsploader, to be found in alsa-tools - without this operation those
cards will simply not work).
Thomas
Hi,
As a service to all readers, here's an excerpt of the Changelog concerning
latency: ;)
<akpm(a)osdl.org>
[PATCH] Add mpage_writepages() scheduling point
From: Jens Axboe <axboe(a)suse.de>
Takashi did some nice latency testing of the current kernel (with -mm
writeback changes), and the biggest offender in general core is
mpage_writepages().
<akpm(a)osdl.org>
[PATCH] ia32: 4Kb stacks (and irqstacks) patch
From: Arjan van de Ven <arjanv(a)redhat.com>
Below is a patch to enable 4Kb stacks for x86. The goal of this is to
1) Reduce footprint per thread so that systems can run many more threads
(for the java people)
2) Reduce the pressure on the VM for order > 0 allocations. We see real life
workloads (granted with 2.4 but the fundamental fragmentation issue isn't
solved in 2.6 and isn't solvable in theory) where this can be a problem.
In addition order > 0 allocations can make the VM "stutter" and give more
latency due to having to do much much more work trying to defragment
<akpm(a)osdl.org>
[PATCH] reiserfs: scheduling latency improvements
<akpm(a)osdl.org>
[PATCH] unmap_vmas latency improvement
unmap_vmas() will cause scheduling latency when tearing down really big vmas
on !CONFIG_PREEMPT. That's a bit unkind to the non-preempt case, so let's do
a cond_resched() after zapping 1024 pages.
So... humbly asking, is it time yet to make the switch? :-)
/Robert
Hallo,
first ZKM pics:
http://footils.org/cms/pydiddy/wiki/LaConf2
Mostly showing just me on stage, but one also has the audience,
composed of among others Joern, Victor Lazzarini, Guenther Geiger,
Frank de Pol (l. to r.)
Bad quality due to mobile photo-phone.
Ciao
--
Frank Barknecht _ ______footils.org__
Forwarding this to mailing lists where others may be interested.
>Envelope-to: luke(a)audioslack.com
>From: Vedran Vucic <vvucic(a)eunet.yu>
>To: audioslack-users(a)audioslack.com
>Date: Sat, 8 May 2004 13:44:53 +0000
>
>Dear colleagues,
>
>A good friend of mine started project creating open audio card and possibly
>he is interested to find people who can maybe contribute to idea of opencores
>and open hardware having in mind that his project is related with audio
>recording and editing.
>
>www.opencores.org/projects.cgi/web/fac2222m/overview
>
>I think that such an effort may be very important contribution to efforts all
>we are committed.
>
>Best wishes,
>
>Vedran Vucic
--
Luke Yelavich
http://www.audioslack.com
luke(a)audioslack.com
>From: Christian Henz <chrhenz(a)gmx.de>
>
>So far I've been using an Observer pattern
Are all these patterns described somewhere in the web?
People refers mostly to some book(s) but that is not
available for me.
>Surely one doesn't want the audio thread to execute widget redraws.
>So one has to de-couple these mechanisms, for example by defining
>event and update messages and passing those around by FIFOs instead
>of direct parameter manipulation / direct GUI callbacks.
The audio thread should not execute even indirectly any GUI code.
If you send commands from audio thread to GUI thread, the GUI
thread should not execute each command "as is". If the audio thread
sends commands at too fast rate and GUI thread processes each of them,
the system breaks. So, the de-coupling must happen at greater level
than at basic threading level.
I would set up the graphics engine to run at constant frame rate;
say, 30 frames per second which is enough for our eyes. Then I would
set the audio thread to send events at most at rate 30 times per
second. GUI thread should process as many events at a time as possible.
In practise, the fixed frame rate would be an upper bound for the
actual rate; rate could be 10 Hz if there is a lot of drawing --- that
is why the events must be processes in "as many as available" manner
and some multiple events may require skipping.
In simplest, the fixed rate GUI could peek at the variables of
the audio thread; no FIFO.
Using any frame rate bound in non-video-player applications is something
I have not seen before. I use this kind of fixed frame rate in my little
experimental painting software. E.g., GIMP don't work that way.
-*-
How Ardour and other realtime applications do it? What if one uses
a volume meter plugin with small buffer size? Would the plugin
be executed, e.g., 200 times per second and at each time would GUI
be changed? Not a good idea. Has this problem dealt in GMPI
discussions?
Regards,
Juhana