Alexandre Ratchov <a...@caoua.org> wrote:

> I use OpenBSD to record music (audio and midi, combined), with the
> following hardware:
>
>  - a Roland XV-2020 syth module (umidi)
>  - a Behringer BCF-2000 control surface (umidi)
>  - a Studiologic SL-900 midi keyboard
>  - a ESI Julia card (envy)
>  - a 1.8GHz Pentium 4 with 256MB of RAM
>  - an analog mixer with mic-preamp and reverb
>
> I use midish as the main sequencer. MIDI parts (ie the syth) are
> recorded/played as simple tracks in midish. Audio tracks are simple
> wav files handled by an aucat slave process controlled by
> midish. I.e. midish issues all start/stop/relocate commands while
> sndiod keeps the whole thing synchronized using MTC/MMC.
>
> Additionnaly, I create a dedicated "mixer" track in midish where I
> record volume automation for the audio tracks played with aucat.
>
> Once everything sounds ok, I record the mix of synth tracks into a
> single wav file and I mix all audio tracks together to get the final
> mix into a single wav file that I compress with oggenc or lame.
>
> I don't use softsynths very often, but if I do, I use a midi thru box
> (additional -M option to sndiod) to make it look like a midi device so
> midish can use it. I record the softsynth output with "-mmon" option
> of sndiod.
>
> I don't edit & tweak the music off-line too much since I consider that
> I should at least be able to properly play the music I'm trying to
> record...
>
> To summarize:
>
> # the server setup
> sndiod_flags="-M -z480 -b960 -frsnd/0 -r48000 -sdefault -tslave -smmc"
>
> # command to play/record audio tracks
> aucat -fsnd/0.mmc -qmidithru/0 -tslave -r48000 -i track1.wav ...

Why is the extra "-t slave" needed to play audio tracks when
the sub-device (mmc) is in slave mode already?
Is there other software from packages that can be controlled this way
(start, stop, relocate)?
Also, when using your setup and leaving out the "-t slave" the track
can be started from midish using the "p" command, but it only plays 
for a second or so and then stops.

$ aucat -fsnd/0.mmc -qmidithru/0 -i song50.wav  -d 
snd0: playing s16le,0:1,44100
snd0: block size is 480 frames, using 27 blocks
starting device
server relocated to 0
wav(wav0)/run: stopping
snd0: closing device

Regards,
Dirk

> # midish configuration
> dnew 0 "rmidi:3" rw           # synth
> dnew 1 "rmidi:2" ro           # keyboard
> dnew 2 "rmidi:1" rw           # control surface
> dnew 3 "midithru/0" wo                # slave aucat wav player
> dnew 4 "snd/0" rw             # sndiod
> dmtcrx 4                      # use dev. 4 as MTC clock source
>
> Ah.. last point, not necessary, but I build sndiod with
> COPTS='-DADATA_BITS=24' to get end-to-end 24-bit precision.
>
> HTH
>
> -- Alexandre

Reply via email to