Christoph Oelckers
f15be8b270
- split out the MIDIDevice implementation into its own source file.
2020-01-05 02:36:27 +01:00
Christoph Oelckers
447290aa4f
- WildMidi also done.
2020-01-05 02:31:56 +01:00
Christoph Oelckers
30f23738b3
- Timidity++ done.
2020-01-05 02:31:53 +01:00
Christoph Oelckers
08f3a349e8
- work on GUS MIDI device plus some cleanup
...
This is not tested yet!
2020-01-05 02:31:42 +01:00
Christoph Oelckers
309a45ed48
- Gave OPN device the same treatment
...
Also made some improvements to the interface.
# Conflicts:
# src/sound/mididevices/midi_cvars.cpp
2020-01-05 02:31:38 +01:00
Christoph Oelckers
f6eedb737b
- same treatment for the OPL Midi player.
...
# Conflicts:
# src/sound/mididevices/music_opl_mididevice.cpp
2020-01-05 02:17:53 +01:00
Christoph Oelckers
4aca10e062
- cleared FluidSynthMIDIDevice of most ZDoom dependencies.
...
# Conflicts:
# src/sound/mididevices/music_fluidsynth_mididevice.cpp
# Conflicts:
# src/sound/mididevices/music_fluidsynth_mididevice.cpp
2020-01-05 02:16:30 +01:00
Christoph Oelckers
726f65e91b
- more work on music code
...
- renamed the FluidSetting functions to ChangeSetting so that they can be used as a generic means to change music player options without overloading the virtual function table for each minor thing.
- pass Printf as a parameter to the MIDI renderer to uncouple it from the main GZDoom code.
- throw exceptions when setting up the renderer fails so that this can be handled consistently for all construction errors here.
- delete FluidSynth handles before the constructor aborts.
2020-01-05 02:14:14 +01:00
Christoph Oelckers
9437bcda64
- removed most dependencies on ZDoom code in ADL Midi device.
2020-01-05 02:11:52 +01:00
Christoph Oelckers
a63d90034b
- cleaned up the dependencies of the OPL interface layer.
...
This also removes the OPL dumper because I wasn't able to get any non-broken output from it and have no desire to fix such a niche feature.
# Conflicts:
# src/sound/mididevices/music_opldumper_mididevice.cpp
2020-01-05 02:11:49 +01:00
Christoph Oelckers
d018b430f7
- made the class definitions of the MIDI devices private to the implementations.
2019-07-09 22:58:08 +02:00
nashmuhandes
ddaae8e614
Added a master volume setting.
...
# Conflicts:
# wadsrc/static/language.enu
2019-04-28 22:25:50 +02:00
Christoph Oelckers
da5fccb598
- fixed: Do not pass Sysex messages to Windows's GS Wavetable synth.
...
This will totally refuse to play a MIDI if that happens.
Duke Nukem's Alienz.mid, which did not play before works after this change.
2018-11-02 13:20:57 +01:00
alexey.lysiuk
a545e7de35
- added end line to various messages
...
so they don't screw up further output anymore
(cherry picked from commit f17f8c9359
)
# Conflicts:
# src/gl/compatibility/gl_swshader20.cpp
2018-05-12 11:49:10 +02:00
Vitaly Novichkov
6308fb311b
Added support for libOPNMIDI Playing device
2018-03-24 17:58:47 +03:00
Rachael Alexanderson
0893f0c01e
Merge remote-tracking branch 'origin/master' into adlMIDI
2018-03-22 14:28:54 -04:00
alexey.lysiuk
7f17121df8
Fixed crash in MIDI to wave writer
2018-03-08 11:38:02 +02:00
Christoph Oelckers
2d2d44baad
- integrated ADL as a proper device in the MIDI device list.
...
- resorted the MIDI device menu option by device types (i.e. all SW synths first, FM synths second)
- allow setting the ADL bank.
2018-03-07 21:20:25 +01:00
Christoph Oelckers
fd801b8b94
Merge branch 'adlMIDI'
...
# Conflicts:
# src/sound/musicformats/music_midistream.cpp
2018-03-07 20:31:32 +01:00
Christoph Oelckers
9b61ee9618
- fixed: The MIDI wave writer set the sample rate to save at too late.
...
This was done after the players had already been created. To ensure that everything gets set properly it is necessary to pass the desired sample rate to the device's constructor and let it make sure that a proper sample rate gets set.
2018-03-06 22:41:27 +01:00
Christoph Oelckers
e1bb14803e
- print an error message if the requested MIDI device cannot be started.
...
This will only be done the first time a given setup fails. Repeated messages will be muted.
2018-03-03 08:52:25 +01:00
Christoph Oelckers
4c0f68bcd4
Merge branch 'master' into timidity++
...
# Conflicts:
# src/sound/musicformats/music_midistream.cpp
2018-03-02 00:08:12 +01:00
Christoph Oelckers
4ccbc4ea9e
- Send a GM reset SYSEX event when music playback is started.
2018-02-28 09:46:28 +01:00
Christoph Oelckers
eb124f6160
- made the sound font loading a bit more error resistant.
...
- implemented a fallback both for sound font lookup and for MIDI device selection so that if some non-working combination is set up, the player will fall back to something that works.
2018-02-26 16:36:30 +01:00
alexey.lysiuk
4fdf488960
Fixed MSVC compilation warning
...
VC\include\type_traits(1468): warning C4800: 'int': forcing value to bool 'true' or 'false' (performance warning)
src\sound\musicformats\music_midistream.cpp(832): note: see reference to function template instantiation 'std::function<bool (int)>::function<MIDIStreamer::SetMIDISource::<lambda_...>,int,void>(_Fx)' being compiled
2018-02-26 13:22:36 +02:00
Christoph Oelckers
27f9330c81
- reimplemented thr OPL dumoer for MIDI.
2018-02-24 18:55:42 +01:00
Christoph Oelckers
2202a52840
- made the MIDI to WAVE dumper functional again, including the option of choosing the MIDI synth and sound font with which it should be rendered.
2018-02-24 18:19:27 +01:00
Christoph Oelckers
7a851fd3f1
libADL MIDI test. It sounds awful so obviously there's still something wrong here. Definitely not usable yet.
2018-02-23 21:56:34 +01:00
Christoph Oelckers
5da1433c57
- fixed a memory leak and removed debug output.
2018-02-23 18:57:30 +01:00
Christoph Oelckers
88f9f0982c
- fixed Timidity++ playback.
2018-02-23 18:33:54 +01:00
Christoph Oelckers
ddedcd9fc2
Removed all conditional checks on HAVE_FLUIDSYNTH
...
With the current setup it makes zero sense to exclude it. This was all a remnant of its introduction when it couldn't be taken for granted.
2018-02-23 14:36:26 +01:00
Christoph Oelckers
adebd644f2
Rewroter 'writemidi' CCMD to work independently of the currently playing song's data.
...
The first benefit of separating the MIDI data sources from the playback classes. :)
2018-02-23 14:26:29 +01:00
Christoph Oelckers
9a1479ab08
Separate MIDI streamer and source creation in the high level code.
2018-02-23 13:20:07 +01:00
Christoph Oelckers
9aa1199902
Split the different MIDI format implementations into a separate 'Source' class.
...
This is necessary to write a universal, device independent wave dumper for MIDIs.
With each format inheriting from the main player class it is not possible to create a generic dumper player.
2018-02-23 12:40:43 +01:00
Christoph Oelckers
ba37f093e0
- use FluidSynth as default MIDI device and allow loading a 'gzdoom.sf2' sound font if none is specified. The search rules for this file will be the same as for gzdoom.pk3.
2017-05-13 12:33:14 +02:00
Christoph Oelckers
f9bb64a5f3
- fixed: MIDIStreamer::Update did not check if the device was still valid.
...
Stopping a song can delete device while the streamer is still valid.
2017-03-13 00:38:59 +01:00
Christoph Oelckers
daacaa961e
- removed Windows includes from two more files.
2017-03-10 23:30:30 +01:00
Christoph Oelckers
5eb9587135
- moved the various music format files into their own directory.
2017-03-10 22:26:02 +01:00