A little information about this project:
The aim of this remaster is to use the samples and tools I have at my disposal to produce a cohesive and comprehensive remastering of all the midi files available from the Daggerfall Unity GitHub. Some of the midi files are clones/duplicates that are only slightly different due to the different soundcard profiles of the time (MPU-401, SoundCanvas, SoundBlaster, AdLib, etc.) So I'll only be remastering one "branch" of the files; which ever seem to have more data, and/or behave better with my sample libraries. So that the files load into Daggerfall Unity without much issue, they will be rendered to OGG Vorbis format so that they can be moved to the appropriate folder and automatically loaded in by the game.
For the orchestral instrument samples, I'm using a combination of VSCO2-Community-Edition sample libraries, and Virtual-Playing-Orchestra-3. These are loaded using Plogue's Sforzando VSTi software. I also have a smattering of orchestral samples from EastWest (from a Christmas release freebie they did back in 2012)mixed in or layered for certain tracks. Synthetic tones are done using a combination of a VA-synth called Tyrell Nexus 6 by UHE, and samples from the Alchemy Player pack. Reaper 5 is my DAW of choice. For the mixing/balance/"mastering" part, I'm using a combination of Terry West's MHorse P3 processor, Analog87 Equalizer, and LookAhead Limiter. On some of the percussion and timpani tracks, I also use a little bit of compression, either NI Supercharger, or Red3 Compressor. The rest is just adjusting levels, and making sure things sound good between different songs (same pan positions, reverb levels, overall character, gain, etc.)
Here is the info for the released project:
Daggerfall Music Remastered RAR file:
https://drive.google.com/open?id=1Jts2c ... Z3BFdvO1IT
It's also available on ModDB:
https://www.moddb.com/downloads/daggerf ... -music-mod
Select tracks from the project on Soundcloud for previewing:
https://soundcloud.com/bytemixer/sets/d ... ject-final
Download the rar file, and extract with an appropriate utility (winrar, 7zip, etc.).
1: Create a folder called Sound inside the DaggerfallUnity_Data\StreamingAssets folder.
2: copy the .OGG files directly into the Sound folder as loose files.
Enjoy!
------------------------------------------------------------------------------------------------------
I didn't want to necro the previous thread about midi, so I thought I'd start a new one, also my topic is a little different.
Also, Hi, I'm new here, freshly arrived after finding out about the Unity port a few days ago.
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
Apologies if this post gets a bit long, but I wanted to cover some basic information about Midi and Midi data, and then go into something I'd like to contribute if it is worthwhile or feasible (though that bit might be better in the Modding forum, and I can copy/paste the idea over there). The development here still appears to be going strong, and I have high hopes, much like I did Dagger XL before it fizzled.
Anyway, on the subject of midi: as some may know, MIDI is an acronym for musical instrument digital interface. Many consider Dave Smith as the father of MIDI (he's also the owner of Dave Smith Instruments, formerly Sequential Circuits, and designer of many notable hardware synthesizers over the years)
Standard midi is literally just data set up as a set of instructions or events to tell an instrument/player/soundcard what to do when reading the file. It's set up as a timeline of events. Note-On, Note-Off, Midi Key number (like A3, C# 3, Eb4, etc.) Aftertouch, Pitch, Modulation, Velocity, Volume, and other "CC" messages that can be uses to control various aspects of a software or hardware instrument. The old standard values range from 0-127 (or 1-128) There are other data values such as Sysex, RPN, and NRPN that also handle different things, but I won't go into detail on those, as I don't really mess with them myself.
Neither here nor there, but a new MIDI standard is currently in the works ("HD Midi") which implements a wider range of values. This would suggest smoother change of values over time, and less "aliasing" when a parameter moves through a range of values.
Moving on, a soundfont is just a catalogue of instrument samples arranged by patch numbers. When that catalogue is available to the player, the instruments are chosen based on which patch is assigned to a track in the midi file being played. Usually a track within a midifile is set to play a certain patch. There can also be a patch change event within that track to swap to a different instrument. This was often done to accommodate instruments where polyphony or memory was limited. The patches are usually determined by GM Standard, a.k.a. General Midi, where patch 1 is a grand piano, 41 is a violin, 57 a trumpet, and so on and so forth. There are other standardized instrument/patch banks as well, like Yamaha's XG banks, or Roland's GS banks.
I'm somewhat glossing over the more granular details, but that's kind of how midi works in a nutshell; a file is loaded, and data is streamed to a music device during playback. Notes and Events are triggered by the data during playback, and the instrument reacts accordingly.
----------------------------------------------------------------------
Now, that said, most digital audio workstation (DAWs) are capable of importing midi files and expanding them so it's 1 instrument per track. Just the data, not the audio that the data "performs." MIDI has no audio attached to it, which is why a player, instrument or soundcard needs an instrument bank, soundfont or sample set to be able to "perform" the midi file. Many home keyboards can play back midi files using a General Midi Bank. Some pro keyboards can do it as well, but they don't always have a general midi bank, and the patch change in the midi file will often just trigger a particular synth or workstation patch on a professional device. It really depends on the device, though, and how the architecture of the instrument is handled.
Now, my memory here is sketchy, but back in the DOS days, when you had your SB16s, AWE32's, Turtle Beach Montegos, and SB Live Platnimum 5.1's, a game would basically have a dll built in that sends a stream out to the soundcard, and the soundcard could be configured to send midi data out to an external instrument via the serial Joystick port (if the soundcard didn't have built-in MIDI 5-pin DINs). This was usually set either in a config file, or within the game itself, depending on the game, or utility or whatever. Or during setup while installing a game with various choices like "Roland GS, SC88, GM, Sound Canvas, etc.)
At least that's what I recall, I'm pretty sure there are some gaps and maybe not everything I went on about is as accurate as I would like. But I hope that helps with some understanding.
------------------------------------------------------------
Now, as for where I'd like to come in, and maybe this section belongs in the Mods forum, I'm not entirely sure, since I'm not a coder. But I guess it's similar to replacing a texture, and easily just as involved. It's something I'd be doing in my free time, (which I have a bit of right now) so I don't have a time table for it, much less an ETA.
What I'd like to do, and I don't know if this is worthwhile or if there is any point to it, but I'd like to take a stab at basically remastering the old Daggerfall midi files, rendering them into high-fidelity mp3/wav audio files (mostly likely mp3 as Wav files are huge). If someone can extract the midi (.mid) files from Daggerfall, (or point me where to go get them if already available somewhere) I can import them into Reaper (my DAW of choice), and basically load high quality VST instruments and samples into the tracks, rebalance the mix, improve the atmosphere and sound stage, and render to 320kbps mp3 or standard 16-bit 44.1KHz WAV files. I also have a few, more professional keyboards that I can route out to, and record audio back into the DAW. e.g. for some of the acoustic samples, I can route midi out to my Roland VR-09, and record its outputs onto an audio track. For synthetic instruments, I can route out to my Nord Lead 2X. etc. etc.
I have a bit of time these days, and I'd be willing to take a crack at it, but I can't really give a time frame to which I'd be done (plus job/moving status in September is totally up in the air right now) I also have commitments to a couple bands I play keys with at the moment, and the odd live recording work that comes my way if and when it happens. But I can work on it when I have time. I can do a few files, as scratch tracks, and put them up on google drive (my dropbox is usually a bit full as I swap files around with band members.....yes I'm a keyboardist in a band).
Granted, depending on the soundfont/patch/style of the Daggerfall midi files, there would be room for artistic interpretation of the track as far as synthetic instruments go, but I do have available decent acoustic samples that I can load into a track, and then adjust the entire mix as far as stereo/acoustic space (reverb, etc.) and get a pretty balanced mix. As well as being able to route to and record from a couple hardware keyboards/synthesizers (Nord Lead 2X, Roland JD-Xi, and a Roland VR-09)
--------------------------------------------------------------
I'm thinking about approaching this in phases:
1st phase, quick and dirty "scratch" tracks; getting VSTis and samples into the tracks, doing some very basic rough mixes, and popping out the mp3/wav files as a first step, to get an idea of how things might sound. Basically, similar to what happens with a soundfont, but I'm just popping the appropriate instruments into the tracks, and quickly getting them output/rendered to see how they sound. Might be a bit "dry" sounding, but probably not any worse than a soundfont. I could make them available pretty quickly for use. And, again, can still route to my keyboards for a more personal touch, adding in and/or layering sounds you won't find in any soundfont.
2nd phase, polishing up the mixes per music track by music track (adding FX and EQ/Compression where needed, adjusting levels, space, depth and width, etc.) basically rebalancing the mixes on a track by track basis. Also, possibly beef up some of the more ambient (dungeon) music by layering a couple different synth instruments together to create more movement and providing a more evocative experience.
3rd/final phase: (kind of the hard part, as I might start second guessing myself here) adjusting the tracks as a whole, so they "fit" together as a complete project, and all have about the same volume levels and the same "character", so that nothing is too loud or too quiet when changing between music tracks, and they all sound like they're part of the same piece of work as a whole. I may not go too overboard with this, and mostly focus on making sure dynamics between music pieces are fairly balanced and stable.
Granted they'll still be midi files, and probably still feel a bit "robotic" but at least the fidelity will be much higher. I can't really say that it'd be on the same level as say the remastered music for Descent XL (I think they basically did complete remixes from scratch of all the old music, and it's bloody amazing) but it will be better than what exists currently, well, barring ones artistic tastes I suppose, haha! But I would do my absolute best to preserve and enhance the moods and feelings of the music.
I'm making an educated guess that the midi files in-game are simply looped before changing areas or regions. On a region/location change, the first track is faded out and the new track starts. So I guess the music isn't really more dynamic than fade-out fade-in from one track to another when changing regions, so I won't really be too concerned with setting loop points. Not sure if the rendered music file would keep the mid-song loop point anyway. I'm guessing the midi files are also all sitting in the MIDI.BSA file so the game can access them on an as needed basis.
I don't know if Unity works with wav/mp3 files as part of the base engine, or if the game could hook into such a player to load/unload the files as needed. But regardless, some code would probably have to be ported and hook into the music player, and modified somewhat even if the new music files have the same filename as the old midi files.
The other issue is that high quality mp3 files can get to be pretty big. e.g. one of my songs is about 6:00 min long with 10 instrument tracks (some midi with samples, some recorded audio and vocals), and the 320kbps mp3 file is roughly 13MB in size. I could export as 256kbps, and that might drop it to around 8MB, but still a mammoth increase over, say a 12KB midi file! A stereo 16-bit 44.1KHz WAV file of that same song would be almost 60MB.
Anyway, hope the information helps, and let me know if basically doing a music remastering would be something worthwhile or not. Maybe Unity will play more nicely with more standard audio formats. (just please, please don't make me learn FMOD or WWISE!!!!!!!!)