Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to fix tempo for rubicon.sid ? #4

Open
SkybuckFlying opened this issue Dec 10, 2019 · 18 comments
Open

How to fix tempo for rubicon.sid ? #4

SkybuckFlying opened this issue Dec 10, 2019 · 18 comments

Comments

@SkybuckFlying
Copy link

SkybuckFlying commented Dec 10, 2019

Hi,

How to fix tempo for rubicon with your xsid to midi tool ?

Rubicon.zip

Try listening to rubicon music 1 with sidplay or convert to xsid.

Then try use xsid to midi and then listen to midi. Clearly the tempo is not right.

I tried a couple of parameters XSidToMidi but I don't understand them.

Maybe the conversion was wrong with xsidconvert ? maybe update rate must be different ?

Since you understand these tools much better I was hoping you might now what the problem is and how to fix it ? :)

Bye,
Skybuck.

P.S.: Rubicon.sid is attached as zip file to this issue (see blue link above)

@M3wP
Copy link
Owner

M3wP commented Dec 10, 2019

Tested SID to XSID, seems correct
Tested wav dumps from XSIDToMIDI, seems correct
Tested single instrument midi dump from XSIDToMIDI, seems correct.

This may be a problem with your MIDI playback software. Perhaps try a division value of 96 or different software. If you have no software in particular, I would recommend attempting to get a copy of the DirectMusic Producer editor run times. It was based on some very fine Amiga software and although the DirectSound interfacing is terrible, you can do a lot with it.

Please note that the tempo setting in XSIDToMIDI really has no effect. The times are all calculated based on the tick clock (PPQN) and so only the division value will have an effect on the output. The tempo and time signature are for reference only.

@SkybuckFlying
Copy link
Author

I use this tool to play with the midi files and sound fonts:

http://falcosoft.hu/softwares.html#midiplayer

(I also load "timbres soundfont" sounds nice).

This is a "soundfont midiplayer".

Do you happen to know it ? Could you check that your conversion works like it should in midi player ?

So that you can determine if it's an issue with midiplayer, or something else...

Cause now I am confused why it would work on your system and not mine, except if it's indeed this midiplayer. I will try open mini with windows media player.

I just checked, windows media player doesn't seem to play it well either. Hmmm ? Maybe I tried one more conversion tomorrow and see if problem remains I think it will cause I tried multiple conversions already... strange this is other conversion tool also slows down the tempo, so it's not just your conversion tools that do this.

Or perhaps the tempo is at it should be I will listen to sid file and xsid and see if it s same tempo, I can't really make sense of it, for now the conversion is too bad or something, but it might be indeed the same.

It seems the sid is of a slower speed then the xm file, perhaps somebody just speed it up.

rubicon_99.zip

Perhaps you can figure out the speed of this xm file and compare it to the sid ?

I am correct to simply run the sid at double the speed to match this sound/speed ? Or does the XM use some special tempo ? Hmmm...

This getting slightly out of the scope of this tool and github, but this is a nice piece of music and might deserve an exception to figure out this mystery =D

@M3wP
Copy link
Owner

M3wP commented Dec 10, 2019

I'm sorry, I couldn't say. The only thing I can suggest is changing the division value or perhaps working with the tempo after generation. I can't help you with "xm" files, I'm afraid.

Are you attempting to playback a conversion of the whole song? The default settings will most likely not give you sensible output. You really do need to tell the program what to do for each "instrument" it has found before you'll get any useful data.

@SkybuckFlying
Copy link
Author

SkybuckFlying commented Dec 11, 2019

OK I have some questions about the XSidToMidi tool, for example:

The tool shows a list of I pressume are instruments correct ?

Then inside each instrument line it shows: "wave forms" there seem to be multiple with N and [] and numbers and such, what does this mean ? Are these perhaps offsets into the xsid file ?

I assume these are detected waves which are similiar and are treated as one instrument or do I understand this wrong ?

Then it says: "note count" I assume this is the number of times this note/instrument is played/detected inside the xsid file ?

I don't understand what "used notes" mean.

