Age | Commit message (Collapse) | Author |
|
suggested by deraadt@
|
|
|
|
transparently. Multiple audio applications can be started
synchronously from external software/hardware supporting the
standard Start/Stop/Relocate messages. The server clock is exposed
through MTC, allowing non-audio software/hardware to be
synchronized to audio applications.
|
|
|
|
|
|
|
|
|
|
used aucat and midicat don't daemonize and log on stderr.
|
|
|
|
|
|
midicat crashing sometimes when -o is used
|
|
|
|
|
|
them to the MIDI thru box
|
|
from Thomas Pfaff
|
|
cannot cooperate with other programs. The aim of this change is
to allow any program to send midi data to other programs as they
were midi hardware. For instance, this change should solve the
longstanding problem of using a midi sequencer with software
synthesizers. More precisely:
- new midicat(1) utility (actually hardlink to aucat(1)).
it creates software midi thru boxes, allowing programs
to send midi messages to other programs as they were
midi(4) hardware.
- new midi api in libsndio (see mio_open(3)), to access
midi(4) devices and midicat(1) sockets in a uniform way.
- new device naming scheme <service>:<unit>[.<option>],
common to audio and midi.
- new sndio(7) manual describing concepts and naming
The current audio device naming still works, but people having
scripts or configuration files containing device names could read
the sndio(7) man page and slowly start updating device names.
discussed with jakemsr@ and deraadt@, help form jmc@
|
|
|
|
- grammar fix for the server section
from Thomas Pfaff
ok ratchov
|
|
|
|
than exit()ing with ``too many open files'' fatal error
|
|
ok jakemsr
|
|
permissions 0700, and create sockets in it. This prevents
one local user to eavesdrop or disturb audio programs of
other users.
if you're using the ``-s socket'' option with an absolute
path as argument, please update it to use a socket name.
requested by many, bits from jakemsr and otto
ok jakemsr
|
|
requested and explained by fgsch@, henning@, otto@
|
|
properly closed and sockets are cleaned up.
|
|
|
|
This is useful to mix, demultiplex, resample or reencode audio
files off-line.
tweak + ok jakemsr
|
|
structures so we can keep a pointer to the device. Beside some
simplifications, this allows to easily handle the situation
where the audio device desappears. No change in the behaviour.
|
|
|
|
This removes the arithmetic constraint between the sample frequency
and the block size and all the associated code. Now aucat can work
in server mode with any block size.
ok jakemsr
|
|
as default device input. That's what the man page says
|
|
parameters; without this change aucat uses the device default
parameters and they are not necessarily usable for multi-stream
mode.
|
|
- condense EXAMPLES into a single screenful
ok ratchov
|
|
|
|
it can be used on play-only, record-only and half-duplex devices.
ok jakemsr
|
|
channel and volume settings allowing multiple configuration to
coexist. Mostly useful for envy(4)-like devices, but can be used
to force different apps to use different settings.
|
|
parameters. No functional change.
|
|
server mode. It gives the maximum volume a client may have. This wastes
dynamic range, but allows volume to stay constant when other clients
connect or disconnect.
|
|
for ``AUTOQUIT'' first, and then call file_eof() and friends.
fixes crashes sthen@ noticed on zaurus
|
|
destroyed. If this happen then warn and exit, rather than crashing.
|
|
the hackish {MIX,SUB}_AUTOQUIT features. This way we don't
have to care about possible references on destroyed objects.
|
|
the {MIX,SUB}_AUTAQUIT features. In this case we're not
allowed to directly touch dev_mix and dev_sub because they
can disappar. So disable the ``suspend'' and ``quit'' bits
when {MIX,SUB}_AUTAQUIT are used.
|
|
The code will be useful later for the volume knob in the sndio API.
|
|
way, when in server mode, it consumes no CPU if there are no clients.
Later, this will allow to start aucat(1) at session or system startup.
|
|
From Thomas Pfaff <tpfaff _at_ agderlink.no> and tweaks from me
|
|
and thus remove the ugly rate <-> block-size table from
sio_setpar(3). Handle the block size negociation in aucat(1), since
it has few constrains the code is overally simpler.
ok jakemsr@, major crank suggested by deraadt@
|
|
inside the mixer and the demultiplexer. This way, aucat will not
trigger the heavy conversion code when only channel conversions are
required. Cuts ~50% of the CPU usage on envy(4) devices, can improve
surround 4.0, 5.1 and 7.1 capable devices. No functionnal change.
|
|
requested by jmc@
|
|
|
|
mode, it listens on an unix socket and mixes/demultiplexes any number
of full-duplex streams, doing necessary format conversions and
resampling on the fly.
programs can use the new libsa(3) library to play and record audio.
The library provides a very simple API to connect to the audio server;
if aucat(1) isn't running, it uses the audio(4) driver transparently
instead.
|
|
ok ratchov@
|