Age | Commit message (Collapse) | Author |
|
from jmc
|
|
options.
|
|
|
|
the old midithru implementation; less code, less bugs. As a side
effect, midi output doesn't implement running status "compression"
any more.
|
|
dev. Allows volume settings to be saved while the device is kept
closed. Besides that, no behabiour changes.
|
|
single aucat instance to handle all audio and MIDI services. Since
this partially breaks compatibility, this is a opportunitiy to fix few
other design mistakes (eg ':' being used by inet6, type name vs api
name confusion, etc..). This leads to the following names:
type[@hostname][,unit]/devnum[.option]
The device number is the minor device number for direct hardware
access (ie the 'N' in /dev/audioN). For aucat, this is the occurence
number of the -f (or -M) option.
There's a compatibility hook to keep old names working if only one
aucat server is running.
|
|
|
|
|
|
with almost the same syntax (roughly an extra -M option).
Thru boxes are created with aucat, and corresponding MIDI port
names have the "aucat" prefix instead of "midithru". The old
device name will still work some time for backward compatibility.
ok deraadt
|
|
- sort usage() for midicat
- tweak a bit of unclear wording
ok ratchov
|
|
of code that becomes unused. Few command line arguments changes are
required though:
- stream definitions (-ios) now must follow devices definitions they
are attached to (-fMn)
- the -n option is now a special "loopback" device and is thus used
like -f, eg it must precede streams
- in midicat, midi thru boxes are not created automatically anymore,
the new "-M" option must be used for that
- channel numbers (-Cc options) correspond always to channel numbers
of the hardware.
- the -u option isn't needed anymore
- increase the log verbosity so user errors are logged
without using -d
tested by many, help from jmc
|
|
|
|
stays closed also if -q is used. As we're at it, add -a to midicat so
it behaves like aucat.
|
|
quality to save bandwith when a remote audio device is used.
|
|
No behaviour change.
|
|
adjusted when new streams are connected and disconnected. Disabling
automatic volume adjustment makes sense if all streams are recorded
with properly lowered volumes.
|
|
from peters at schwertfisch.de, thanks!
|
|
work over TCP, for instance, to expose the sound card of one machine
with other machines of the network.
The first client generates a 128-bit random number (aka the
session cookie), saves it in $HOME/.aucat_cookie and sends it to the
server. Successive clients load the cookie from $HOME/.aucat_cookie
and send it to the server but the server accepts only clients whose
cookie matches the session cookie. When all clients are gone, the
session is over, and another cookie could start a new session, and so
on.
TCP is enabled on the server with the new -L option, and on the client
side hostnames are specified with a new optional component in the
device name.
hints from damien, dlg and deraadt, tweaks from jmc
|
|
requested by deraadt
|
|
ok ratchov
|
|
be free()ed, iterate over the file_list, and find the structure
to free. This is safer and simpler. No behaviour change
|
|
macros instead of hardcoded strings. No object change
|
|
|
|
|
|
AMSG_xxx macros, which in turns simplifies the code
|
|
is not a proper error message.
|
|
fix NULL vs 0, etc. No behaviour change.
|
|
used as filename
|
|
|
|
no connections anymore.
|
|
if no files are given on the command line
|
|
|
|
difference between audio files and client connections. Clean up
the way command line options are handled and clarify this in the
manual page: stream parameters (-Ccehjmrtvx) must precede stream
definitions (-ios) and per-device parameters (-abz) and stream
definitions (-ios) must precede device definitions (-f). Since
there's no ``server'' and ``non-server'' modes anymore, make the
-l option just detach the process.
ok and help from jakemsr and jmc
|
|
don't check if the midi control interface is idle
from ratchov
|
|
results in a use after free(). Catched by jakemsr@ with MALLOC_OPTIONS=J
|
|
open the device input-only if -o is used, and output-only if -i is
used).
|
|
complicated. Instead, request clients to provide enough samples
and start with buffers full.
|
|
Add a new ``initial position'' message which is simpler. No bahaviour
change, except effects of the protocol version crank.
|
|
This is necessary for uaudio devices, for instance to start aucat
before the device is plugged. Or to unplug a device whithout
having to restart aucat when another device is plugged. This is
controlled with the new -a option.
Allow multiple audio devices to be used concurently, i.e.
multiple ``-f devname'' options to be used; -f options must follow
per-device options, which is what we do for other options.
|
|
midi client could start it with empty buffers, in turn hurting
audio clients.
|
|
and different device states. Split initialization in two phases:
first global variables are initialized then the audio hardware is opened.
Allow devices that don't support full-duplex to work in play-only or
record-only mode, even if ``-m play'' or ``-m rec'' are not specified.
|
|
might result in extra samples being written to the device
when the mixer is closed.
|
|
|
|
from Thomas Pfaff, thanks
|
|
run by root, it binds a shared address to the socket, cranks the
process priority and drops privileges. sio_open(3) will try to
connect to the private socket first (if any), then to the shared
socket. Only one user may have connections to aucat at a given
time.
based on discussions with henning, pyr and others
ok jacek, deraadt
|
|
command line, instead of the device parameters.
|
|
expand channels (ex mono->stereo). It's switched on/off with
the ``-j'' option, (default is "on").
|
|
- make the ``-m mode'' option per subdevice, allowing
subdevices to be play-only or rec-only even if the
server is full-duplex
- add ``monitoring'' mode (with ``-m mon''). This is a
record-only stream from which played streams can be
recorded (kind of ``record what you hear'').
- allow MIDI devices to be subscribed to the controlling
MIDI port of the server, ie what midicat does (with -f
option), but using the -q option.
- add flow control to the protocol, and serialize clock
ticks (sio_onmove() calls) and data chunks. This should
fix certain full-duplex programs, broken with ``magic''
block/buffer size combinations.
- enable 3 block latency which is the minimum theoretical.
Make -z and -b options correspond to device parameters.
- make sio_getcap(3) the same for aucat and sun backends,
ie return whatever is supported (``everything'' in the
aucat case, since everything is actulally supported).
aucat (player):
- enable ``-m mode'' option to select between monitoring
and recording when ``-o file'' is used.
- plug MIDI code to non-server codepath. The MIDI control
device is specified with the ``-q device'' option, as in
server mode.
- impliment lseek()'ing within files (controlled
through MIDI). Necessary to use aucat with a MIDI
sequencer.
midicat (thrubox):
- rename ``-f'' flag to ``-q'', so it has the
same name as in aucat (-f is still working)
ok jakemsr@, tweaks from jmc@
|
|
|
|
|