Then it says: "bend range" don't understand what this is either... seems some kind of pitch/modulation manipulation effect or so ?

The MidiPlayer I used allows instruments inside midi to be replaced with any instrument in the soundfont bank so I already had some success via midiplayer to listen to what it might sound like and that was a lot of fine. I don't yet know how to store these mappings via midiplayer.

XSidToMidi allows midi mappings to be set as it outputs a midi file so I will try that.

Right now I am dumping IK+.sid instrument waves so I can listen to the waves and then see which midi instrument fits best with that instrument and then I will try and set the midi instrument number inside the mapping and slowly re-generate the midi until it's mappings are nice and then listen to it's results...

I also wonder if it's possible to "melt" midi's together, since this xsidtomidi tool can also produce individual midis, but I wouldn't know how to melt them together, I guess this seperated midi might be a faster way to test mappings/sound output and such.

A wave visualizer or midi visualizer to see where the notes are played on a time line would be nice, I think there is a special tool for that as well... would be nice to create a tool where everything is more integrated and such... for now I will use gold wave editor to find at what time the instruments play in the waves to listen to them and then decide the mapping.

If I run into issues I will let you know =D

I don't understand the difference between notes and drums and how that relates to midi... hmm ?

Note mode and drum mode ? Do I need to set some kind of loading bank ? Or are they both part of the same mapping from 1 to 127 ?

OH I have immediately run into an issue I was under the impression that XSidToMidi could re-map the instruments to some number in the midi/soundfont bank.

So far it only allows to renames the instruments, maybe that can be used but doubtfull, it does allow to set channels, but that is not good enough I think it should also allow "program" to be set ? Not sure how to do that... hmmm... program would be the instrument number... I will try setting instrument number/name and see if that helps. (Also Bank MSB cannot be set ? I think this is something special and allows multiple banks to be present at same time or so, but for now one bank is already cool).

This has no effect, so as far as I can tell XSidToMidi is kinda useless for "remapping" instruments to certain instruments, at least it's good enough to extract instruments, so I think it will need some more work to be really usefull to produce a good midi.

I will have to probably find some other tool to fix up these produced midi files ? ;)

@M3wP
Copy link
Owner

M3wP commented Dec 11, 2019

Yes, XSIDToMIDI processes the XSID file and produces a list of "instruments" or "patches" that are used in the tune.

The "waveforms" field shows changes in the waveform register. It is a comma-separated list of flags and duration (in ticks) that a instrument uses over time.

Note Count is the number of times the "instrument/patch" plays. Used Notes is the number of unique notes played. This gives you a sense of whether or not the instrument is a drum or percussion part (the fewer Used Notes, the more likely).

Bend Range is the tonal range over which a note is played or the pitch covered by a note while gated.

The mapping of a SID "instrument/patch" to a MIDI one requires knowing if it is a regular part or a drum part.

Drum parts are "collected" into the one channel, the GM drum channel 10. You need to identify which notes to use in the MIDI mapping for each used note in the SID patch. Only the standard GM list of drums is given.

Regular parts use a unique MIDI channel unto themselves and have a wide range of options and uses.

You should be able to copy and paste parts in your MIDI editor program. If not, you need a new one.

Some familiarity with MIDI, specifically GM, patches, channels and controllers is required.

@SkybuckFlying
Copy link
Author

SkybuckFlying commented Dec 11, 2019

So far the other tool sid2midi produces better result for ik+.mid

Don't know exactly why, it does loose some instruments, also channel 10 is stuck in drum mode ? can't get it into note mode, don't know why xsid2mid insists that it should be a drum mode ? Even if I set it to note mode it still seems to make a drum mode ? Hmmm... (Not entirely sure thouh)

Maybe it;s better if XSid2Mid let user decide what mode should be used, not sure though ;) if drum mode and there are notes then it will probably start playing different instruments, cause drum mode seems to work much differently with different instruments on each note/key of keyboard... though perhaps xsid2mid could force a certain instrument to only play 1 particular drum note... to combat slight tune variatios or maybe use pitch for notes instead or so.

