.TH aseqnet 1 "January 1, 2000"
.LO 1
.SH NAME
aseqnet \- ALSA sequencer connectors over network

.SH SYNOPSIS
.B aseqnet
[remotehost]

.SH DESCRIPTION
.B aseqnet
is an ALSA sequencer client which sends and receives event packets
over network.
Suppose two hosts connected by network,
.I hostA
as a server
and
.I hostB
as a client.
The ALSA sequencer system must be running on both hosts.
For creating the server port, run the following on hostA:
.IP "" 4
hostA% aseqnet
.br
sequencer opened: 128:0
.PP
Then a user client 128 with port 0 was opened on hostA.
(The client number may vary.)
For creating the (network-)client port, run
.B aseqnet
with the hostname of the server:
.IP "" 4
hostB% aseqnet hostA
.br
sequencer opened: 132:0
.PP
Now all events sent to hostA:128:0 are transferred to hostB:132:0, and vice
versa.
.PP
The ports created by
.B aseqnet
can be connected arbitrary to other sequencer ports via
.B aconnect(1).
For example, to connect hostB:132:0 to a MIDI output device 65:0:
.IP "" 4
hostB% aconnect 132:0 65:0
.PP
Then events to hostA:128:0 will be delivered to hostB:65:0.
The following command plays MIDI on
.I hostB.
.IP "" 4
hostA% pmidi \-p 128:0 foo.mid
.PP
The multiple clients may exist simultaneously.  If
.I hostC
is connected as a client to hostA, events from from hostA are sent
to all connected network clients, i.e. hostB and hostC.
However, only one connection is allowed from a client to a server.
.PP
To disconnect network, stop all clients before server by ctrl-C or
sending signal to them.  The server will automatically quit.

.SH OPTIONS
.TP
.B \-p port
Specify the TCP port number or TCP service name.
.TP
.B \-s addr
Subscribe to the given address for read automatically.
.TP
.B \-d addr
Subscribe to the given address for write automatically.
.TP
.B \-v
Verbose mode.

.SH "SEE ALSO"
aconnect(1), pmidi(1)

.SH AUTHOR
Takashi Iwai <tiwai@suse.de>.
