GithubHelp home page GithubHelp logo

git-moss / convertwithmoss Goto Github PK

View Code? Open in Web Editor NEW
172.0 172.0 13.0 4.14 MB

Converts multisamples from a source format (WAV, multisample, KMP, wavestate, NKI, SFZ, SoundFont 2) to a different destination format.

Home Page: https://www.mossgrabers.de/Software/ConvertWithMoss/ConvertWithMoss.html

License: GNU Lesser General Public License v3.0

Batchfile 0.03% Java 99.73% CSS 0.18% Shell 0.03% Makefile 0.04%
converter multi-sample music samples

convertwithmoss's People

Contributors

git-moss avatar philipstolz avatar redtide avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

convertwithmoss's Issues

build fails 7.3

The deb build fails with the following error message:

/usr/bin/gdebi:113: FutureWarning: Possible nested set at position 1
c = findall("[(/\S+[])]", msg)[0].lower()
dpkg-deb: error: archive 'convertwithmoss_7.3.0-1_amd64.deb' uses unknown compression for member 'control.tar.zst', giving up
dpkg: error processing archive convertwithmoss_7.3.0-1_amd64.deb (--install):
dpkg-deb --control subprocess returned error exit status 2
Errors were encountered while processing:
convertwithmoss_7.3.0-1_amd64.deb

I have tar, zstd, and libzstd-dev installed on my system. (AVlinux, based on Debian 11)

Any clues?

Issue with text label display on new tabs in v7.3

hi.

the latest 7.3 version has a problem for me where it is not displaying any text label on the new tabs. see screenshot.

i'm running on an Ubuntu 22.04.3 LTS and have installed convertwithmoss_7.3.0-1_amd64.deb (previous 7.2 worked fine, obviously didn't have the same tabs).

perhaps i'm missing some font rendering library or something?
any idea how i can make this work correctly.
i really want to use the new TAL sampler support...

image

thanks

converted folders/files

Hi
great work by the way , very useful application, hope you don’t mind another suggestion, when converting a sf2 bank, in which more than one of the individual instruments references the same sample, the resulting conversion would be much smaller if the all the .xpm files and the samples with original names were all in the same folder. Rather than in separate folders and therefore duplicating the samples. Hope that’s clear.
Regards
Steve

Conversion from MPC Keygroup to Bitwig does not work.

@git-moss

Running 5.1 - Converting from MPC Keygroup into Bitwig does not work for me on Windows 10. When I press convert, all files are reported as "Done" and everything seems to be fine, but when I try to load the patch in Bitwig, then I am getting this error (screenshot attached):

Could not read metadata: Mandatory RIFF chunk data missing.

https://i.postimg.cc/Z55FHkTS/2022-07-06-07-53-06-Audio.jpg

edit: I tried to convert (just in case) from MPC into SFZ and that seems to be working. I mean samples are loaded fine so I believe the converter is working fine, it's just that Bitwig output is broken.

Build documentation

Hello! I've been looking at this project (since I needed a tool to convert dslibrary files to standard sf2) and I noticed there's no build documentation.

Any headers on how I could build the project?

DecentSampler dsbundles

Feature Suggestion.

I've recently used your immensely useful tool to convert 70 Sample-packs from "Samples From Mars", from Kontakt into DecentSampler.

ConvertWithMoss makes either dslibraries or dspresets. I prefer the latter. But using dspresets makes a messy file listing in the file browser, since it shows all the sample-subfolders also.
image

To fix this, i convert them to "dsbundles" and now they look pretty:

image

The conversion is as simple as:

  • Rename the category folder to .dsbundle (ie Bass.dsbundle)
  • add a DSLibraryInfo.xml inside the .dsbundle folder

the xml file contains:

<?xml version="1.0" encoding="UTF-8"?>
<DecentSamplerLibraryInfo name="Bass"/>

Where "Bass" i just the folder name in my case. And thats it.

I've created a python script to do this locally, after conversion, but i think it would be cool for everybody to have this ability, which is why i write this. Maybe as an option under DecentSampler Preset Output Format. "[x] Make Preset Bundles (.dsbundle)".

Heres the script for reference:

import os
# run from the root of your converted stuff. Ie, the "output" dir from ConvertWithMoss

dryrun = 1  # Set to 0 to make changes to the filesystem

def create_ds_library_info_xml(dir_name):
    xml_content = f'''<?xml version="1.0" encoding="UTF-8"?>
<DecentSamplerLibraryInfo name="{dir_name}"/>'''
    return xml_content

def process_directory(directory):
    print(f"Checking directory: {directory}")
    for root, dirs, files in os.walk(directory, topdown=True):
        # Skip .dsbundle directories
        dirs[:] = [d for d in dirs if not d.endswith('.dsbundle')]
        
        has_dspreset = any(file.endswith('.dspreset') for file in files)
        has_dslibrary_info_xml = 'DSLibraryInfo.xml' in files

        if has_dslibrary_info_xml:
            print(f"Found DSLibraryInfo.xml in {root}, stopping further search in this directory.")
            dirs[:] = []  # Stop delving deeper into this directory
        elif has_dspreset:
            new_xml_path = os.path.join(root, 'DSLibraryInfo.xml')
            new_xml_content = create_ds_library_info_xml(os.path.basename(root))
            new_dir_name = f"{root}.dsbundle"
            
            if dryrun:
                print(f"+ Would create {new_xml_path}")
                print(f"+ Would rename {root} to {new_dir_name}")
            else:
                with open(new_xml_path, 'w') as f:
                    f.write(new_xml_content)
                os.rename(root, new_dir_name)
                print(f"+ Created {new_xml_path} and renamed {root} to {new_dir_name}")
                
            dirs[:] = []  # Stop delving deeper into this branch

if __name__ == "__main__":
    base_directory = '.' # Change this to the path you want to search
    process_directory(base_directory)

I've only tried converting these "Samples From Mars" libraries, so forgive my ignorance if the fix isn't as straightforward as I currently think. :)

SFZ flac

Hello. Thank you for this nice sample tool.
I wonder is it possible to add converter from SFZ wav instruments to SFZ flac instruments? Flac is widely used today between sample creators.
thanks in advance

linux - convert KMP/KSF to anything produces no files

I built CWM on fedora linux in order to convert some KSF files to another format. I tried to convert .sf2 to .wav and it was successful, so i'm pretty sure the app works, but when i point it at a directory of .ksf files, it runs the analysis, but nothing else happens. There are no errors, just

"Detecting and converting multi-samples...

Analyzing: /home/xxx/sounds/xxx

Finished."
Is there something else i can try to figure out what's going on?
thanks!
bill

Problem when converting to .xpm

Noticed that the end loop point is the actual sample end not the embedded end loop point.
When converting from .sf2 to .xpm

[Feature Request] MPC Keygroup: Concatenate samples into one big file

Creating MPC Keygroups generates the .xpm file and a huge stack of separate sample files which clutter the folder (and make browsing for instruments slower on the standalone boxes). I suggest concatenating all the instrument samples into one huge sample file and just marking the sample frame position into the instrument file.

Instruments Presets Number not applied in SF2 file

Hi, congratulations on your project, I want to report that ConvertWithMoss doesn't recognize the presets number in SF2 files, when convert SF2 files it misses the presets attributes that gives the GM ordering, Ej. if convert 001-Piano it loses the preset number and miss the ordering, 001-Piano is supposed to be the first preset but after converted to any other format it misses the preset number and now is ordered by name and not by GM order number, I hope you can fix this detail because it's hard to find the presets out of GM order.

Stereo samples are falsely identified as L + R split samples

I tried to create an MPC Keygroup program from raw stereo samples, where the files had an identifier for both the layer number and the midi note in the filename. The processing fails with the error