@SkybuckFlying
Copy link
Author

SkybuckFlying commented Dec 11, 2019

Drum parts are "collected" into the one channel, the GM drum channel 10.

Ok thanks for explaining this, is there anyway the mention midi player might show more information of the keys in channel 10 on the keyboard ? Hmm

At least it shows letters and number that might be of some help, no names for drums though.

Also could you maybe convert IK+.sid to .xsid and then to .midi ?

Cause you know the program best, I am kinda wondering what your program is capable of and how good it's results could be if knowing how to use it better.

This is probably a difficult sid to convert cause it's kinda weird and uses a lot of pitch for certain instruments and the instruments in the original sid sound really high pitch... and a lot of pitch is used as well... mapping these to general midi instruments will be a bit weird/akward though with the other convert tool it does sound good with "saw wave" and don's synth brass or something like that.

I will try again with this new information, the it also asks for source and dest in drum mode ?

It doesn't show all numbers in drum mode, but names, this will make it more difficult to translate to what I am seeing in the midiplayer. I could ofcourse switch to another tool, but for now trying with midiplayer... Perhaps adding numbers behind the names might help.

For now I don't quite understand what source and dest mean in drum mode could you explain that as well ?

@SkybuckFlying
Copy link
Author

SkybuckFlying commented Dec 11, 2019

Just as a test, I set all mappings for ik+.xsid to drum mode. It seems XSid2Mid automatically selects source and dest ? Is this a best fit method ? Or am I missing something ?
I will now dump to midi and see what it sounds like :) and if it actually does what I told it to do, convert everything to drum mode, so in theory only channel 10 would be used by all instruments or something... ok indeed it does convert everything to channel 10 kinda funny.

@M3wP
Copy link
Owner

M3wP commented Dec 12, 2019

Hmm.. I don't know. I've done the conversion of IK+ using both tools myself and there is a great deal missed by the other. It does a "fair" job but there is a whole lot lost.

If there are more than 15 instruments or patches, the channel assignment will by default "wrap" around and you will lose some. There are only 16 channels in MIDI.

In GM MIDI, channel 10 is always a drum channel and this is used here. It should help you reduce the number of total channels required since many drum sounds can be grouped onto channel 10. You simply map the notes.

Click "Load..." and find the file "IK+.xs2m"

IK+ - Test.zip

Here I have mapped all the patches and you can experiment with dumping them.

I did it in multiple passes for some patches to recover drums and simplify chords.

Don't forget to check the filter...

@SkybuckFlying
Copy link
Author

What is the filter for actually ? I don't get that part ? It seems to add some kind of random noise ? Ok I will check your conversion/project/zip... curious :)

Also once channels are mapped to drum channel, how can I map them further ? There seems to be some kind of source and dest, not sure what that is about..

What source mean and what dest mean ? What does it relate to inside a midi file ?

@SkybuckFlying
Copy link
Author

Ok now looking at your project file I see many more instruments/rows ?! My conversion/project only finds 12 rows, so how did you turn it into 28 rows ??

@SkybuckFlying
Copy link
Author

SkybuckFlying commented Dec 12, 2019

Well I can say I am impressed a little bit... it's a bit better than my conversion =D

Channel 1 does seem to be hit by the wrap around of instruments you mentioned, almost seems like 1 instrument don't belong there but ok. I will now try to install a more advanced daw, then one you recommended and I will see how far I get with that ;) :)

@SkybuckFlying
Copy link
Author

SkybuckFlying commented Dec 12, 2019

Ok, I found this link:

https://www.dropbox.com/s/dsflk91sxu90qx0/DMP9.7z?dl=0

It contain's Microsoft DirectMusic Producer, you mean the one from Microsoft right ? This would be version 9b or so.

Clicked the downward arrow to download it, extract it and installed it all seems fine so far, seems quite an old program, but I am intrigued a little bit to see if this is truely a good program like you say it is ! =D From amiga days alledgly or something lol. The installer was whicked old-school, I kinda enjoyed that ! ;) So far it seems to be a 32 bit program ;)\

