Sorgelig wrote:I didn't get it. What device produces the sound?
ghogan42 wrote:On some older projects using the rpi2 and rpi3 some people had buffer underruns and the like when running munt because of cpu speed. I compiled it myself for my own project and munt ran fine for me though. So I don't know. But Munt might be close to taking up a full core on MiSTer.
Obviously, Munt is the best option for retro systems. But fluidsynth can also be run with soundfonts that are similar to other roland/retro synths. So if there was a way to route the audio to the fpga for mixing that could be something to look at too.
Here is a thread about running munt on a rpi2 on Vogons: https://www.vogons.org/viewtopic.php?f=29&t=46899
And a thread about a rpi3 synth box that might be useful for scripts/compiling info: https://www.vogons.org/viewtopic.php?f=9&t=58174
Sorgelig wrote:i think, the output of softSynth can be routed back to FPGA for final mixing to HDMA/analog.
I don't know how much CPU time is required for MUNT and will it slowdown MiSTer binary. It would be good to use MUNT on a single core and different than MiSTer - this way it should be smooth for MiSTer main thread.
Munt is good for a lot of retro stuff but fluidsynth I'm sure is a better choice for GM stuff. Munt has second device where they have arranged the instruments to be more GM-like, but it's definitely not ideal. I used to have a sysex command I would run that would do the same thing with a real MT-32 and that was about the same.
It is typically using around 20 - 30% CPU while playing music. MiSTer menu seems to always use 50%. The CPU is typically idle around 20%. I did read then if run as root that MUNT is able to elevate its priority if necessary.
I can also try and compile MUNT with better optimization.
Mem: 230624K used, 276080K free, 380K shrd, 4332K buff, 187500K cached
CPU: 53% usr 27% sys 0% nic 19% idle 0% io 0% irq 0% sirq
Load average: 1.60 1.27 1.13 3/74 14007
PID PPID USER STAT VSZ %VSZ %CPU COMMAND
887 1 root R 22968 5% 49% /media/fat/MiSTer /media/fat/Minimig_2
6811 6731 root R < 15296 3% 30% mt32d
6725 972 root S 5048 1% 0% sshd: root@pts/0
8089 6731 root S 2828 1% 0% midilink MUNT
It's good that cpu usage is relatively low. Since we have a dual core it shouldn't be a problem right? You can use "taskset" or something to make mt32d run on the second processor if it interferes with MiSTer's normal functionality I guess.
And I know that softsynths use little cpu when not actually playing music, so if we wanted to, munt (or fluidsynth or other) could just always run in the background and then any core that wanted to could just output midi data to it without having to worry about how to start up and stop the softsynth. Although that would make it hard to offer multiple softsynth options since you don't want them all to be running. But then you could even just enable/disable it through mister.ini
Sorgelig wrote:Try to play the games and see if you have controller lag while playing the MIDI music. Also if some games have loading in background - check the loading time (while playing the music).
As i've told already, any CPU loading (the CPU core where MiSTer is running) may affect the HPS/FPGA communications. This communication is based on polling (not events), so any CPU loading may affect the communication.
Soft-synths must run on a different CPU core than MiSTer binary for better experience.
htop utility shows which process is running on which core.
Sorgelig wrote:htop is not relevant in this test.
Yes, mouse also have the same route as joysticks and will be affected. So, need to play some games and see if there any additional lag in inputs. You can just play MIDI in background and play some game which has no MIDI.
ijor wrote:It might also be possible to have the whole thing on the FPGA side. No open source MIDI synthesizer core? Perhaps won't fit on the PC/486 core that hasn't much left space. But on others it might.
Users browsing this forum: No registered users and 10 guests