You are not logged in.

#1 2020-05-24 13:28:57

kamelie1706
Member
Registered: 2014-02-19
Posts: 176

[SOLVED] Create virtual midi device / hatari usage

Hi,

I am testing hatari emulator and its MIDI implementation.
The emulator uses input / outputs from /dev/snd/midiC*D* and not the logical alsa.

aplaymidi -l
    Port    Client name                      Port name
    14:0    Midi Through                     Midi Through Port-0

This is not visible for hatari or I missed the entry in the file directory, if so where should I find it?

Using alsa, an input is visible here when connecting a physical device (Roland SC8820 in my particular case) but I am struggling to find a way to create a connection with virtual synth such as Munt or Qsynth.

I read the instruction here but was not so helping
https://hg.tuxfamily.org/mercurialroot/ … -linux.txt

any idea?

Thx

Last edited by kamelie1706 (2020-05-25 21:19:19)

Offline

#2 2020-05-24 13:43:54

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,427

Re: [SOLVED] Create virtual midi device / hatari usage

As the instructions you linked to imply, you need to start the relevant virtual synth beforehand

Offline

#3 2020-05-24 13:45:38

kamelie1706
Member
Registered: 2014-02-19
Posts: 176

Re: [SOLVED] Create virtual midi device / hatari usage

Did that but no entry appears  in /dev/snd...

Offline

#4 2020-05-24 13:49:04

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,427

Re: [SOLVED] Create virtual midi device / hatari usage

... and load snd-virmidi which should create cards there (but if I'm reading that correctly it should be able to access the logical midi outs if it's compiled with portmidi/portaudio which the Arch package should be, but at least the in GUI possibilities really look quite bent on actual devices).

Last edited by V1del (2020-05-24 14:03:07)

Offline

#5 2020-05-24 14:32:56

kamelie1706
Member
Registered: 2014-02-19
Posts: 176

Re: [SOLVED] Create virtual midi device / hatari usage

Thx

I need to check if this module is loaded.

I believe the Hatari arch package is not compiled with port audio option. It returns an error when you try to launch it with —midi argument.

Last edited by kamelie1706 (2020-05-24 14:34:46)

Offline

#6 2020-05-24 16:13:46

kamelie1706
Member
Registered: 2014-02-19
Posts: 176

Re: [SOLVED] Create virtual midi device / hatari usage

So now I have virtual port set and visibile in /dev/snd

aconnect -l

client 0: 'System' [type=kernel]
    0 'Timer           '
        Connecting To: 128:0
    1 'Announce        '
        Connecting To: 128:0
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
client 16: 'Virtual Raw MIDI 0-0' [type=kernel,card=0]
    0 'VirMIDI 0-0     '
client 17: 'Virtual Raw MIDI 0-1' [type=kernel,card=0]
    0 'VirMIDI 0-1     '
client 18: 'Virtual Raw MIDI 0-2' [type=kernel,card=0]
    0 'VirMIDI 0-2     '
client 19: 'Virtual Raw MIDI 0-3' [type=kernel,card=0]
    0 'VirMIDI 0-3     '
client 128: 'PipeWire-System' [type=user,pid=1657]
    0 'input           '
        Connected From: 0:1, 0:0
client 129: 'PipeWire-RT-Event' [type=user,pid=1657]

ls -l /dev/snd | grep midi

crw-rw----+ 1 root audio 116,  2 May 24 18:48 midiC0D0
crw-rw----+ 1 root audio 116,  3 May 24 18:48 midiC0D1
crw-rw----+ 1 root audio 116,  4 May 24 18:48 midiC0D2
crw-rw----+ 1 root audio 116,  5 May 24 18:48 midiC0D3

How do I connect now the dots between fluidsynth and those virtual ports in alsa?

Request opened for having hatari compiled with portMidi support
https://bugs.archlinux.org/task/66764

Last edited by kamelie1706 (2020-05-24 16:59:45)

Offline

#7 2020-05-25 20:34:08

kamelie1706
Member
Registered: 2014-02-19
Posts: 176

Re: [SOLVED] Create virtual midi device / hatari usage

I think I can go around the midi connection here
https://tldp.org/HOWTO/MIDI-HOWTO-10.html

In munt situation is different I realize now that there 2 other midi ports munt allows as input
/dev/midi
/dev/midi3
hatari can be set to write there but nothing arrives to munt

I will dig the tldp article as I am not sure to master the difference between alsa raw and alsa seq ...

For later ref this the current setup
cat /proc/asound/cards

 0 [VirMIDI        ]: VirMIDI - VirMIDI
                      Virtual MIDI Card 1
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xf6080000 irq 118
 2 [Generic        ]: HDA-Intel - HD-Audio Generic
                      HD-Audio Generic at 0xf6800000 irq 120
 3 [SC8820         ]: USB-Audio - SC-8820
                      Roland SC-8820 at usb-0000:02:00.0-6.7.4, full speed

cat /proc/asound/devices

  1:        : sequencer
  2: [ 0- 0]: raw midi
  3: [ 0- 1]: raw midi
  4: [ 0- 2]: raw midi
  5: [ 0- 3]: raw midi
  6: [ 0]   : control
  7: [ 1- 3]: digital audio playback
  8: [ 1- 7]: digital audio playback
  9: [ 1- 8]: digital audio playback
 10: [ 1- 9]: digital audio playback
 11: [ 1-10]: digital audio playback
 12: [ 1-11]: digital audio playback
 13: [ 1- 0]: hardware dependent
 14: [ 1]   : control
 15: [ 2- 0]: digital audio playback
 16: [ 2- 0]: digital audio capture
 17: [ 2- 1]: digital audio playback
 18: [ 2- 2]: digital audio capture
 19: [ 2- 0]: hardware dependent
 20: [ 2]   : control
 21: [ 3- 0]: raw midi
 22: [ 3]   : control
 33:        : timer

aconnect -o

client 14: 'Midi Through' [type=noyau]
    0 'Midi Through Port-0'
client 16: 'Virtual Raw MIDI 0-0' [type=noyau,card=0]
    0 'VirMIDI 0-0     '
client 17: 'Virtual Raw MIDI 0-1' [type=noyau,card=0]
    0 'VirMIDI 0-1     '
client 18: 'Virtual Raw MIDI 0-2' [type=noyau,card=0]
    0 'VirMIDI 0-2     '
client 19: 'Virtual Raw MIDI 0-3' [type=noyau,card=0]
    0 'VirMIDI 0-3     '
client 28: 'SC-8820' [type=noyau,card=3]
    0 'SC-8820 Part A  '
    1 'SC-8820 Part B  '
    2 'SC-8820 MIDI    '
client 130: 'Munt MT-32' [type=utilisateur,pid=5847]
    0 'Standard        '

.... end Voila:
- create connection between virtual port 16:0 to munt input 130:0 => aconnect 16:0 130:0
- setting hatari to use raw midi output to virtual midi card input /dev/snd/midiC0D0
- setting munt to output to pulseaudio
- pulseaudio connecting to bluetooth headset

Pipelines are there but sound is totally crap or huge latency ... for sure room for optimization!
Of course no issue when connecting to the physical SC8820...

Maybe no hope to get something stable without Jack? But then I loose a way to connect to my bluetooth headset?

Last edited by kamelie1706 (2020-05-25 21:08:46)

Offline

#8 2020-05-26 18:03:39

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: [SOLVED] Create virtual midi device / hatari usage

Nice to see you got software midi working, but building hatari yourself with portmidi support seems much simpler.

Use asp[1] to retrieve the official pkgbuild
Edit the PKGBUILD
change pkgname to hatari-portmidi (or similar)
add portmidi to makedepends array & as optdepend *


build package, install .

run hatari --midi true and verify everything works.


[1] https://wiki.archlinux.org/index.php/Ar … _using_Git

* it's possible portmidi should be a hard dependency and not an optional one, but makedepend & optdepend seems most logical choice.

Last edited by Lone_Wolf (2020-05-26 18:05:24)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#9 2020-05-29 14:15:27

kamelie1706
Member
Registered: 2014-02-19
Posts: 176

Re: [SOLVED] Create virtual midi device / hatari usage

Thx

I might try that!

Offline

Board footer

Powered by FluxBB