Hmm on first start it says: "failed to update registry, please use regedit". So far it seems to be working. I have this strange feeling I have seen this before, I hope not, or maybe it was during the days I installed SDK kit and took a curious look at it, now I will try and take it a bit more seriously ! ;) =D

@SkybuckFlying
Copy link
Author

SkybuckFlying commented Dec 12, 2019

Ok Music Producer is working, where do I take it from here ? Start new project ? What would I choose as new project type ? For now I will give "project" try.

I saw no way to open a midi file, so I just drag and dropped it into the GUI this seemed to work and its now added to the project tree view.

I tried double clicking on midi file, but this just plays it in media player... hmm...

Now I want to try and edit this midi file... not sure yet how to proceed doing that with this tool, will take a look around.

@SkybuckFlying
Copy link
Author

OK, I am completely lost inside Music Producer, I tried all project types, but it makes no sense to me, I would like to somehow edit song.mid file and play with instruments/assignments of midi instructions, channels, maybe play it, maybe delete notes, stuff like that, can this program do that ?

Or do I start from scratch and load some kind of other files ???

@SkybuckFlying
Copy link
Author

I will try the helpfile and follow the tutorial there, maybe that will get me started ! ;) :)

@SkybuckFlying
Copy link
Author

Ok, I tried out this program, it's pretty advanced and nifty,

However for now I think MidiPlayer will be better and easier to use to try out certain sounds for certain channels and I just found out it can save the "re-patched" midi as well as shown in this youtube video, it was also in the FAQ:

https://www.youtube.com/watch?v=0bearxOIBPk&feature=youtu.be

So this is what I want to do for now, and then maybe later modify the midi to somehow sound better, perhaps by deleting certain notes or so, for that purpose music producer might come in handy.

Can you think of anything else where MusicProducer might come in handy for making midi files, like ours, that where converted for sids/xsids, to sound better ?

So far:

New instruments, new tempo, deleting notes is what I can think of, maybe sustain/delay or something but I don't know much about that.

I am also very curious how to modify the drum channel and notes or keys, perhaps that is something where music producer might come in handy ! ;) :)

First I will try use midi player to already set the instruments for the channel, so far my experience has shown that simply listening to the midi file and than changing it will I listen or go solo for one channel works best to select good sounding sounds/instruments.

I also tried another approach where I would first listen to wav files and then try and pick a sound which sounds samiliar, but this didn't really work out that well... it might require volume changes per channel or so... it might be a better fit in some way but it just won't sound so good in the whole of it.

So for now, they changing it while listening to it approach seems to produce a bit better sounding file, not sure yet if I will keep using this method.

So far I am a bit disappointed by midi notes, I miss hi-hats, I miss drums. I wanna have more drums and hi-hats and all kinds of quick sounds for this IK+.mid but there seem to be none, except in the drum kits/drum channel ?!

So how would I move notes from channel 1 into a drum channel if that makes any sense... hmmm...

This kinda sucks though.... that midi is split into notes and drum channels.... cause now it makes it a bit more complex for me to play with sounds. What your thoughts on that ?! ;)

Since there is only one drum channel, it seems likely that drum notes on other channels might conflict with each other if they put on only 1 channel so it seems this is a somewhat serious midi limit ?!?

@M3wP
Copy link
Owner

M3wP commented Dec 12, 2019

In DirectMusic Producer, you import midi files as segments. Sorry, it is nice but does have a learning curve. So create a new project and then import midi files as segments. Patch information is held in bands.

I am curious that you say you only got 12 rows when you tried the same file? It would give an error message if it found something unexpected like that.

No MIDI Patch information is assigned to regular channels. You need to do this in your DAW.

Any number of notes can be sounding (up to your synth's polyphony limit) at once on a channel, including drums.

The drum channel is for the case where you want to have a large bank of sounds that you play in the same way all the time such as you do for percussion hits. This is different to how a channel is usually used, to create notes for a specific instrument.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants