How to correctly setup mt32-pi lite?

Discussion of official MiSTer Project addons. (https://github.com/MiSTer-devel/Hardware_MiSTer)


Zaby
Posts: 4
Joined: Fri Apr 01, 2022 3:22 pm
Been thanked: 1 time

How to correctly setup mt32-pi lite?

Unread post by Zaby »

Hi, I recently got myself a preconfigured MT32-pi lite from https://ultimatemister.com/product/mt32 ... or-mister/
I pluged it into my mister and tried running Akumajou Dracula/Castlevania (from .hdf) on the X68000 Core with MIDI.
The mt32 menu option shows up in the OSD ,but no sound is playing even though I enabled mt32 support in-game.

The site says it should be plug n play but I looked into the contents of the sd card that came with it, just to be sure. And everything seems to be there. (files,etc.) I double checked the config file and it is configured the same way it is shown there: https://github.com/dwhinham/mt32-pi/wik ... -and-usage

So why am I not getting any sound?

Has anyone here already had experience with mt32-pi lite? Do I need to configure something else?

Thanks.
cursedverses
Posts: 180
Joined: Sun May 24, 2020 9:13 pm
Has thanked: 186 times
Been thanked: 34 times

Re: How to correctly setup mt32-pi lite?

Unread post by cursedverses »

I found the number of fonts (or total size of them?) In the soundfonts folder was slowing loading of patches.
Maybe leave one soundfont in there and delete the others (there's a soundfonts full pack on the SD card, outside of any scanned folders, with the originals)
Hobbesgoblin
Posts: 8
Joined: Sun Dec 12, 2021 1:23 pm

Re: How to correctly setup mt32-pi lite?

Unread post by Hobbesgoblin »

Are the mt32-roms included? these are still under copyright by roland and are not even included in the mt32-pi software due to that.

these are different from soundfonts, to use soundfonts, you need to put the mt32-pi into "fluidsynth"-mode.
User avatar
d0pefish
mt32-pi Creator
Posts: 39
Joined: Fri Dec 11, 2020 6:38 pm
Location: Newcastle-upon-Tyne, UK
Has thanked: 27 times
Been thanked: 29 times
Contact:

Re: How to correctly setup mt32-pi lite?

Unread post by d0pefish »

cursedverses wrote: Fri Apr 01, 2022 9:21 pm I found the number of fonts (or total size of them?) In the soundfonts folder was slowing loading of patches
Deleting SoundFonts won't speed up boot time - it is the size of the default SoundFont (as specified in the config file) that has an effect on the boot speed. They are loaded on demand, one at a time; just having several fonts on the card won't cause slowdowns.
Hobbesgoblin wrote: Sat Apr 02, 2022 12:10 am Are the mt32-roms included? these are still under copyright by roland and are not even included in the mt32-pi software due to that.
Please let me know if any sellers are including the copyrighted MT-32 ROMs. I do not want my project to be associated with anyone doing this.
The only files that should be distributed are the ones that come in the installation package, and the licenses must also be present.
Zaby wrote: Fri Apr 01, 2022 4:10 pm Has anyone here already had experience with mt32-pi lite? Do I need to configure something else?
What I/O board revision are you using? Older 5.x boards apparently have compatibility problems with the lite, and sadly this is not documented to my knowledge.

Please see this thread for some discussion about 5.x boards and the possibility of modifying them to fix compatibility with the lite: https://github.com/dwhinham/mt32-pi/discussions/253
cursedverses
Posts: 180
Joined: Sun May 24, 2020 9:13 pm
Has thanked: 186 times
Been thanked: 34 times

Re: How to correctly setup mt32-pi lite?

Unread post by cursedverses »

d0pefish wrote: Sat Apr 02, 2022 10:09 pm
cursedverses wrote: Fri Apr 01, 2022 9:21 pm I found the number of fonts (or total size of them?) In the soundfonts folder was slowing loading of patches
Deleting SoundFonts won't speed up boot time - it is the size of the default SoundFont (as specified in the config file) that has an effect on the boot speed. They are loaded on demand, one at a time; just having several fonts on the card won't cause slowdowns.
This explains a lot - the initial soundfont I deleted was exceptionally large - without it I was able to catch the first few notes of Monkey Island, so thanks for the understanding here.
Zaby
Posts: 4
Joined: Fri Apr 01, 2022 3:22 pm
Been thanked: 1 time

Re: How to correctly setup mt32-pi lite?

Unread post by Zaby »

d0pefish wrote: Sat Apr 02, 2022 10:09 pm What I/O board revision are you using? Older 5.x boards apparently have compatibility problems with the lite, and sadly this is not documented to my knowledge.
I took a look on my analog IO Board again and it says "IO Board v6.1". So it should work fine, but it doesn't :(

I'm gonna try and test it with some other game/core. Maybe it has somehow to do with the Akumajou Dracula .hdf I'm using?
FPGA64
Top Contributor
Posts: 940
Joined: Mon Mar 01, 2021 3:10 pm
Has thanked: 49 times
Been thanked: 375 times

Re: How to correctly setup mt32-pi lite?

Unread post by FPGA64 »

On the HDF image of Dracula its the 2nd option on the music select.

You should probably also contact your seller about the use of copyright roms on the supplied image.
Zaby
Posts: 4
Joined: Fri Apr 01, 2022 3:22 pm
Been thanked: 1 time

Re: How to correctly setup mt32-pi lite?

Unread post by Zaby »

FPGA64 wrote: Sun Apr 03, 2022 10:49 am On the HDF image of Dracula its the 2nd option on the music select.
Yes, I selected option 2, but if I do, the only thing I can hear are the sound effects. The music is absent.
I also tried it on King's Quest V on the ao486 Core now (selecting option 2 when booting) but it's the same thing.
I can hear stuff like the voices, but no mt32 music

I should also mention, that in the OSD mt32 menu, when I enable the on-screen display, (the one with the bars for the sound channels)
it seems to react to the music accordingly, but there's just no sound coming from my system.
FPGA64
Top Contributor
Posts: 940
Joined: Mon Mar 01, 2021 3:10 pm
Has thanked: 49 times
Been thanked: 375 times

Re: How to correctly setup mt32-pi lite?

Unread post by FPGA64 »

please attach your full config file so it can be checked. It works fine for me on the X68000 core
Karmeck
Posts: 87
Joined: Fri Feb 25, 2022 1:50 pm
Has thanked: 18 times
Been thanked: 8 times

Re: How to correctly setup mt32-pi lite?

Unread post by Karmeck »

Zaby wrote: Mon Apr 04, 2022 2:41 pm
FPGA64 wrote: Sun Apr 03, 2022 10:49 am On the HDF image of Dracula its the 2nd option on the music select.
Yes, I selected option 2, but if I do, the only thing I can hear are the sound effects. The music is absent.
I also tried it on King's Quest V on the ao486 Core now (selecting option 2 when booting) but it's the same thing.
I can hear stuff like the voices, but no mt32 music

I should also mention, that in the OSD mt32 menu, when I enable the on-screen display, (the one with the bars for the sound channels)
it seems to react to the music accordingly, but there's just no sound coming from my system.
Hmmm. Could we have an image of your io board.

I had similar issues, and was missing a jumper. If you look next to the i/o port. Is there 3 metal pins there. Those should be covered, the two on the right, with them facing away from you.
Karmeck
Posts: 87
Joined: Fri Feb 25, 2022 1:50 pm
Has thanked: 18 times
Been thanked: 8 times

Re: How to correctly setup mt32-pi lite?

Unread post by Karmeck »

As seen here.

KgN6lPu.jpeg
KgN6lPu.jpeg (132.8 KiB) Viewed 6411 times

Also make sure all of the (needed) pins on your i/o board is soldered. Those behind your ram.
User avatar
Grumpy-Old-Gamer
Posts: 57
Joined: Thu Apr 29, 2021 3:22 pm
Has thanked: 6 times
Been thanked: 12 times

Re: How to correctly setup mt32-pi lite?

Unread post by Grumpy-Old-Gamer »

The other thing to look out for is the MT32-PI lites sold by Ultimate MiSTer only fit his "official" case, using on other cases and you might have issues with the fit due to the thickness of the case and the 3D printed backplate on the Lite

There is a easy fix though
annette
Posts: 104
Joined: Mon Jul 12, 2021 10:02 am
Has thanked: 25 times
Been thanked: 44 times

Re: How to correctly setup mt32-pi lite?

Unread post by annette »

Grumpy-Old-Gamer wrote: Tue Apr 05, 2022 8:53 am There is a easy fix though
Can you show your mt32pi setup please?
User avatar
rickdangerous
Posts: 319
Joined: Sun May 24, 2020 7:35 pm
Location: Lisbon, Portugal
Has thanked: 36 times
Been thanked: 81 times
Contact:

Re: How to correctly setup mt32-pi lite?

Unread post by rickdangerous »

annette wrote: Tue Apr 05, 2022 10:05 am
Grumpy-Old-Gamer wrote: Tue Apr 05, 2022 8:53 am There is a easy fix though
Can you show your mt32pi setup please?
It's just a rubber protection on the back that have the right thickness to not scratch the case. You can remove it if you wish / need. Probably you will need to invert the screw holders to front. I can post some photos with and without rubber protection that we use between the pi and case if necessary.

MiSTer and FPGA Gaming European Shop
Classic MiSTer, MultiSystem, JAMMIX iTX and Official Addons.
https://ultimatemister.com powered by RetroShop.pt

User avatar
rickdangerous
Posts: 319
Joined: Sun May 24, 2020 7:35 pm
Location: Lisbon, Portugal
Has thanked: 36 times
Been thanked: 81 times
Contact:

Re: How to correctly setup mt32-pi lite?

Unread post by rickdangerous »

FPGA64 wrote: Sun Apr 03, 2022 10:49 am On the HDF image of Dracula its the 2nd option on the music select.

You should probably also contact your seller about the use of copyright roms on the supplied image.
i've already fixed. Thanks for report. When I was testing the latest version / update I forgot the roms folder. User can delete them.

MiSTer and FPGA Gaming European Shop
Classic MiSTer, MultiSystem, JAMMIX iTX and Official Addons.
https://ultimatemister.com powered by RetroShop.pt

Zaby
Posts: 4
Joined: Fri Apr 01, 2022 3:22 pm
Been thanked: 1 time

Re: How to correctly setup mt32-pi lite?

Unread post by Zaby »

Karmeck wrote: Mon Apr 04, 2022 8:28 pm Hmmm. Could we have an image of your io board.

I had similar issues, and was missing a jumper. If you look next to the i/o port. Is there 3 metal pins there. Those should be covered, the two on the right, with them facing away from you.
I took another look on my IO board and for me there seem to be none of these pins, that you have.
(pics in attachment)

Is this reason for concern? Everything else on my mister works just fine. It's just the MIDI aspect that doesn't work.
Like I mentioned, in terms of the version, it says: "I/O Board v6.1"

Also here's the current config file I use, though It should be correct and I doubt it's the source of the issue.

Code: Select all

#                                  ________    _______                      __
#                         __      /_____   `. /____   `.                   /__`
#     ____   ____     __/  /____  _______)  / ______)  / ____  ______      __
#   /   __ v  __  `./__   _____//_____    < /   _____. /____//   ___  `. /  /
#  /  /  /  /  /  /   /  /____  _______)  //  /______       /  /____/  //  .__
# /__/  /__/  /__/    \______//_________. /_________/      /   ______.  \____/
# /////////////////////////////////////////////////////// /  / //// /// // /
#                                                         ```
# mt32-pi.cfg: mt32-pi configuration file.
#
# Legacy Pixels Standard Interface v0.11.0
#
# Default options are marked with an asterisk (*).

# -----------------------------------------------------------------------------
# System options
# -----------------------------------------------------------------------------
[system]

# Enable or disable verbose startup and error output.
#
# When enabled, outputs more information to the LCD when starting up, and when
# MIDI/UART errors are detected.
#
# This also may hide the boot logo on smaller graphical displays.
#
# Values: on, off*
verbose = off

# Set the default synthesizer to be made active on startup.
#
# If the default synthesizer is unavailable (e.g. missing ROMs or SoundFonts),
# the first working synth is made active.
#
# Values: mt32*, soundfont
#
# mt32:      Use mt32emu (Munt) for Roland MT-32 emulation
# soundfont: Use FluidSynth for SoundFont synthesis
default_synth = mt32

# Enable or disable support for USB devices.
#
# Disable this to speed up boot time if you are not using any USB devices.
#
# Values: on*, off
usb = off

# Set the I2C baud rate/clock speed for all peripherals (Hz).
#
# Most peripherals will work fine at the default speed (400KHz "fast mode"),
# but larger LCD/OLED displays (e.g. 4-line I2C HD44780 and 64 pixel high
# SSD1306) won't be able to refresh at 60FPS at the default setting.
#
# Try increasing this value to 1000000 (1MHz) for a smoother LCD refresh rate.
# If your display doesn't work, try backing off the speed 100KHz at a time
# until it does.
#
# Values: 100000-1000000 (400000*)
i2c_baud_rate = 400000

# Set the timeout for power saving mode (seconds).
#
# After the specified number of seconds of silence, the CPU clock speed will be
# reduced, the audio device will be stopped, and and the LCD's backlight will
# be turned off to save energy (certain I2C displays only).
#
# Any MIDI activity will instantly bring the system out of power saving mode.
#
# If set to 0, power saving mode is disabled.
#
# Values: 0-3600 (300*)
power_save_timeout = 300

# -----------------------------------------------------------------------------
# MIDI options
# -----------------------------------------------------------------------------
[midi]

# Enable or disable searching for a USB MIDI interface on startup.
#
# Disable this to speed up boot time if you are using GPIO for MIDI.
# If no USB MIDI devices are detected, GPIO will be used as a fallback.
#
# Values: on*, off
usb = off

# Set the baud rate used for GPIO MIDI.
#
# For connecting to standard MIDI devices (i.e. via DIN cable), this should be
# left at the default rate of 31250.
#
# For connecting to PCs, set this to match the baud rate of the other host.
# SoftMPU's serial MIDI mode, for example, uses a baud rate of 38400.
#
# Values: 300-4000000 (31250*)
gpio_baud_rate = 31250

# Enable or disable software "MIDI thru" on the GPIO Tx pin.
#
# When enabled, all data received via the GPIO Rx pin will be re-transmitted
# verbatim on the Tx pin. This may be useful for debugging or for passing MIDI
# data through to another synth.
#
# Values: on, off*
gpio_thru = off

# Set the baud rate used for USB serial MIDI.
#
# The same considerations from the gpio_baud_rate setting above apply here.
# The default value is a PC baud rate and matches SoftMPU's serial MIDI mode.
#
# The range of valid baud rates may vary depending on the chipset of your USB
# serial device, so the range of values suggested below may actually be greater.
#
# Values: 9600-115200 (38400*)
usb_serial_baud_rate = 38400

# -----------------------------------------------------------------------------
# Audio options
# -----------------------------------------------------------------------------
[audio]

# Select audio output device.
#
# Values: pwm*, i2s
#
# pwm: Use the headphone jack
# hdmi: Use the HDMI port
# i2s: Use an I2S DAC
output_device = i2s

# Sample rate of audio output (Hz).
#
# mt32emu uses an internal sample rate of 32000Hz (just like the real hardware)
# which is then resampled to this value.
#
# FluidSynth renders at this sample rate directly.
#
# Values: 32000-192000 (48000*)
sample_rate = 48000

# Set audio rendering chunk size (samples).
#
# A single stereo frame of audio has two samples, and so this value is double
# the number of frames per chunk.
# The smaller the chunk size, the lower the latency, but too low a value will
# cause underruns (distortion artifacts).
#
# Latency is a function of chunk size and sample rate, for example:
# 256 samples / 2 channels / 48000Hz * 1000ms = 2.67ms of latency.
# See documentation for recommended values for various Raspberry Pi models.
#
# The minimum value varies depending on audio output device.
# For PWM, the minimum is 2, for I2S the minimum is 32.
# For HDMI, the minimum is 384, and will be rounded to the nearest multiple of
# 384.
#
# Values: 2-2048 (256*)
chunk_size = 256

# Set address (hexadecimal) of I2C DAC control interface.
#
# This will be used for the initialization sequence (see below) if enabled.
# You can find the address of your DAC by using the i2cdetect utility in Linux.
#
# Values: 00-80 (4c*)
i2c_dac_address = 4c

# Select an initialization sequence for the DAC.
#
# Some DACs require some initialization commands to be sent via I2C before they
# will produce any sound.
#
# Values: none*, pcm51xx
#
# pcm51xx: for DACs based on PCM5121 or similar (e.g. PCM5141, PCM5242)
i2c_dac_init = none

# -----------------------------------------------------------------------------
# Control options
# -----------------------------------------------------------------------------
[control]

# Set the physical control scheme.
#
# See documentation for GPIO pinouts/wiring details.
#
# Values: none*, simple_buttons, simple_encoder
#
# none:           No physical controls
# simple_buttons: Simple 4-button scheme
# simple_encoder: Simple 2-button + rotary encoder scheme
scheme = simple_buttons

# Set the rotary encoder type (if used by control scheme).
#
# Different rotary encoders may complete different fractions of a Gray-code
# cycle per detent ("click").
#
# If four clicks are needed for a single movement, try "quarter".
# If two clicks are needed for a single movement, try "half".
#
# Values: quarter, half, full*
encoder_type = full

# Reverse the rotary encoder direction (if used by control scheme).
#
# Some rotary encoders may have their CLK/DAT signals swapped, resulting in
# a reversed rotation direction.
#
# Use this option to correct the direction.
#
# Values: on, off*
encoder_reversed = off

# Enable or disable the I2C MiSTer control interface.
#
# If using mt32-pi with a MiSTer FPGA system and custom hardware to interface
# with MiSTer's User Port, enable this option to allow controlling mt32-pi via
# the MiSTer's on-screen display.
#
# Values: on, off*
mister = on
# Set the timeout for switching SoundFonts (seconds).
#
# When switching SoundFonts using the physical button, there is a short delay
# before loading begins. This option allows you to set the number of seconds to
# wait before loading.
#
# Values: 0-3600 (3*)
switch_timeout = 0

# -----------------------------------------------------------------------------
# MT-32 emulator options
# -----------------------------------------------------------------------------
[mt32emu]

# Set gain factor applied to synthesizer output channels.
#
# This is independent of the master volume that can be set via MIDI SysEx or
# the volume knob.
#
# Values: 0.0-256.0 (1.0*)
gain = 1.0

# Set gain factor applied to reverb wet output channels.
#
# Values: 0.0-infinity (1.0*)
reverb_gain = 1.0

# Select quality level for the resampler.
#
# If set to none, audio output will sound wrong unless you set the sample rate
# option to 32000Hz, which is the MT-32's native sample rate.
#
# Values: none, fastest, fast, good*, best
resampler_quality = good

# Select initial MIDI channel assignment.
#
# The MT-32 uses an unusual MIDI channel assignment by default. On a real MT-32
# this is set using a button combination. Use this option to change the initial
# channel assignment on startup.
#
# Values: standard*, alternate
#
# standard:  Parts 1-8 = MIDI channels 2-9, Rhythm part = MIDI channel 10
# alternate: Parts 1-8 = MIDI channels 1-8, Rhythm part = MIDI channel 10
midi_channels = standard

# Select initial ROM set to use.
#
# If multiple ROM sets are available, this option determines which set to use
# on startup. If the ROM set specified here is unavailable, the first available
# set is used instead.
#
# Values: old*, new, cm32l
rom_set = old

# Set whether the stereo channels should be swapped or not.
#
# The MT-32 interprets values for MIDI CC#10 (panpot) differently to later
# synthesizers, which means that 0 = right and 127 = left; the opposite of what
# is stated in the most recent versions of the MIDI specification.
#
# Enable this option to swap the channels and make MT-32 mode's panning
# behavior match the behavior of SoundFont mode. Note that this can also be
# switched at runtime with a custom SysEx command.
#
# Values: on, off*
reversed_stereo = off

# -----------------------------------------------------------------------------
# SoundFont synthesizer options
# -----------------------------------------------------------------------------
[fluidsynth]

# Set the initial SoundFont to use.
#
# If multiple SoundFonts are available, this option determines which SoundFont
# to use on startup.
#
# On startup, the "soundfonts" directory is scanned for valid SoundFonts, which
# are added to a list and sorted into alphabetical order.
#
# This setting is a zero-indexed offset into that list (i.e. 0 is the first,
# 1, is the second, and so on).
#
# If the index specified is unavailable, the first available SoundFont will be
# used.
#
# Values: 0-255 (0*)
soundfont = 0

# Set the master volume gain.
#
# The default is a low value to avoid clipping when many notes are playing at
# once.
#
# The value should be a decimal value between 0.0 and 10.0. Values outside this
# range will be clamped.
#
# Values: 0.0-10.0 (0.2*)
gain = 0.5

# Set the maximum number of voices that can be played simultaneously.
#
# Depending on the complexity of your SoundFont, you may need to reduce this
# value to prevent audio buffer underruns (distortion) when playing music
# featuring lots of notes being played at once.
#
# On the other hand, you may want to try raising this value if your Pi is
# being run overclocked or has a more powerful CPU (e.g. Pi 4/CM4).
#
# N.B. larger file size of the SoundFont does not imply higher CPU usage.
# SoundFonts that use more real-time effects (modulators) are more likely to
# require a reduction in polyphony.
#
# Values: 1-65535 (200*)
polyphony = 200

# The following settings set the default parameters for FluidSynth's reverb and
# chorus effects.
#
# Each setting can be overridden on a per-SoundFont basis by adding extra
# sections, e.g. [fluidsynth.soundfont.x], where x is the zero-based index of
# the SoundFont. See the next section for an example.
#
# Full descriptions and valid value ranges for each setting can be found in the
# FluidSynth documentation: https://www.fluidsynth.org/api/fluidsettings.xml
reverb = on
reverb_damping = 0.0
reverb_level = 0.9
reverb_room_size = 0.2
reverb_width = 0.5

chorus = on
chorus_depth = 8.0
chorus_level = 2.0
chorus_voices = 3
chorus_speed = 0.3

# -----------------------------------------------------------------------------
# FluidSynth effects profile for SoundFont 0 (GeneralUser GS)
# -----------------------------------------------------------------------------
[fluidsynth.soundfont.0]

# The following settings are recommended for GeneralUser GS by its author.
reverb = on
reverb_damping = 0.19
reverb_level = 0.5
reverb_room_size = 0.7
reverb_width = 0.75

chorus = on
chorus_depth = 4.5
chorus_level = 0.5
chorus_voices = 3
chorus_speed = 0.35

# -----------------------------------------------------------------------------
# LCD/OLED display options
# -----------------------------------------------------------------------------
[lcd]

# Select LCD driver.
#
# Note that LCDs connected via I2C, you must also set the correct address for
# your device via the i2c_lcd_address option. Consult its datasheet, or see
# our documentation for tested models and their configurations.
#
# Values: none*, hd44780_4bit, hd44780_i2c, sh1106_i2c, ssd1306_i2c
#
# none:         No LCD
# hd44780_4bit: Hitachi HD44780 or compatible (e.g. WS0010, RS0010) character
#               LCD connected to GPIO pins in 4-bit mode (see documentation for
#               pinout)
# hd44780_i2c:  As above, but using an I2C "backpack"
# sh1106_i2c:   Small I2C-based OLED graphical display (usually 1.3")
# ssd1306_i2c:  Small I2C-based OLED graphical display (usually 0.96")
type = ssd1306_i2c

# Set the width of the LCD.
#
# If the display is a character display, this value is measured in characters.
# Otherwise, for a graphical display, this is measured in pixels.
#
# Note that not all dimension settings are valid; see documentation for valid
# configurations for each LCD driver.
#
# Values: 20-128 (128*)
width = 128

# Set the height of the LCD.
#
# Same characters vs. pixels considerations as for width.
#
# Values: 2-64 (32*)
height = 64

# Set address (hexadecimal) of I2C LCD.
#
# This will be used to communicate with LCDs connected via the I2C bus.
#
# Values: 00-80 (3c*)
i2c_lcd_address = 3c

# Rotate the display output (graphical LCDs only).
#
# Some graphical displays support rotation. Use this option if you need to turn
# the display around.
#
# Values: normal*, inverted
#
# normal:   No rotation
# inverted: The display output is upside down
rotation = normal

# -----------------------------------------------------------------------------
# Network options
# -----------------------------------------------------------------------------
[network]

# Select the network mode.
#
# For setting your Wi-Fi SSID and encryption key, see wpa_supplicant.conf.
# Note that if using Ethernet on a Raspberry Pi 3B/3B+, USB must be enabled.
#
# off:      Disable networking
# ethernet: Enable using the Ethernet interface
# wifi:     Enable using the the Wi-Fi interface
#
# Values: off*, ethernet, wifi
mode = off

# Enable or disable DHCP for configuring the network.
#
# If disabled, the manual settings below will be used to configure your network
# interface instead.
#
# Values: on*, off
dhcp = on

# Manual settings for configuring the network interface.
#
# These settings will be ignored if DHCP is enabled.
#
# Values: correctly-formatted IP address/subnet mask, e.g. AAA.BBB.CCC.DDD
#         (four numbers in the range 0-255 separated by periods)
ip_address = 192.168.1.100
subnet_mask = 255.255.255.0
default_gateway = 192.168.1.1
dns_server = 192.168.1.1

# Set the network hostname.
#
# Values: a valid hostname using ASCII letters 'a' to 'z', digits 0-9, and
#         hyphens (*mt32-pi)
hostname = mt32-pi

# Enable or disable the RTP-MIDI/AppleMIDI server.
#
# This allows you to send MIDI data to mt32-pi over the network using macOS'
# built-in network MIDI features, or rtpMIDI by Tobias Erichsen on Windows.
#
# Values: on*, off
rtp_midi = on

# Enable or disable the embedded FTP server.
#
# This FTP server is a very basic implementation which DOES NOT feature any kind
# of transport layer security/encryption. Therefore, you should NOT enable this
# feature on a public network or expose the Raspberry Pi to the Internet.
#
# The FTP server should be considered a convenience feature only, for performing
# updates and configuration changes without having to replace the SD card.
#
# Values: on, off*
ftp = off

# Set the FTP server username and password.
#
# Values: any ASCII string (*mt32-pi)
ftp_username = mt32-pi
ftp_password = mt32-pi
Attachments
20220405_150724.jpg
20220405_150724.jpg (4.08 MiB) Viewed 6310 times
20220405_150548.jpg
20220405_150548.jpg (4.08 MiB) Viewed 6310 times
User avatar
rickdangerous
Posts: 319
Joined: Sun May 24, 2020 7:35 pm
Location: Lisbon, Portugal
Has thanked: 36 times
Been thanked: 81 times
Contact:

Re: How to correctly setup mt32-pi lite?

Unread post by rickdangerous »

Yes you will need that jumper to work. If you need send it to me that I fix / review it for you. Just pm me or email would be the best. That board don't have fan or serial voltage selector, but have the VGA pins. That is a 5mm mini Toslink led?

Kind regards
Ricardo

MiSTer and FPGA Gaming European Shop
Classic MiSTer, MultiSystem, JAMMIX iTX and Official Addons.
https://ultimatemister.com powered by RetroShop.pt

FPGA64
Top Contributor
Posts: 940
Joined: Mon Mar 01, 2021 3:10 pm
Has thanked: 49 times
Been thanked: 375 times

Re: How to correctly setup mt32-pi lite?

Unread post by FPGA64 »

Zaby wrote: Tue Apr 05, 2022 1:52 pm
Karmeck wrote: Mon Apr 04, 2022 8:28 pm Hmmm. Could we have an image of your io board.

I had similar issues, and was missing a jumper. If you look next to the i/o port. Is there 3 metal pins there. Those should be covered, the two on the right, with them facing away from you.
I took another look on my IO board and for me there seem to be none of these pins, that you have.
(pics in attachment)

Is this reason for concern? Everything else on my mister works just fine. It's just the MIDI aspect that doesn't work.
Like I mentioned, in terms of the version, it says: "I/O Board v6.1"

Also here's the current config file I use, though It should be correct and I doubt it's the source of the issue.

Code: Select all

#                                  ________    _______                      __
#                         __      /_____   `. /____   `.                   /__`
#     ____   ____     __/  /____  _______)  / ______)  / ____  ______      __
#   /   __ v  __  `./__   _____//_____    < /   _____. /____//   ___  `. /  /
#  /  /  /  /  /  /   /  /____  _______)  //  /______       /  /____/  //  .__
# /__/  /__/  /__/    \______//_________. /_________/      /   ______.  \____/
# /////////////////////////////////////////////////////// /  / //// /// // /
#                                                         ```
# mt32-pi.cfg: mt32-pi configuration file.
#
# Legacy Pixels Standard Interface v0.11.0
#
# Default options are marked with an asterisk (*).

# -----------------------------------------------------------------------------
# System options
# -----------------------------------------------------------------------------
[system]

# Enable or disable verbose startup and error output.
#
# When enabled, outputs more information to the LCD when starting up, and when
# MIDI/UART errors are detected.
#
# This also may hide the boot logo on smaller graphical displays.
#
# Values: on, off*
verbose = off

# Set the default synthesizer to be made active on startup.
#
# If the default synthesizer is unavailable (e.g. missing ROMs or SoundFonts),
# the first working synth is made active.
#
# Values: mt32*, soundfont
#
# mt32:      Use mt32emu (Munt) for Roland MT-32 emulation
# soundfont: Use FluidSynth for SoundFont synthesis
default_synth = mt32

# Enable or disable support for USB devices.
#
# Disable this to speed up boot time if you are not using any USB devices.
#
# Values: on*, off
usb = off

# Set the I2C baud rate/clock speed for all peripherals (Hz).
#
# Most peripherals will work fine at the default speed (400KHz "fast mode"),
# but larger LCD/OLED displays (e.g. 4-line I2C HD44780 and 64 pixel high
# SSD1306) won't be able to refresh at 60FPS at the default setting.
#
# Try increasing this value to 1000000 (1MHz) for a smoother LCD refresh rate.
# If your display doesn't work, try backing off the speed 100KHz at a time
# until it does.
#
# Values: 100000-1000000 (400000*)
i2c_baud_rate = 400000

# Set the timeout for power saving mode (seconds).
#
# After the specified number of seconds of silence, the CPU clock speed will be
# reduced, the audio device will be stopped, and and the LCD's backlight will
# be turned off to save energy (certain I2C displays only).
#
# Any MIDI activity will instantly bring the system out of power saving mode.
#
# If set to 0, power saving mode is disabled.
#
# Values: 0-3600 (300*)
power_save_timeout = 300

# -----------------------------------------------------------------------------
# MIDI options
# -----------------------------------------------------------------------------
[midi]

# Enable or disable searching for a USB MIDI interface on startup.
#
# Disable this to speed up boot time if you are using GPIO for MIDI.
# If no USB MIDI devices are detected, GPIO will be used as a fallback.
#
# Values: on*, off
usb = off

# Set the baud rate used for GPIO MIDI.
#
# For connecting to standard MIDI devices (i.e. via DIN cable), this should be
# left at the default rate of 31250.
#
# For connecting to PCs, set this to match the baud rate of the other host.
# SoftMPU's serial MIDI mode, for example, uses a baud rate of 38400.
#
# Values: 300-4000000 (31250*)
gpio_baud_rate = 31250

# Enable or disable software "MIDI thru" on the GPIO Tx pin.
#
# When enabled, all data received via the GPIO Rx pin will be re-transmitted
# verbatim on the Tx pin. This may be useful for debugging or for passing MIDI
# data through to another synth.
#
# Values: on, off*
gpio_thru = off

# Set the baud rate used for USB serial MIDI.
#
# The same considerations from the gpio_baud_rate setting above apply here.
# The default value is a PC baud rate and matches SoftMPU's serial MIDI mode.
#
# The range of valid baud rates may vary depending on the chipset of your USB
# serial device, so the range of values suggested below may actually be greater.
#
# Values: 9600-115200 (38400*)
usb_serial_baud_rate = 38400

# -----------------------------------------------------------------------------
# Audio options
# -----------------------------------------------------------------------------
[audio]

# Select audio output device.
#
# Values: pwm*, i2s
#
# pwm: Use the headphone jack
# hdmi: Use the HDMI port
# i2s: Use an I2S DAC
output_device = i2s

# Sample rate of audio output (Hz).
#
# mt32emu uses an internal sample rate of 32000Hz (just like the real hardware)
# which is then resampled to this value.
#
# FluidSynth renders at this sample rate directly.
#
# Values: 32000-192000 (48000*)
sample_rate = 48000

# Set audio rendering chunk size (samples).
#
# A single stereo frame of audio has two samples, and so this value is double
# the number of frames per chunk.
# The smaller the chunk size, the lower the latency, but too low a value will
# cause underruns (distortion artifacts).
#
# Latency is a function of chunk size and sample rate, for example:
# 256 samples / 2 channels / 48000Hz * 1000ms = 2.67ms of latency.
# See documentation for recommended values for various Raspberry Pi models.
#
# The minimum value varies depending on audio output device.
# For PWM, the minimum is 2, for I2S the minimum is 32.
# For HDMI, the minimum is 384, and will be rounded to the nearest multiple of
# 384.
#
# Values: 2-2048 (256*)
chunk_size = 256

# Set address (hexadecimal) of I2C DAC control interface.
#
# This will be used for the initialization sequence (see below) if enabled.
# You can find the address of your DAC by using the i2cdetect utility in Linux.
#
# Values: 00-80 (4c*)
i2c_dac_address = 4c

# Select an initialization sequence for the DAC.
#
# Some DACs require some initialization commands to be sent via I2C before they
# will produce any sound.
#
# Values: none*, pcm51xx
#
# pcm51xx: for DACs based on PCM5121 or similar (e.g. PCM5141, PCM5242)
i2c_dac_init = none

# -----------------------------------------------------------------------------
# Control options
# -----------------------------------------------------------------------------
[control]

# Set the physical control scheme.
#
# See documentation for GPIO pinouts/wiring details.
#
# Values: none*, simple_buttons, simple_encoder
#
# none:           No physical controls
# simple_buttons: Simple 4-button scheme
# simple_encoder: Simple 2-button + rotary encoder scheme
scheme = simple_buttons

# Set the rotary encoder type (if used by control scheme).
#
# Different rotary encoders may complete different fractions of a Gray-code
# cycle per detent ("click").
#
# If four clicks are needed for a single movement, try "quarter".
# If two clicks are needed for a single movement, try "half".
#
# Values: quarter, half, full*
encoder_type = full

# Reverse the rotary encoder direction (if used by control scheme).
#
# Some rotary encoders may have their CLK/DAT signals swapped, resulting in
# a reversed rotation direction.
#
# Use this option to correct the direction.
#
# Values: on, off*
encoder_reversed = off

# Enable or disable the I2C MiSTer control interface.
#
# If using mt32-pi with a MiSTer FPGA system and custom hardware to interface
# with MiSTer's User Port, enable this option to allow controlling mt32-pi via
# the MiSTer's on-screen display.
#
# Values: on, off*
mister = on
# Set the timeout for switching SoundFonts (seconds).
#
# When switching SoundFonts using the physical button, there is a short delay
# before loading begins. This option allows you to set the number of seconds to
# wait before loading.
#
# Values: 0-3600 (3*)
switch_timeout = 0

# -----------------------------------------------------------------------------
# MT-32 emulator options
# -----------------------------------------------------------------------------
[mt32emu]

# Set gain factor applied to synthesizer output channels.
#
# This is independent of the master volume that can be set via MIDI SysEx or
# the volume knob.
#
# Values: 0.0-256.0 (1.0*)
gain = 1.0

# Set gain factor applied to reverb wet output channels.
#
# Values: 0.0-infinity (1.0*)
reverb_gain = 1.0

# Select quality level for the resampler.
#
# If set to none, audio output will sound wrong unless you set the sample rate
# option to 32000Hz, which is the MT-32's native sample rate.
#
# Values: none, fastest, fast, good*, best
resampler_quality = good

# Select initial MIDI channel assignment.
#
# The MT-32 uses an unusual MIDI channel assignment by default. On a real MT-32
# this is set using a button combination. Use this option to change the initial
# channel assignment on startup.
#
# Values: standard*, alternate
#
# standard:  Parts 1-8 = MIDI channels 2-9, Rhythm part = MIDI channel 10
# alternate: Parts 1-8 = MIDI channels 1-8, Rhythm part = MIDI channel 10
midi_channels = standard

# Select initial ROM set to use.
#
# If multiple ROM sets are available, this option determines which set to use
# on startup. If the ROM set specified here is unavailable, the first available
# set is used instead.
#
# Values: old*, new, cm32l
rom_set = old

# Set whether the stereo channels should be swapped or not.
#
# The MT-32 interprets values for MIDI CC#10 (panpot) differently to later
# synthesizers, which means that 0 = right and 127 = left; the opposite of what
# is stated in the most recent versions of the MIDI specification.
#
# Enable this option to swap the channels and make MT-32 mode's panning
# behavior match the behavior of SoundFont mode. Note that this can also be
# switched at runtime with a custom SysEx command.
#
# Values: on, off*
reversed_stereo = off

# -----------------------------------------------------------------------------
# SoundFont synthesizer options
# -----------------------------------------------------------------------------
[fluidsynth]

# Set the initial SoundFont to use.
#
# If multiple SoundFonts are available, this option determines which SoundFont
# to use on startup.
#
# On startup, the "soundfonts" directory is scanned for valid SoundFonts, which
# are added to a list and sorted into alphabetical order.
#
# This setting is a zero-indexed offset into that list (i.e. 0 is the first,
# 1, is the second, and so on).
#
# If the index specified is unavailable, the first available SoundFont will be
# used.
#
# Values: 0-255 (0*)
soundfont = 0

# Set the master volume gain.
#
# The default is a low value to avoid clipping when many notes are playing at
# once.
#
# The value should be a decimal value between 0.0 and 10.0. Values outside this
# range will be clamped.
#
# Values: 0.0-10.0 (0.2*)
gain = 0.5

# Set the maximum number of voices that can be played simultaneously.
#
# Depending on the complexity of your SoundFont, you may need to reduce this
# value to prevent audio buffer underruns (distortion) when playing music
# featuring lots of notes being played at once.
#
# On the other hand, you may want to try raising this value if your Pi is
# being run overclocked or has a more powerful CPU (e.g. Pi 4/CM4).
#
# N.B. larger file size of the SoundFont does not imply higher CPU usage.
# SoundFonts that use more real-time effects (modulators) are more likely to
# require a reduction in polyphony.
#
# Values: 1-65535 (200*)
polyphony = 200

# The following settings set the default parameters for FluidSynth's reverb and
# chorus effects.
#
# Each setting can be overridden on a per-SoundFont basis by adding extra
# sections, e.g. [fluidsynth.soundfont.x], where x is the zero-based index of
# the SoundFont. See the next section for an example.
#
# Full descriptions and valid value ranges for each setting can be found in the
# FluidSynth documentation: https://www.fluidsynth.org/api/fluidsettings.xml
reverb = on
reverb_damping = 0.0
reverb_level = 0.9
reverb_room_size = 0.2
reverb_width = 0.5

chorus = on
chorus_depth = 8.0
chorus_level = 2.0
chorus_voices = 3
chorus_speed = 0.3

# -----------------------------------------------------------------------------
# FluidSynth effects profile for SoundFont 0 (GeneralUser GS)
# -----------------------------------------------------------------------------
[fluidsynth.soundfont.0]

# The following settings are recommended for GeneralUser GS by its author.
reverb = on
reverb_damping = 0.19
reverb_level = 0.5
reverb_room_size = 0.7
reverb_width = 0.75

chorus = on
chorus_depth = 4.5
chorus_level = 0.5
chorus_voices = 3
chorus_speed = 0.35

# -----------------------------------------------------------------------------
# LCD/OLED display options
# -----------------------------------------------------------------------------
[lcd]

# Select LCD driver.
#
# Note that LCDs connected via I2C, you must also set the correct address for
# your device via the i2c_lcd_address option. Consult its datasheet, or see
# our documentation for tested models and their configurations.
#
# Values: none*, hd44780_4bit, hd44780_i2c, sh1106_i2c, ssd1306_i2c
#
# none:         No LCD
# hd44780_4bit: Hitachi HD44780 or compatible (e.g. WS0010, RS0010) character
#               LCD connected to GPIO pins in 4-bit mode (see documentation for
#               pinout)
# hd44780_i2c:  As above, but using an I2C "backpack"
# sh1106_i2c:   Small I2C-based OLED graphical display (usually 1.3")
# ssd1306_i2c:  Small I2C-based OLED graphical display (usually 0.96")
type = ssd1306_i2c

# Set the width of the LCD.
#
# If the display is a character display, this value is measured in characters.
# Otherwise, for a graphical display, this is measured in pixels.
#
# Note that not all dimension settings are valid; see documentation for valid
# configurations for each LCD driver.
#
# Values: 20-128 (128*)
width = 128

# Set the height of the LCD.
#
# Same characters vs. pixels considerations as for width.
#
# Values: 2-64 (32*)
height = 64

# Set address (hexadecimal) of I2C LCD.
#
# This will be used to communicate with LCDs connected via the I2C bus.
#
# Values: 00-80 (3c*)
i2c_lcd_address = 3c

# Rotate the display output (graphical LCDs only).
#
# Some graphical displays support rotation. Use this option if you need to turn
# the display around.
#
# Values: normal*, inverted
#
# normal:   No rotation
# inverted: The display output is upside down
rotation = normal

# -----------------------------------------------------------------------------
# Network options
# -----------------------------------------------------------------------------
[network]

# Select the network mode.
#
# For setting your Wi-Fi SSID and encryption key, see wpa_supplicant.conf.
# Note that if using Ethernet on a Raspberry Pi 3B/3B+, USB must be enabled.
#
# off:      Disable networking
# ethernet: Enable using the Ethernet interface
# wifi:     Enable using the the Wi-Fi interface
#
# Values: off*, ethernet, wifi
mode = off

# Enable or disable DHCP for configuring the network.
#
# If disabled, the manual settings below will be used to configure your network
# interface instead.
#
# Values: on*, off
dhcp = on

# Manual settings for configuring the network interface.
#
# These settings will be ignored if DHCP is enabled.
#
# Values: correctly-formatted IP address/subnet mask, e.g. AAA.BBB.CCC.DDD
#         (four numbers in the range 0-255 separated by periods)
ip_address = 192.168.1.100
subnet_mask = 255.255.255.0
default_gateway = 192.168.1.1
dns_server = 192.168.1.1

# Set the network hostname.
#
# Values: a valid hostname using ASCII letters 'a' to 'z', digits 0-9, and
#         hyphens (*mt32-pi)
hostname = mt32-pi

# Enable or disable the RTP-MIDI/AppleMIDI server.
#
# This allows you to send MIDI data to mt32-pi over the network using macOS'
# built-in network MIDI features, or rtpMIDI by Tobias Erichsen on Windows.
#
# Values: on*, off
rtp_midi = on

# Enable or disable the embedded FTP server.
#
# This FTP server is a very basic implementation which DOES NOT feature any kind
# of transport layer security/encryption. Therefore, you should NOT enable this
# feature on a public network or expose the Raspberry Pi to the Internet.
#
# The FTP server should be considered a convenience feature only, for performing
# updates and configuration changes without having to replace the SD card.
#
# Values: on, off*
ftp = off

# Set the FTP server username and password.
#
# Values: any ASCII string (*mt32-pi)
ftp_username = mt32-pi
ftp_password = mt32-pi

Your ini file looks fine. Probably your IO board and the missing headers.
Karmeck
Posts: 87
Joined: Fri Feb 25, 2022 1:50 pm
Has thanked: 18 times
Been thanked: 8 times

Re: How to correctly setup mt32-pi lite?

Unread post by Karmeck »

Zaby wrote: Tue Apr 05, 2022 1:52 pm
Karmeck wrote: Mon Apr 04, 2022 8:28 pm Hmmm. Could we have an image of your io board.

I had similar issues, and was missing a jumper. If you look next to the i/o port. Is there 3 metal pins there. Those should be covered, the two on the right, with them facing away from you.
I took another look on my IO board and for me there seem to be none of these pins, that you have.
(pics in attachment)

Is this reason for concern? Everything else on my mister works just fine. It's just the MIDI aspect that doesn't work.
Like I mentioned, in terms of the version, it says: "I/O Board v6.1"
Indeed it is. Seems more pins are missing as well.

You can trust rickdangerous as he is the owner of ultimatemister.com.

Most things will work, but not midi and some snac controllers.

There is actually built-in midi support for free on the mister, but not as good as mt32-pi.
User avatar
venice
Top Contributor
Posts: 788
Joined: Tue Jun 16, 2020 9:29 am
Location: Germany
Has thanked: 278 times
Been thanked: 278 times

Re: How to correctly setup mt32-pi lite?

Unread post by venice »

As far as I know the MT32-pi lite need one of the newer IO Boards 6.1/1.2 and need the 3.3-I/O Jumper set to I/O.

The normal MT32-pi, which is normally connected with an USB A-A cable (RX/TX crossed), can be used up from IO Board 5.6.

My MiSTer Add-On-Projects tty2oled, i2c2oled, SNAC2IEC
You can donate by sending a Postcard (Cardwarez) to me.

User avatar
rickdangerous
Posts: 319
Joined: Sun May 24, 2020 7:35 pm
Location: Lisbon, Portugal
Has thanked: 36 times
Been thanked: 81 times
Contact:

Re: How to correctly setup mt32-pi lite?

Unread post by rickdangerous »

venice wrote: Wed Apr 06, 2022 4:28 pm As far as I know the MT32-pi lite need one of the newer IO Boards 6.1/1.2 and need the 3.3-I/O Jumper set to I/O.

The normal MT32-pi, which is normally connected with an USB A-A cable (RX/TX crossed), can be used up from IO Board 5.6.
Correct. Just works on newer boards with the jumper on I/O.

MiSTer and FPGA Gaming European Shop
Classic MiSTer, MultiSystem, JAMMIX iTX and Official Addons.
https://ultimatemister.com powered by RetroShop.pt

Post Reply