On 20.05.2017 12:22, Francesco Ariis wrote:
Hello audio users,
this is a "I have a .mid and I want an .ogg", Aeolus edition.
Longer version: I use Aeolus organ emulator with my midi keyboard and
it works like a charm.
Today I wanted to grab a midi file and make Aeolus play it, recording
the result in an ogg. I managed to do it but boy it was cumbersome;
here is what I did:
1. aeolus -A
2. aconnet 14 128 # midi through to aeolus
3. fire up alsamixer and switch CAPTURE from Front Mic to Stereo
Mix
4. arecord foobar.wav
5. aplaymidi -p 14 somemidi.mid
Lots of plumbing to do! I am particularly not happy with step 4
(alsamixer)
because I have to do it manually and I cannot just put it in a bash
file.
So I ask to you: "is there a simpler way"? Thanks in advance
Not exactly simpler, though scriptable. For sure there's many ways to do
this, here's one example that uses Jack for MIDI and audio.
The only manual step involved is to select stops in aeolus, though that
could be automated by selecting a preset via MIDI (haven't tried that
part).
# start aeolus without the -A option (defaults to Jack)
aeolus &
# start a jack-MIDI aware smf file player like jpmidi or jack-smf-player
from jack-smf-utils
jack-smf-player -n foo.mid &
# give a little time for ports to show up
sleep 5
# using ecasound as a jack-aware command-line recorder
ecasound -i jack -o foo.ogg &
sleep 1
# ==== make connections in jack
# == midi
jack_connect 'jack-smf-player:midi_out' 'aeolus:Midi/in'
# == audio
jack_connect 'aeolus:out.L' 'ecasound:in_1'
jack_connect 'aeolus:out.R' 'ecasound:in_2'
# not required but you might want to listen
jack_connect 'aeolus:out.L' 'system:playback_1'
jack_connect 'aeolus:out.R' 'system:playback_2'
sleep 1
# make sure to locate transport TL to zero
echo locate 0 | jack_transport
# start jack_transport
echo play | jack_transport
# ..recording..
best,
-david