E-mu Emulator IV: read banks directly from EOS CD-ROM and hard disk images (stacked on #220)#222
Closed
douglas-carmichael wants to merge 3 commits into
Closed
E-mu Emulator IV: read banks directly from EOS CD-ROM and hard disk images (stacked on #220)#222douglas-carmichael wants to merge 3 commits into
douglas-carmichael wants to merge 3 commits into
Conversation
Reads and writes Emulator 4/E4X/E4XT/E4K (EOS) .e4b banks. Every preset of a bank becomes one multi-sample (voices become groups); writing turns each multi-sample into a preset of a bank, with library support for up to 1000 presets/1000 samples per bank and content-based sample de-duplication. Mapped: names, key/velocity ranges, root keys, tuning, volume, forward loops, amplitude envelope (incl. hold and velocity modulation), filter type/cutoff/resonance/key tracking and the filter envelope with its depth. Stereo samples are mixed down to mono on write. The layout follows the reverse-engineering of the mpc2emu project (see documentation/design/E4B_FORMAT.md). Validated against the mpc2emu reference parser and hardware-created third-party banks (198 presets, 1980 zones, all sample PCM byte-identical on read; written banks re-parse with identical mapping). Not yet tested on real hardware.
…ample rates to the 48 kHz EOS maximum The Read/Write row pair in SupportedFeaturesSampleFormats.ods documents the supported features. Written samples with a higher sample rate are now down-sampled to 48 kHz (the maximum EOS playback rate) with the zone and loop positions moved accordingly; lower rates are kept as before.
…mages The EOS samplers use a proprietary disk filesystem on their CD-ROMs and hard disks (they read no standard filesystem from CD at all). Banks can now be read directly from such images (.iso, .img, .hda - e.g. dumps of commercial E-mu CD-ROM libraries or images for SCSI emulators like the ZuluSCSI), both via the E4B source format and via the generic ISO/IMG source format. All geometry is taken from the superblock, so both the CD-ROM and the hard disk variant of the filesystem are read. Files which are not Emulator IV banks (e.g. EIII banks on discs of the older samplers, which use the same filesystem) are skipped. Validated against images generated by the mpc2emu reference builder (3 banks each as CD and as 1 GB hard disk image): all 198 presets read through both source formats with sample PCM byte-identical to reading the plain bank files.
Contributor
Author
|
Folded into #220 - the same two commits are now part of the main Emulator IV PR, so everything can be reviewed in one place. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #220 - only the last commit ("read banks directly from EOS CD-ROM and hard disk images") is new; the earlier commits are PR #220.
The EOS samplers read no standard filesystem from CD-ROM at all - their media use E-mu's proprietary disk filesystem (the same family the emu3fs Linux kernel module covers). Most Emulator IV content in circulation exists as images of that filesystem: dumps of the commercial E-mu CD-ROM libraries and images for SCSI emulators like the ZuluSCSI.
This adds reading of such images (.iso, .img, .hda):
EMU3entry in the format identifier, dispatched to the E4B detector - the same pattern as the Ensoniq and Roland image handling). The .hda ending was added to the ISO detector for hard disk images.All filesystem geometry (block layout, cluster size) is taken from the superblock, so both the CD-ROM variant and the hard disk variant are read with the same code. Files which are not Emulator IV banks - e.g. EIII banks on discs of the older samplers, which use the same filesystem - are skipped. The filesystem layout is documented in
documentation/design/E4B_FORMAT.md(reverse-engineered by the mpc2emu project from commercial CD-ROMs and EOS-formatted disks, cross-checked against emu3fs).Validated against images generated by the mpc2emu reference builder (the three Ian Wilson banks as a CD image and as a 1 GB hard disk image): all 198 presets read through both source formats, sample PCM byte-identical to reading the plain bank files.