mirror of
https://github.com/VARCem/munt.git
synced 2026-07-08 18:16:13 +00:00
Refreshed READMEs which are now provided in the markdown format
This commit is contained in:
@@ -1,29 +0,0 @@
|
||||
Patches for DOSBox to add mt32emu MIDI device
|
||||
|
||||
dosbox-0.74-3-mt32-patch.diff - diff file to be applied to official DOSBox release v.0.74-3 source distribution.
|
||||
|
||||
dosbox-SVN-r4319-mt32-patch.diff - diff file to be applied to official DOSBox sources SVN r4319 (and up, hopefully).
|
||||
It uses a bit different and clear approach introduced since SVN r3836.
|
||||
|
||||
How to build a patched version of DOSBox
|
||||
========================================
|
||||
This describes the steps necessary to produce a DOSBox binary with built-in MT-32 emulation using the GNU toolchain.
|
||||
Note, builds with Microsoft Visual Studio or Xcode are not covered here. On Windows, MSYS can be used.
|
||||
|
||||
1. Ensure that the mt32emu library is built and installed in the system. Typically, the library headers should appear
|
||||
under the /usr/local/include directory and the library binary itself should be in /usr/local/lib. Usual steps
|
||||
|
||||
cd <munt source directory>
|
||||
cmake .
|
||||
make
|
||||
[sudo] make install
|
||||
|
||||
should do the job.
|
||||
|
||||
2. Apply the patch file that corresponds to the DOSBox version being compiled, like this:
|
||||
|
||||
cd <DOSBox source directory>
|
||||
patch -p1 < <munt source directory>/DOSBox-mt32-patch/dosbox-0.74-3-mt32-patch.diff
|
||||
|
||||
3. Proceed with autogen and configure, as is normally done to build DOSBox from sources.
|
||||
4. Adjust DOSBox configuration to pick up the ROM files, etc.
|
||||
38
DOSBox-mt32-patch/README.md
Normal file
38
DOSBox-mt32-patch/README.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Patches for DOSBox to add mt32emu MIDI device
|
||||
|
||||
- [dosbox-0.74-3-mt32-patch.diff](https://github.com/munt/munt/blob/master/DOSBox-mt32-patch/dosbox-0.74-3-mt32-patch.diff) -
|
||||
diff file to be applied to official DOSBox release v.0.74-3 source distribution.
|
||||
|
||||
- [dosbox-SVN-r4319-mt32-patch.diff](https://github.com/munt/munt/blob/master/DOSBox-mt32-patch/dosbox-SVN-r4319-mt32-patch.diff) -
|
||||
diff file to be applied to official DOSBox sources SVN r4319 (and up, hopefully).
|
||||
It uses a bit different and clear approach introduced since SVN r3836.
|
||||
|
||||
# How to build a patched version of DOSBox
|
||||
|
||||
This describes the steps necessary to produce a DOSBox binary with built-in MT-32 emulation using the GNU toolchain.
|
||||
Note, builds with Microsoft Visual Studio or Xcode are not covered here. On Windows, MSYS can be used.
|
||||
|
||||
1. Ensure that the _mt32emu_ library is built and installed in the system. Typically, the library headers should appear
|
||||
under the `/usr/local/include` directory and the library binary itself should be in `/usr/local/lib`. Usual steps
|
||||
|
||||
cd <munt source directory>/mt32emu
|
||||
cmake -DCMAKE_BUILD_TYPE:STRING=Release .
|
||||
make
|
||||
[sudo] make install
|
||||
|
||||
should do the job. Note, this sequence will produce a shared library that will be required further on for DOSBox to run.
|
||||
In order to link the _mt32emu_ library statically, add option `-Dlibmt32emu_SHARED:BOOL=OFF` to the `cmake` command.
|
||||
Additionally, option `CMAKE_INSTALL_PREFIX` or `DESTDIR` variable can be used to adjust the installation directory.
|
||||
|
||||
2. Apply the patch file that corresponds to the DOSBox version being compiled, like this:
|
||||
|
||||
cd <DOSBox source directory>
|
||||
patch -p1 < <munt source directory>/DOSBox-mt32-patch/dosbox-0.74-3-mt32-patch.diff
|
||||
|
||||
3. Proceed with `autogen.sh` and `configure`, as is normally done to build DOSBox from sources.
|
||||
4. Adjust DOSBox configuration to pick up the ROM files and fine-tune mt32emu settings.
|
||||
To get the complete list of supported configuration options, generate a new DOSBox configuration file, e.g. with command
|
||||
|
||||
config -writeconf dosbox-mt32.conf
|
||||
|
||||
The new configuration file `dosbox-mt32.conf` also contains descriptions of the related options in the **midi** section and valid value ranges.
|
||||
68
README.md
Normal file
68
README.md
Normal file
@@ -0,0 +1,68 @@
|
||||
This repository consists of several related subprojects collected in one place
|
||||
for convenience.
|
||||
|
||||
# [mt32emu](https://github.com/munt/munt/tree/master/mt32emu)
|
||||
|
||||
mt32emu is a _C/C++ library_ which allows to emulate (approximately) [the Roland
|
||||
MT-32, CM-32L and LAPC-I synthesiser
|
||||
modules](https://en.wikipedia.org/wiki/Roland_MT-32).
|
||||
|
||||
# [mt32emu_alsadrv](https://github.com/munt/munt/tree/master/mt32emu_alsadrv)
|
||||
|
||||
Comprises of a GUI and a console applications that make use of _mt32emu library_
|
||||
to provide emulation services via *ALSA MIDI sequencer* interface for Linux
|
||||
applications. Applications that rely on *raw ALSA MIDI ports* may connect via
|
||||
virtual raw MIDI ports, e.g. created with help of `snd_virmidi` kernel module.
|
||||
The GUI application is mostly obsolete and can be replaced with _mt32emu_qt_.
|
||||
Still, _mt32emu_alsadrv_ may be preferred for systems with limited resources.
|
||||
|
||||
# [mt32emu_smf2wav](https://github.com/munt/munt/tree/master/mt32emu_smf2wav)
|
||||
|
||||
A console application intended to facilitate conversion a pre-recorded [Standard
|
||||
MIDI file](https://www.midi.org/specifications-old/item/standard-midi-files-smf)
|
||||
(SMF) to a WAVE file using the mt32emu library for audio rendering. The output
|
||||
file is equivalent to a direct recording from a Roland MT-32, CM-32L or LAPC-I
|
||||
synthesiser module.
|
||||
|
||||
# [mt32emu_win32drv](https://github.com/munt/munt/tree/master/mt32emu_win32drv)
|
||||
|
||||
Windows MME driver that provides for creating a MIDI output port and
|
||||
transferring MIDI messages received from an external MIDI program to mt32emu_qt,
|
||||
the main synthesiser application. It also includes the mt32emu engine built-in
|
||||
and is able to operate in stand-alone mode if the main application mt32emu_qt
|
||||
is unavailable.
|
||||
|
||||
# [mt32emu_win32drv_setup](https://github.com/munt/munt/tree/master/mt32emu_win32drv_setup)
|
||||
|
||||
Helper tools intended to simplify installation / upgrade of the Windows MME
|
||||
driver mt32emu_win32drv.
|
||||
|
||||
# [mt32emu_qt](https://github.com/munt/munt/tree/master/mt32emu_qt)
|
||||
|
||||
The main synthesiser application. It facilitates both realtime synthesis and
|
||||
conversion of pre-recorded SMF files to WAVE making use of the mt32emu library
|
||||
and [the Qt framework](https://www.qt.io/). Key features:
|
||||
|
||||
1. Support for multiple simultaneous synths with separate state & configuration.
|
||||
2. GUI to configure synths, manage ROMs, connections to external MIDI ports and
|
||||
MIDI programs and interfaces to the host audio systems.
|
||||
3. Emulates the funny MT-32 LCD. Also displays the internal synth state in
|
||||
realtime.
|
||||
4. Being a cross-platform application, provides support for different operating
|
||||
systems and multimedia systems such as Windows multimedia, PulseAudio, JACK
|
||||
Audio Connection Kit, ALSA, OSS and CoreMIDI.
|
||||
5. Contains built-in MIDI player of Standard MIDI files optimised for mt32emu.
|
||||
6. Makes it easy to record either the MIDI input or the produced audio output.
|
||||
7. Simplifies batch conversion of collections of SMF files to .wav / .raw audio
|
||||
files.
|
||||
|
||||
# [DOSBox-mt32-patch](https://github.com/munt/munt/tree/master/DOSBox-mt32-patch)
|
||||
|
||||
Patch for the official [DOSBox](https://www.dosbox.com/) release v.0.74 to
|
||||
demonstrate a possibility to add mt32 MIDI device. Intended for developers and
|
||||
maintainers of customised DOSBox builds.
|
||||
|
||||
# [FreeBSD](https://github.com/munt/munt/tree/master/FreeBSD)
|
||||
|
||||
Files related to the port of munt components for [the FreeBSD
|
||||
system](https://www.freebsd.org/).
|
||||
43
README.txt
43
README.txt
@@ -1,43 +0,0 @@
|
||||
mt32emu
|
||||
=======
|
||||
mt32emu is a C/C++ library which allows to emulate (approximately) the Roland
|
||||
MT-32, CM-32L and LAPC-I synthesiser modules.
|
||||
|
||||
mt32emu_alsadrv
|
||||
===============
|
||||
ALSA MIDI driver uses mt32emu to provide ALSA MIDI interface for Linux applications (now obsolete).
|
||||
|
||||
DOSBox-mt32-patch
|
||||
=================
|
||||
Patch for official DOSBox release v.0.74 to demonstrate a possibility to add mt32 MIDI device.
|
||||
|
||||
mt32emu_smf2wav
|
||||
===============
|
||||
mt32emu-smf2wav makes use of mt32emu to produce a WAVE file from an SMF file.
|
||||
The output file corresponds a digital recording from a Roland MT-32, CM-32L and LAPC-I
|
||||
synthesiser module.
|
||||
|
||||
mt32emu_win32drv
|
||||
================
|
||||
Windows driver that provides for creating MIDI output port and transferring MIDI messages
|
||||
to mt32emu_qt, the main UI-enabled synthesiser application. It also contains mt32emu engine
|
||||
and is able to operate in stand-alone mode if the main application mt32emu_qt is unavailable.
|
||||
|
||||
mt32emu_win32drv_setup
|
||||
======================
|
||||
Helper tools intended to facilitate installation / upgrade of the Windows driver mt32emu_win32drv.
|
||||
|
||||
mt32emu_qt
|
||||
==========
|
||||
Main synthesiser application. It makes use of mt32emu and Qt to provide for:
|
||||
|
||||
1) Multiple simultaneous synths, GUI to configure synths, manage ROMs and connections
|
||||
2) Funny LCD
|
||||
3) Easy usage in different operating system environments:
|
||||
Windows multimedia, PulseAudio, JACK, ALSA, OSS and CoreMIDI supported
|
||||
4) Play and record Standard MIDI files
|
||||
5) Perform batch conversion of Standard MIDI files directly to .wav / .raw audio files
|
||||
|
||||
FreeBSD
|
||||
=======
|
||||
Files related to FreeBSD port of munt.
|
||||
@@ -1,25 +1,27 @@
|
||||
Munt mt32emu
|
||||
============
|
||||
|
||||
mt32emu is a module of the Munt project. It produces a C/C++ library
|
||||
named libmt32emu which allows to emulate (approximately) the Roland
|
||||
MT-32, CM-32L and LAPC-I synthesiser modules.
|
||||
mt32emu is a part of the Munt project. It represents a _C/C++ library_
|
||||
named **libmt32emu** which allows to emulate (approximately) [the Roland MT-32,
|
||||
CM-32L and LAPC-I synthesiser modules](https://en.wikipedia.org/wiki/Roland_MT-32).
|
||||
|
||||
This library is intended for developers wishing to integrate an MT-32 emulator
|
||||
into a driver or an application. "Official" driver for Windows and a cross-platform
|
||||
UI-enabled application are available in the Munt project and use this library:
|
||||
mt32emu_win32drv and mt32emu_qt respectively.
|
||||
[mt32emu_win32drv](https://github.com/munt/munt/tree/master/mt32emu_win32drv)
|
||||
and [mt32emu_qt](https://github.com/munt/munt/tree/master/mt32emu_qt) respectively.
|
||||
|
||||
|
||||
Building
|
||||
========
|
||||
|
||||
mt32emu requires CMake to build. See http://www.cmake.org/ for details. For a
|
||||
simple in-tree build in a POSIX environment, you can probably just do:
|
||||
mt32emu requires CMake to build. More info can be found at [the CMake homepage](http://www.cmake.org/).
|
||||
For a simple in-tree build in a POSIX environment, you can probably just run the following commands
|
||||
from the library directory:
|
||||
|
||||
cmake -DCMAKE_BUILD_TYPE:STRING=Release .
|
||||
make
|
||||
sudo make install
|
||||
cmake -DCMAKE_BUILD_TYPE:STRING=Release .
|
||||
make
|
||||
sudo make install
|
||||
|
||||
The library can be built either statically or dynamically linked. In order to facilitate
|
||||
usage of the library with programs written in other languages, a C-compatible API is provided
|
||||
@@ -28,26 +30,26 @@ the library as a plugin loaded in run-time.
|
||||
|
||||
The build script recognises the following configuration options to control the build:
|
||||
|
||||
* libmt32emu_SHARED - specifies whether to build a statically or dynamically linked library
|
||||
* libmt32emu_C_INTERFACE - specifies whether to include C-compatible API
|
||||
* libmt32emu_CPP_INTERFACE - specifies whether to expose C++ classes in the shared library
|
||||
* `libmt32emu_SHARED` - specifies whether to build a statically or dynamically linked library
|
||||
* `libmt32emu_C_INTERFACE` - specifies whether to include C-compatible API
|
||||
* `libmt32emu_CPP_INTERFACE` - specifies whether to expose C++ classes in the shared library
|
||||
(old-fashioned C++ API, compiler-specific ABI).
|
||||
|
||||
The options can be set in various ways:
|
||||
|
||||
* specified directly as the command line arguments within the cmake command
|
||||
* by editing CMakeCache.txt file that CMake creates in the target directory
|
||||
* using the CMake GUI
|
||||
* specified directly as the command line arguments within the `cmake` command
|
||||
* by editing `CMakeCache.txt` file that CMake creates in the target directory
|
||||
* using *the CMake GUI*
|
||||
|
||||
By default, a shared library is created that exposes all the supported API.
|
||||
However, the compiler optimisations are typically disabled. In order to get
|
||||
a well-performing binary, be sure to set the value of the CMAKE_BUILD_TYPE variable
|
||||
a well-performing binary, be sure to set the value of the `CMAKE_BUILD_TYPE` variable
|
||||
to Release or customise the compiler options otherwise.
|
||||
|
||||
Besides, an external sample rate conversion library may be used as an optional dependency
|
||||
to facilitate converting the synthesiser output to any desired sample rate. By default,
|
||||
an internal implementation provides this function. This can be overridden by disabling
|
||||
the build option libmt32emu_WITH_INTERNAL_RESAMPLER. The following sample rate
|
||||
the build option `libmt32emu_WITH_INTERNAL_RESAMPLER`. The following sample rate
|
||||
conversion libraries are supported directly:
|
||||
|
||||
1) libsoxr - The SoX Resampler library - to perform fast and high quality sample rate conversion
|
||||
@@ -60,14 +62,17 @@ conversion libraries are supported directly:
|
||||
Hardware requirements
|
||||
=====================
|
||||
|
||||
The emulation engine requires at least 800 MHz CPU to perform in real-time. 8MB of RAM is needed.
|
||||
The emulation engine requires enough processing power from CPU to perform in real-time.
|
||||
The exact minimum depends on many factors (e.g. CPU brand, amount of played MIDI messages,
|
||||
type of audio card and so forth). Roughly, a 800 MHz Intel Pentium III CPU could suffice.
|
||||
8MB of RAM is needed to run _mt32emu_qt_ with a single synth.
|
||||
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009 Dean Beeler, Jerome Fisher
|
||||
Copyright (C) 2011-2020 Dean Beeler, Jerome Fisher, Sergey V. Mikayev
|
||||
Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009 Dean Beeler, Jerome Fisher<br>
|
||||
Copyright (C) 2011-2021 Dean Beeler, Jerome Fisher, Sergey V. Mikayev
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
@@ -1,72 +1,86 @@
|
||||
Munt mt32emu-qt
|
||||
===============
|
||||
|
||||
mt32emu-qt makes use of libmt32emu and Qt to provide for:
|
||||
The main synthesiser application that is a part of the Munt project. It makes
|
||||
use of [the mt32emu library](https://github.com/munt/munt/tree/master/mt32emu)
|
||||
and [the Qt framework](https://www.qt.io/). It facilitates both realtime synthesis
|
||||
and conversion of pre-recorded Standard MIDI files to WAVE files. Key features:
|
||||
|
||||
1) Multiple simultaneous synths, GUI to configure synths, manage ROMs and connections
|
||||
2) Funny LCD
|
||||
3) Easy usage in different operating system environments:
|
||||
Windows multimedia, PulseAudio, JACK, ALSA, OSS and CoreMIDI supported
|
||||
4) Play and record Standard MIDI files
|
||||
5) Perform batch conversion of Standard MIDI files directly to .wav / .raw audio files
|
||||
1. Support for multiple simultaneous synths with separate state & configuration.
|
||||
2. GUI to configure synths, manage ROMs, connections to external MIDI ports and
|
||||
MIDI programs and interfaces to the host audio systems.
|
||||
3. Emulates the funny MT-32 LCD. Also displays the internal synth state in
|
||||
realtime.
|
||||
4. Being a cross-platform application, provides support for different operating
|
||||
systems and multimedia systems such as Windows multimedia, PulseAudio, JACK
|
||||
audio connection kit, ALSA, OSS and CoreMIDI.
|
||||
5. Contains built-in MIDI player of Standard MIDI files optimised for mt32emu.
|
||||
6. Makes it easy to record either the MIDI input or the produced audio output.
|
||||
7. Simplifies batch conversion of collections of SMF files to .wav / .raw audio
|
||||
files.
|
||||
|
||||
|
||||
MIDI Support
|
||||
============
|
||||
|
||||
mt32emu-qt can communicate with other MIDI applications using virtual MIDI ports which depends on the operating system.
|
||||
_mt32emu-qt_ can communicate with other MIDI applications using virtual MIDI ports which depends on the operating system.
|
||||
Currently, supported MIDI systems are: Windows Multimedia, CoreMIDI, ALSA MIDI sequencer, ALSA & OSS4 raw MIDI ports and JACK MIDI.
|
||||
In order to use this feature, the client MIDI applications need to be set up correctly, as well as some more steps may be
|
||||
necessary on particular systems.
|
||||
|
||||
Because CoreMIDI and ALSA MIDI sequencer support virtual MIDI ports natively, these systems seem simplest to use.
|
||||
As mt32emu-qt starts, it creates a virtual MIDI port and listens for incoming connections. Contrary to that, Windows Multimedia
|
||||
requires the dedicated MIDI driver to be setup in the system and mt32emu-qt instead communicates with the driver as a proxy.
|
||||
As _mt32emu-qt_ starts, it creates a virtual MIDI port and listens for incoming connections. Contrary to that, Windows Multimedia
|
||||
_requires the dedicated MIDI driver_ to be setup in the system and _mt32emu-qt_ instead communicates with the driver as a proxy.
|
||||
With JACK MIDI, MIDI ports can also be created on the fly, albeit the user does this explicitly via the corresponding commands
|
||||
in "Tools" menu. Moreover, a whole synth instance can be wrapped into a single JACK client with one MIDI input port and
|
||||
a couple of output audio ports, so that MIDI and audio processing is performed without explicitly added latency.
|
||||
|
||||
Some brief notes follow below related to each MIDI system.
|
||||
|
||||
1) Windows Multimedia
|
||||
1) *Windows Multimedia*
|
||||
|
||||
If a system happens to have a hardware MIDI-in port or an existing virtual loopback MIDI port driver, mt32emu-qt readily
|
||||
supports this configuration and should be able to open any MIDI-in port in the system by using '+' button of "MIDI Input" panel
|
||||
or "New MIDI port..." item in "Tools" menu.
|
||||
When there is no MIDI-in port available, the dedicated MIDI driver can be used to forward MIDI messages to mt32emu-qt
|
||||
for playback. This is done automatically by the driver when it detects a running instance of mt32emu-qt.
|
||||
When there is no MIDI-in port available, the dedicated MIDI driver can be used to forward MIDI messages to _mt32emu-qt_
|
||||
for playback. This is done automatically by the driver when it detects a running instance of _mt32emu-qt_.
|
||||
|
||||
2) CoreMIDI
|
||||
Upon startup, mt32emu-qt creates destination "Mt32EmuPort" and listens for connections. The user can create
|
||||
2) *CoreMIDI*
|
||||
|
||||
Upon startup, _mt32emu-qt_ creates destination "Mt32EmuPort" and listens for connections. The user can create
|
||||
more destinations by using '+' button of "MIDI Input" panel or "New MIDI port..." item in "Tools" menu.
|
||||
|
||||
3) ALSA MIDI sequencer
|
||||
Upon startup, mt32emu-qt allocates a virtual MIDI port with the first available address. This address is displayed
|
||||
3) *ALSA MIDI sequencer*
|
||||
|
||||
Upon startup, _mt32emu-qt_ allocates a virtual MIDI port with the first available address. This address is displayed
|
||||
in the title of the main window for convenience. Using this address, any MIDI client application can attach.
|
||||
This MIDI system supports multiple client connections out of the box, so many applications can easily be handled.
|
||||
|
||||
4) ALSA & OSS4 raw MIDI ports
|
||||
This MIDI system has very basic support in mt32emu-qt. The default MIDI port is automatically tried to open at the startup.
|
||||
4) *ALSA & OSS4 raw MIDI ports*
|
||||
|
||||
This MIDI system has very basic support in _mt32emu-qt_. The default MIDI port is automatically tried to open at the startup.
|
||||
The user can open and close other MIDI ports by using '+' and '-' buttons of the "MIDI Input" panel. There is also
|
||||
limited support for OSS3 MIDI sequencer primarily intended to communicate with vanilla DOSBox.
|
||||
limited support for OSS3 MIDI sequencer primarily intended to communicate with vanilla [DOSBox](https://www.dosbox.com/).
|
||||
Special provisions are needed to create a "virtual MIDI port" in order to provide a way for communication with other
|
||||
MIDI applications. The simplest approach looks to be making a FIFO and a corresponding link in the "/dev" directory.
|
||||
For example:
|
||||
|
||||
mkfifo /var/tmp/sequencer
|
||||
sudo ln -s /var/tmp/sequencer /dev/sequencer
|
||||
mkfifo /var/tmp/sequencer
|
||||
sudo ln -s /var/tmp/sequencer /dev/sequencer
|
||||
|
||||
Linux kernel also supplies a special kernel module that creates several virtual raw MIDI ports in the system. Command:
|
||||
|
||||
sudo modprobe snd_virmidi
|
||||
sudo modprobe snd_virmidi
|
||||
|
||||
creates by default 4 virtual raw MIDI ports bound with 4 ALSA MIDI sequencer ports, so both subsystems can interact easily.
|
||||
|
||||
5) JACK MIDI ports and realtime synchronous MIDI-to-audio processing
|
||||
5) *JACK MIDI ports and realtime synchronous MIDI-to-audio processing*
|
||||
|
||||
Being cross-platform, JACK MIDI stands out of other platform-specific MIDI systems, yet it may be available along with another.
|
||||
Hence, mt3emu-qt does not create JACK MIDI ports (clients) automatically, the user has to create as many clients as necessary.
|
||||
Hence, _mt3emu-qt_ does not create JACK MIDI ports (clients) automatically, the user has to create as many clients as necessary.
|
||||
In addition, menu option "New exclusive JACK MIDI port" can be used to create a single JACK client that is able to work as
|
||||
a complete synth with a MIDI input and a couple of audio outputs. However, this synth working in the exclusive mode cannot be
|
||||
"pinned", thus no additional MIDI sessions can be routed in.
|
||||
a complete synth with a MIDI input and a couple of audio outputs. However, this synth working in the exclusive mode *cannot be
|
||||
"pinned"*, thus no additional MIDI sessions can be routed in.
|
||||
|
||||
|
||||
Building
|
||||
@@ -76,7 +90,7 @@ Cmake is required for building. The minimum set of dependencies is:
|
||||
1) Cmake - cross platform make utility
|
||||
@ http://www.cmake.org/
|
||||
|
||||
2) Qt library
|
||||
2) Qt framework
|
||||
@ http://www.qt.io/
|
||||
|
||||
Additional dependencies maybe needed (depending on the platform):
|
||||
@@ -95,20 +109,20 @@ Additional dependencies maybe needed (depending on the platform):
|
||||
|
||||
The build script recognises the following configuration options to control the build:
|
||||
|
||||
* mt32emu-qt_WITH_QT5 - to prefer version 5 of Qt over version 4 if both are available"
|
||||
* mt32emu-qt_USE_PULSEAUDIO_DYNAMIC_LOADING - whether to load PulseAudio library dynamically (if available)
|
||||
* mt32emu-qt_WITH_DEBUG_WINCONSOLE - enables a console for showing debug output on Windows systems
|
||||
* mt32emu-qt_WITH_ALSA_MIDI_SEQUENCER - specifies whether to use the ALSA MIDI sequencer or raw ALSA MIDI ports
|
||||
(for Linux targets only)
|
||||
* `mt32emu-qt_WITH_QT5` - to prefer version 5 of Qt over version 4 if both are available
|
||||
* `mt32emu-qt_USE_PULSEAUDIO_DYNAMIC_LOADING` - whether to load PulseAudio library dynamically (if available)
|
||||
* `mt32emu-qt_WITH_DEBUG_WINCONSOLE` - enables a console for showing debug output on Windows systems
|
||||
* `mt32emu-qt_WITH_ALSA_MIDI_SEQUENCER` - specifies whether to use the ALSA MIDI sequencer or raw ALSA MIDI ports
|
||||
(when targeting Linux platform only)
|
||||
|
||||
The options can be set in various ways:
|
||||
|
||||
* specified directly as the command line arguments within the cmake command
|
||||
* by editing CMakeCache.txt file that CMake creates in the target directory
|
||||
* specified directly as the command line arguments within the `cmake` command
|
||||
* by editing `CMakeCache.txt` file that CMake creates in the target directory
|
||||
* using the CMake GUI
|
||||
|
||||
Note, the compiler optimisations are typically disabled by default. In order to get
|
||||
a well-performing binary, be sure to set the value of the CMAKE_BUILD_TYPE variable
|
||||
a well-performing binary, be sure to set the value of the `CMAKE_BUILD_TYPE` variable
|
||||
to Release or customise the compiler options otherwise.
|
||||
|
||||
To simplify the build configuration process in a non-POSIX environment, the CMake GUI tool
|
||||
@@ -118,7 +132,7 @@ may come in handy.
|
||||
License
|
||||
=======
|
||||
|
||||
Copyright (C) 2011-2020 Jerome Fisher, Sergey V. Mikayev
|
||||
Copyright (C) 2011-2021 Jerome Fisher, Sergey V. Mikayev
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -1,12 +1,14 @@
|
||||
Munt mt32emu-smf2wav
|
||||
====================
|
||||
|
||||
mt32emu-smf2wav makes use of libmt32emu to produce a WAVE file from an SMF file.
|
||||
SMF stands for "Standard MIDI File", and files in this format commonly have the
|
||||
extension ".smf" or ".mid".
|
||||
_mt32emu-smf2wav_ is a part of the Munt project. It makes use of [the mt32emu
|
||||
library](https://github.com/munt/munt/tree/master/mt32emu) to produce a WAVE
|
||||
file from a [Standard MIDI
|
||||
file](https://www.midi.org/specifications-old/item/standard-midi-files-smf)
|
||||
(SMF). Files in this format commonly have the extension ".smf" or ".mid".
|
||||
|
||||
This program is experimental and mainly intended as an aid to Munt developers
|
||||
and an example of embedding libmt32emu in a program.
|
||||
and an example of embedding _mt32emu_ library in a program.
|
||||
|
||||
There is no documentation, program arguments are likely to change in future and
|
||||
there are undoubtedly bugs.
|
||||
@@ -18,20 +20,23 @@ are likely to produce pleasing output. The MT-32 is *not* a General MIDI device.
|
||||
Building
|
||||
========
|
||||
|
||||
mt32emu-smf2wav requires CMake to build. See http://www.cmake.org/ for details.
|
||||
GLIB is a required dependency. Can be found at http://www.gtk.org/.
|
||||
For a simple in-tree build in a POSIX environment, you can probably just do:
|
||||
_mt32emu-smf2wav_ requires CMake to build. More info can be found at [the CMake
|
||||
homepage](http://www.cmake.org/). GLIB is a required dependency. Can be found at
|
||||
http://www.gtk.org/.
|
||||
|
||||
cmake -DCMAKE_BUILD_TYPE:STRING=Release .
|
||||
make
|
||||
sudo make install
|
||||
For a simple in-tree build in a POSIX environment, you can probably just run the
|
||||
following commands from the source directory:
|
||||
|
||||
cmake -DCMAKE_BUILD_TYPE:STRING=Release .
|
||||
make
|
||||
sudo make install
|
||||
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
Copyright (C) 2009, 2011 Jerome Fisher <re_munt@kingguppy.com>
|
||||
Copyright (C) 2012-2020 Jerome Fisher, Sergey V. Mikayev
|
||||
Copyright (C) 2009, 2011 Jerome Fisher <re_munt@kingguppy.com><br>
|
||||
Copyright (C) 2012-2021 Jerome Fisher, Sergey V. Mikayev
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
Reference in New Issue
Block a user