`Could not create multisample: Attempt to combine Mono splits into Stereo files but not all notes have the same number of files.
Key: 1

  • Sample 1: LAYER1_001.wav
  • Sample 2: LAYER1_101.wav`

as the app assumes I have L and R mono samples as source.
I tried a different name for the layer tag but the processing still fails.

The files are named LAYERn_m.wav, where n is the layer number (1-4) and m is the MIDI note number (1-128).

Add support for SoundFont 2 (Destination)

Is it possible to add support for SoundFont 2 ?

For example, a user who has an nki or other format and can convert it to SF2 format

This would help many of us

I await response

HISE format support

First off, many thanks for this awesome software - I'm grateful for the possibility to take advantage of sounds I may not have been able to use otherwise.

I was curious if you had any thoughts on supporting HISE (https://hise.dev/, https://github.com/christophhart/HISE), particularly as an output format. DecentSampler has gotten a fair amount of attention for being free software and an open sampler format, but the benefit of HISE (aside from being open source) is that it is much more advanced, and could potentially support a broader featureset from the input format (if not for features that could be automatically converted - NKI's group insert fx comes to mind - HISE supports scripting which may be necessary to reimplement some advanced features)

Doesn't like 32bit wavs, rendered with Sox

Rendered some files with Sox whilst debuging root note issue, these cause lots (!!) of warning messages.

Detecting and converting multisamples...

Analyzing: C:\Users\simon\Documents\MPC\20211014_keygroup_exp_[ProjectData]\sources\71264_v2_BanjoUkulele_DaveHilowitz_SFZ\Banjo Ukulele [SFZ]\silent

Analyzing: C:\Users\simon\Documents\MPC\20211014_keygroup_exp_[ProjectData]\sources\71264_v2_BanjoUkulele_DaveHilowitz_SFZ\Banjo Ukulele [SFZ]\silent\Samples

Analyzing: C:\Users\simon\Documents\MPC\20211014_keygroup_exp_[ProjectData]\sources\71264_v2_BanjoUkulele_DaveHilowitz_SFZ\Banjo Ukulele [SFZ]\silent\Banjo Ukulele.sfz
Can't read sample file. Either not a WAV or broken: %1

java.io.IOException: de.mossgrabers.sampleconverter.exception.CompressionNotSupportedException: Unsupported data compression: Extensible

at de.mossgrabers.sampleconverter.core.DefaultSampleMetadata.addMissingInfoFromWaveFile(DefaultSampleMetadata.java:538)

at de.mossgrabers.sampleconverter.core.detector.AbstractDetectorTask.loadMissingValues(AbstractDetectorTask.java:292)

at de.mossgrabers.sampleconverter.format.sfz.SfzDetectorTask.parseVelocityLayers(SfzDetectorTask.java:204)

at de.mossgrabers.sampleconverter.format.sfz.SfzDetectorTask.parseMetadataFile(SfzDetectorTask.java:114)

at de.mossgrabers.sampleconverter.format.sfz.SfzDetectorTask.readFile(SfzDetectorTask.java:87)

at de.mossgrabers.sampleconverter.core.detector.AbstractDetectorTask.detect(AbstractDetectorTask.java:83)

at de.mossgrabers.sampleconverter.core.detector.AbstractDetectorTask.call(AbstractDetectorTask.java:112)

at de.mossgrabers.sampleconverter.core.detector.AbstractDetectorTask.call(AbstractDetectorTask.java:37)

at javafx.concurrent.Task$TaskCallable.call(Task.java:1425)

at java.base/java.util.concurrent.FutureTask.run(Unknown Source)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.base/java.lang.Thread.run(Unknown Source)

Caused by: de.mossgrabers.sampleconverter.exception.CompressionNotSupportedException: Unsupported data compression: Extensible

at de.mossgrabers.sampleconverter.file.wav.DataChunk.calculateLength(DataChunk.java:61)

at de.mossgrabers.sampleconverter.core.DefaultSampleMetadata.addMissingInfoFromWaveFile(DefaultSampleMetadata.java:533)

... 12 more

Can't read sample file. Either not a WAV or broken: %1
C:\Users\simon\Documents\MPC\20211014_keygroup_exp_[ProjectData]\sources\71264_v2_BanjoUkulele_DaveHilowitz_SFZ\Banjo Ukulele [SFZ]\silent>head -n 20 "Banjo Ukulele.sfz"
<group>
seq_length=8
ampeg_release=10
trigger=attack
lovel=0
hivel=79

<region> pitch_keycenter=60 lokey=60 hikey=60 seq_position=1 sample=Samples/BU1_60_C3_p_1.wav
<region> pitch_keycenter=61 lokey=61 hikey=61 seq_position=1 sample=Samples/BU1_61_C#3_p_1.wav
<region> pitch_keycenter=62 lokey=62 hikey=62 seq_position=1 sample=Samples/BU1_62_D3_p_1.wav
<region> pitch_keycenter=63 lokey=63 hikey=63 seq_position=1 sample=Samples/BU1_63_D#3_p_1.wav
<region> pitch_keycenter=64 lokey=64 hikey=64 seq_position=1 sample=Samples/BU1_64_E3_p_1.wav
<region> pitch_keycenter=65 lokey=65 hikey=65 seq_position=1 sample=Samples/BU1_65_F3_p_1.wav
<region> pitch_keycenter=66 lokey=66 hikey=66 seq_position=1 sample=Samples/BU1_66_F#3_p_1.wav
<region> pitch_keycenter=67 lokey=67 hikey=67 seq_position=1 sample=Samples/BU1_67_G3_p_1.wav
<region> pitch_keycenter=68 lokey=68 hikey=68 seq_position=1 sample=Samples/BU1_68_G#3_p_1.wav
<region> pitch_keycenter=69 lokey=69 hikey=69 seq_position=1 sample=Samples/BU1_69_A3_p_1.wav
<region> pitch_keycenter=70 lokey=70 hikey=70 seq_position=1 sample=Samples/BU1_70_A#3_p_1.wav
<region> pitch_keycenter=71 lokey=71 hikey=71 seq_position=1 sample=Samples/BU1_71_B3_p_1.wav
<region> pitch_keycenter=72 lokey=72 hikey=72 seq_position=1 sample=Samples/BU1_72_C4_p_1.wav

C:\Users\simon\Documents\MPC\20211014_keygroup_exp_[ProjectData]\sources\71264_v2_BanjoUkulele_DaveHilowitz_SFZ\Banjo Ukulele [SFZ]\silent>"c:\Program Files (x86)\sox-14.4.2\sox.exe" --info Samples\BU1_60_C3_p_1.wav

Input File     : 'Samples\BU1_60_C3_p_1.wav'
Channels       : 1
Sample Rate    : 8000
Precision      : 32-bit
Duration       : 00:00:03.00 = 24000 samples ~ 225 CDDA sectors
File Size      : 96.1k
Bit Rate       : 256k
Sample Encoding: 32-bit Signed Integer PCM

BU1_60_C3_p_1.zip

SF2 to XPM issue

I've tried to convert some SF2 such as :
https://drive.google.com/file/d/1e5nPbx7_yPY6mNr3H1pInUgTKmGM6cHo/view?usp=sharing
(from https://sites.google.com/site/soundfonts4u/ )

For a MPC One. But the sample files are not correct (the next samples seem to be starting right inside the existing samples)
The samples are looping continuously and the panning is set all the way to one side.

I'm using version 6.3.0 from git (revision: 44f70d1 )

Let me know if you want me to try things out.

"Sample chunks are not identical", the only change is the 'MIDI Unity Note' field

For a bunch of conversions that fail, I get this error:

if (!Arrays.equals (this.sampleChunk == null ? null : this.sampleChunk.getData (), otherSample == null ? null : otherSample.getData ()))

I wrote a little python tool to dump the wav file and get this report:

 strings /tmp/wav.txt | grep Manuf | sort
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 36, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 36, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 42, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 42, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 48, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 48, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 54, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 54, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 60, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 60, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 66, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 66, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 72, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 72, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 78, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0
Manufacturer: 71, Product 72, Sample Period: 22676, MIDI Unity Note: 78, MIDI Pitch Fraction: 0, SMPTE Format: 30, SMPTE Offset: 0, Num Loops: 8, Data: 0

As you can see the sampled note is recorded to the MIDI Unity Note field. What do you think about ignoring this field in the comparison?

Option to avoid copying the samples

After running the tool converting from wav to sfz using the same input/output dirs, with "create folder structure" and "add new files" options enabled, I get this result with all the samples copied.

> tree a_basses/
a_basses/
├── acid
│   ├── aci_c1.wav
│   ├── aci_c2.wav
│   ├── aci_c3.wav
│   ├── aci_f#1.wav
│   └── aci_f#2.wav
├── acid Samples
│   ├── aci_c1.wav
│   ├── aci_c2.wav
│   ├── aci_c3.wav
│   ├── aci_f#1.wav
│   └── aci_f#2.wav
├── acid.sfz
├── basp
│   ├── was_d#1.wav
│   └── was_g#2.wav
├── basp Samples
│   ├── was_d#1.wav
│   └── was_g#2.wav
├── basp.sfz
...

Would it make sens to have an option to reuse the sample folder structure? It would place merged stereo files next to the 'l/r' files and only create the multisamples on level up.

MPC keygroup to KSF/KMP issue

When converting multiple velocities samples inside KSF overwrite each other. Instead of creating new folders it just overwrites samples

NKI to Bitwig Multisample fail.

Hi perhaps a bug... a java issue, i don't know...

Linux Mint (ubuntu) / CWM v7.5.0


Analyzing: /home/guru/Téléchargements/samples/00/Tama TS-305.nki
Detected Kontakt Container format (created with Kontakt 5.6.5.13) - Little-Endian.
Mapping: /Tama TS-305.nki
Using default volume envelope for category 'Drum Kit'.
Storing: /home/guru/Téléchargements/samples/bitwig/Tama TS-305.multisample
...Could not create multisample: Cannot invoke "de.mossgrabers.convertwithmoss.core.model.ISampleData.writeSample(java.io.OutputStream)" because the return value of "de.mossgrabers.convertwithmoss.core.model.ISampleZone.getSampleData()" is null


ConvertWithMoss Drum Kit Kontakt KontaktInstrument

result in destination file (zip extracted), the xml file and only 2 samples :

/home/guru/Téléchargements/samples/bitwig/Tama TS-305.multisample_FILES/multisample.xml
/home/guru/Téléchargements/samples/bitwig/Tama TS-305.multisample_FILES/bd-8.wav
/home/guru/Téléchargements/samples/bitwig/Tama TS-305.multisample_FILES/bd-9.wav


original 30 samples in source folder :

/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/bd-1.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/bd-2.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/bd-3.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/bd-4.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/bd-5.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/bd-6.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/bd-7.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/bd-8.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/bd-9.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/bd-org2.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/click.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/click-2.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/crash.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/hihat-1.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/hihat-2.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/hihat-3.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/oh.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/oh-2.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/rim.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/sd-org.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/tama2.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/tom-1.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/tom-2.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/tom-3.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/tom-4.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/tom-5.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/tom-6.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/tom-7.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/tom-org1.wav
/home/guru/Téléchargements/samples/00/Samples/Tama_TS-305/tom-org2.wav

Korg Wavestate from SF2/SFZ not working correctly

Hi,

I've been trying to convert the Salamander Piano SFZ (a few variants) to Korg MultiSample for Wavestate, and while the sample loads into Sample Builder, there are no samples attached. I think the filenames may be the problem, since the filenames produced don't have MIDI numbers, but I'm not sure. In any case, I've tried the 5 layer, 6 layer, and 15/16 layer versions and I can't get any of them to load correctly with the samples mapped to the right notes (normally, there are no samples at all in the file). Am I missing something? I reviewed the manual, but I can't find what I'm doing wrong. Thank you!

SFZ -> XPM : Pianobook 'Banjo Ukelele' fail due to 'seq_length=8'

Found ConvertWithMoss and PianoBook in the same week... so had to give it a go making some MPC Keygroups.

Sample Source:
https://www.pianobook.co.uk/packs/banjo-ukulele-banjolele/

Unfortunately had some issues, firstly it appears that the samples are assigned to the wrong note (off by one).
imported_to_mpc

banjo_1st_attempt.zip

But digging deeper this is not the only issue. It appears that the sound pack contains 200sample files, and the convertor makes a XPM with 200 'instruments'.

...
Instrument {'number': '199'}
Layer {'number': '1'} Banjo Ukulele_BU1_84_C5_p_3
Layer {'number': '2'} Banjo Ukulele_BU1_84_C5_f_3
Low Note: 84
Root Note: 84
High Note: 84
-
Instrument {'number': '200'}
Layer {'number': '1'} Banjo Ukulele_BU1_84_C5_p_4
Layer {'number': '2'} Banjo Ukulele_BU1_84_C5_f_4
Low Note: 84
Root Note: 84
High Note: 84
=
Lowest Note: 60
Highest Note: 84
Last Instrument: 200

When imported to MPC only the first 128 are taken. It should also be noted that have 'instruments' have overlapping note ranges, then only one of these can be played - making the others superflous.

...
Instrument {'number': '127'}
Layer {'number': '1'} Banjo Ukulele_BU1_75_D#4_p_3
Layer {'number': '2'} Banjo Ukulele_BU1_75_D#4_f_3
Layer {'number': '3'} None
Layer {'number': '4'} None
Low Note: 75
Root Note: 75
High Note: 75
-
Instrument {'number': '128'}
Layer {'number': '1'} Banjo Ukulele_BU1_75_D#4_p_4
Layer {'number': '2'} Banjo Ukulele_BU1_75_D#4_f_4
Layer {'number': '3'} None
Layer {'number': '4'} None
Low Note: 75
Root Note: 75
High Note: 75
=
Lowest Note: 60
Highest Note: 75
Last Instrument: 128

I'm totally new to the convertor and SFZ maybe this is all the 'fault' of the source material.

I have been playing with XPM files for a while and have a Python script for working with them here:
https://github.com/mungewell/mpd-utils/blob/master/utils/keygroup.py

Add support for Blackbox autosampler format

Feature request:

Be able to convert from (maybe to also) the Blackbox (1010music) autosampler which is a folder of WAV files. Although I think you could do it through the WAV file format conversion, it wasn’t straightforward for me.

It’d be nice to have a template for it so you could simply select it for conversion. Despite it being fairly straightforward it’d be straightforward to implement and less work on the user part.

The multi samples are stored in a folder per instrument and look like this:

IMG_8241

The first value is velocity and the second the MIDI number.

BTW, If there is a workaround for now does anyone have an idea how exactly with this MIDI note number? Thanks.

Cannot build Linux version

I wonder whether anyone has succeeded building the Linux version apart from Moss. :)

First, sh ./jpackage-linux.sh makes mvn complain about the location of JAVA_HOME. After looking everything in my system, I realized that the problem is this line in the script:

export JAVA_HOME=/home/mos/java/jdk-16+36/

After commenting this line, the script starts compiling but ends with errors:

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] error: invalid target release: 16
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  56.406 s
[INFO] Finished at: 2021-07-25T23:34:44+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sampleconverter: Compilation failure
[ERROR] error: invalid target release: 16
[ERROR] 
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

At this point, I don't know what to do. I only wanted to try this cool converter, not to embark in Java debugging (I have no clue about Java).

Help, please!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.