1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

two issues at the beginning of MIDI playback

Dieses Thema im Forum "BANDSTAND" wurde erstellt von WKjun, 25. Mai 2007.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. WKjun

    WKjun NI Product Owner

    Beiträge:
    12
    Hello,

    I've proudly bought Bandstand two days ago. Since then I sit here on my PC and listen to MIDI files. But there are two problems I have encountered:

    First of all my specs:
    Athlon64 3500+
    1 GB RAM
    80GB WD Caviar 8MB 7200RPM
    Windows XP SP2
    Soundblaster Live!
    Bandstand 1.0.2 (latest Update)


    About half of my MIDI files (primary game music) sound not correct at the beginning in Bandstand. I doubt that the MIDI files do not comply with GM standard, because they worked in the 90s with Soundblaster's OPL synthesis and today they work with any mediaplayer and Soundfont.
    Cause: some channels/instruments are not heard, although the instrument signs flash up in Bandstand.
    The funny thing is, Bandstand has a built in workaround. If I set it to loop playback, the next loop of the song sounds as it should. BUT looping introduces another issue, which I can prove with screenshots I made with CoolEdit. Within the first second of playback there is a pause not present at normal, non-looped, playback!


    I have prepared an attachment with samples:
    (mind the updated version samples_v2.ZIP)

    1_WMP.WAV
    Windows media player with MS GS wavetable. Sounds as it should.

    2_BS_wrong.WAV
    Bandstand playback (some instruments/channels are missing at the beginning).

    3_BS_loop.WAV
    Bandstand playback 2nd loop. Sounds correct, BUT a little pause is introduced within the first second.


    normal.WAV (thumbnail 1)
    Isolated drum channel from the above MIDI file. Playback without pause.

    loop.WAV (thumbnail 2)
    Isolated drum channel - 2nd loop. As 3_BS_loop.WAV there is a pause introduced.


    The "missing instrument" thing is obvious. To show you what I mean with the pause I made screenshots with CoolEdit. Both samples (normal.wav & loop.wav) are exactly 2 seconds long but at the beginning there is a difference. I don't think it is intended to do so, right?

    I've already tried to switch between DirectSound and Multimedia, changing the output latency and DFD buffer size and setting voices to 256 with no success.

    Thanks for your support!
     

    Anhänge:

  2. dburnz

    dburnz Forum Member

    Beiträge:
    83
    I'd suspect that the samples aren't loading completely before playback starts. Even if the channel icons flash, that may not mean the whole sample is ready.

    Try using the Quickload set found at the top of this forum.

    I have no idea about the looping problem.

    Nice detailed post though. :)
     
  3. WKjun

    WKjun NI Product Owner

    Beiträge:
    12
    Hi dburnz!

    Thanks for your nice reply! :)

    I have tried the Quickload set, but I have insufficient RAM and I cannot play back proberly.

    If you are right and the samples are not loaded in time, I wonder why there are always the same samples missing and why they are loaded properly after the first loop. Maybe it is of benefit to add a 2 second pause at the beginning of the corresponding MIDI files? Any suggestion for a simple and free editor? However I doubt that my PC is too slow for Bandstand to play back all MIDI files as they should...

    PS: What does Quickload do exactly? It loads about 1.25GB (out of 2.50GB) of samples from the library into RAM, right? Are these 1.25GB tailored to suit the needs of the momentary loaded MIDI file? If so it could help... with more RAM installed :S
     
  4. Skyline_UK

    Skyline_UK NI Product Owner

    Beiträge:
    133
    Hi WKjun
    Your PC is fine but in my view 2GB of RAM is essential these days in any music PC. Your Soundblaster uses Soundfonts which as you may know are 'cut down' samples, so they were extremely useful, especially a few years ago when PCs didn't have enough power to load and play samples any larger. But these days you can use much, much higher quality samples with all sorts of soft synths now that PCs are more powerful.

    I'm not completely sure what the preset 'Quickload' does but it certainly cured the problem I was having with Band In A Box whereby the first couple of bars of a song were often lost as Bandstand obeyed the opening MIDI instructions sent from BIAB and streamed in the required samples.

    Buy that extra 1GB and I reckon you'll be fine.

    John
     
  5. WKjun

    WKjun NI Product Owner

    Beiträge:
    12
    Could you do me a favor and play back the attached MIDI file for me? Please write here what result you have got. I bet you have the same problem and I think it is not a matter of too less RAM, the file occupies 43MB.

    Some days ago I have tried the Quickload preset, with lots of warnings for dropouts, but it played back quiet good - except for my problem. The channels won't play at the beginning but if looped they do.

    Thanks for the info about Soundfonts, I knew that already.

    Cheers!
     

    Anhänge:

  6. Skyline_UK

    Skyline_UK NI Product Owner

    Beiträge:
    133
    Hi
    I tried the piece with Bandstand in stand alone mode and also opened in Sonar with Bandstand inserted as a synth. The problem is that you have the piece starting instantly, with notes on all the tracks on beat 1, bar 1 and Bandstand cannot cope with that. It cannot load samples instantly without warning as soon as the midi notes are encountered right at the start of a song.

    When I inserted a half bar rest at the beginning everything worked fine.

    John
     
  7. snyer

    snyer NI Product Owner

    Beiträge:
    91
    It can't be the purpose of Bandstand to let us start al pieces with a rest isn't it? ... I you are right, and I suppose you are, it seems to me that there is a little bit of extra work to be done by Markus ...
    Nice regards from BE
    Luc
     
  8. Skyline_UK

    Skyline_UK NI Product Owner

    Beiträge:
    133
    There seems to be a misunderstanding here between the nature of MIDI and the nature of audio.

    Since MIDI is not the actual sounds itself but a protocol of internationally agreed instructions on patch selection, volume, effects, etc. it is impossible for any piece of software that relies on samples to receive those instructions at the start of the MIDI file, locate the sample, load it from disk, adjust the volume, velocity, panning, effects and play it in zero time! It's not a shortcoming in the product - Bandstand would have to somehow conquer time travel to be able to do it. With the file posted I didn't try resting less than half a bar, and maybe Bandstand can accomplish all this in one beat, I don't know. But it certainly can't do it in no beats!

    This is why the original poster's piece sounds ok when he puts Bandstand on loop. It's because Bandstand NOW knows about the settings as these were given effect when the piece was first played.

    Think of a human being sitting at a hardware synth ready to play a piece. He's ALREADY selected the patch, volume, effects, etc. and is waiting for someone/something to count him in. In other words, all the comparable 'instructions' embedded at the start of a MIDI file have already been understood and put into effect by the human player - before the piece can start. The player is then able to start precisely on the downbeat of the piece.

    In contrast, an audio clip is an actual recording of a performance that's already taken place in the past, so it's no magic trick to simply press 'Play' and hear the piece start precisely on time at beat one!
     
  9. WKjun

    WKjun NI Product Owner

    Beiträge:
    12
    Thank you all for your efforts here in this matter!

    Well, I think you are BOTH right!
    Yes Skyline_UK, the software needs time to read out and manage the needed samples, notes, etc. - absolutely right.
    And yes snyer, there has to be done some rework, because the timing of BANDSTAND(!) is the point.

    Let me summarize:
    .) Bandstand is not capable of playing back MIDI files of that type correct, although any other (Soundfont-)player can. It is not a question RAM, because the Quickload function does not solve it.
    .) If Bandstand is not capable of managing the file in such a short time, why not giving it the time to do so? I don't need instant playback if playback quality is compromised. At least an option for "analyse MIDI first" or so would be essential for a product like Bandstand.
    .) If Native Instruments refuses to help in that matter, users like me have to edit those MIDI files themselves and this I would define as unacceptable.

    Best regards
     
  10. ruedigerB

    ruedigerB Forum Member

    Beiträge:
    24
    As I understand, Bandstand already takes the time to load the necessary instruments before the playback begins. But for this kind of midi files it seems to ignore some of the instruments during the preanalysis.
    So there is another topic for the next (soon coming?) patch...

    Bye,
    Ruediger
     
  11. WKjun

    WKjun NI Product Owner

    Beiträge:
    12
    A third problem... the file I have attached before has "French Horns" on channel 1 (these are the ones not playing at the beginning). However, at the middle of the song it changes to "Trumpet" on the same channel. The load process for the Trumpet is so slow that it is not heard for a while and worse if I save the file as WAV Bandstand does not change the instrument at all! And the WAV file has a 6 second pause at the end of the track, a pause not existing in the MIDI file...

    I have borrowed some RAM and now have the needed 1.25GB for the latest Quickload preset and any problem I have encountered in this thread is NOT solved by using Quickload. It seems to do NOTHING except fill the RAM with useless samples.

    Please, Native Instruments, integrate a function that analyses the MIDI file for all needed instruments and load these essential samples into the RAM. This method uses much less RAM and it would be used in the only useful way. Samples are accessible in no time, like a Soundfont.
    I agree that Soundfonts are inferior to the samples in Bandstand, but at least I can hear my MIDIs correct and accurate... for a Soundfont I must not pay a cent, but now, with Bandstand in the current state, I have payed 190 Euros for nothing. :angry:
     
  12. Skyline_UK

    Skyline_UK NI Product Owner

    Beiträge:
    133
    Quote: "Please, Native Instruments, integrate a function that analyses the MIDI file for all needed instruments and load these essential samples into the RAM."

    Wkjun, I still don't see how you expect Bandstand to perform the impossible, based as it is on disk streaming technology. A midi file doesn't have a file header or anything, it only has midi commands and the very first commands are right at the front of the file and are only known to Bandstand when you trigger the file to start playing. I don't know how Bandstand can be made to see the commands, act on them (and load samples from your hard drive) in zero time so that the instant you hit play the very first notes are heard. Soundfonts can accomplish this because they are all so small, live in RAM and take such a small time to load that the delay is imperceptible.

    Perhaps Vista is the answer - with unlimited RAM all of Bandstand's samples can be in memory instead of disk!

    I'd be interested in hearing Markus' (the Product Manager) take on this.
     
  13. WKjun

    WKjun NI Product Owner

    Beiträge:
    12
    I am aware of the disadvantages of disk streaming. Anyway Bandstand can load samples into RAM, just like a Soundfont does. With the right (needed) samples loaded it can work without using the harddrive. A normal MIDI file occupies 50-100 MB RAM. At worse I think it would be 500-700 MB for a big MIDI file with lots of instrument changes. Far less than the Quickload preset needs by the way... and the Quickload preset is useless for existing MIDI files, because presets load specified instruments and when loading a MIDI file the file itself loads the individually needed instruments. This is why the harddrive is still in use when instruments change during playback.

    Well, I think it could be possible to scan the MIDI file for the needed instructions and instruments in advance. Not before pressing the play button, but when loaded. We must wait for loading the initial batch of instruments anyway. Of corse the existing method saves RAM, because a max. of 16 channels/samples are loaded into RAM at once. But as we see it is unusable this way for MIDI files created this way.

    My suggestion: Bandstand has the ability to perform a WAV write within seconds and after that it would know what it needs for this file. Instead of a WAV write Bandstand could scan over the file and load the needed samples in advance. It would take just some seconds.

    Honestly, I have bought Bandstand for General MIDI playback. Isn't it part of General MIDI to change instruments within playback. Unimaginable how this could be overseen by the programmers... 2GB RAM existed back then already at an quiet affordable price.

    Hm... for me it looks like no NI member has read this article yet. How can I contact Mr. Markus if not in this forum?
     
  14. WKjun

    WKjun NI Product Owner

    Beiträge:
    12
    Hello, I'm back again with a new machine.

    My new specs:
    CPU: Athlon64 X2 6400+ Black Edition
    RAM: 2 GB RAM DDR2-800 CL4
    MB: DFI LanParty UT 790FX-M2R
    HDD: 74GB WD Raptor 16MB 10.000rpm
    2x 250GB WD Caviar RE 16MB 7.200rpm @ RAID1
    Windows XP SP2
    Soundblaster X-Fi Xtreme Music
    Bandstand 1.0.3 (latest Update)


    After a long time I have installed BS again and start from scratch. The sad news, all the problems still exist. I have bought this product to hear MIDI files "as they should sound". This is not the case.

    1. Stuttering when instruments change during playback:
    It should be possible for BS to analyse the loaded MIDI file so that it loads every needed instrument into RAM, like it would happen with a classic soundfont. In the current condition it is impossible to play a MIDI file that uses a channel for more than one instrument, as loading a new instrument when playing ruins the song (QuickLoad present doesn't help).

    2. When song starts fist time a delay is added:
    see first posting

    3. When certain songs start the first notes are not played at all:
    ...but it does play all notes when the file is looped and starts from the beginning. Stop/play the file adds the trouble again.

    4. Bandstand.exe stays in RAM sometimes:
    I have to kick it out of the task manager sometimes after closing BS. It still uses hundreds of MB of RAM. Why stays it there?

    5. Wrong MIDI settings crash the application:
    If I mess around with the midi settings (for example setting the left output routing to none) it crashes and does that every time since. The only way to cure it is to edit the registry manually. I think you could implement some error handling?

    I hope I can use this software as intended sometime...

    PS: Does anybody know a good MIDI editing program? I want to test some overriding of these problems by adding 1-2 sec. pause at the beginning of a song and placing every needed instrument on a single channel, so that every instrument is loaded from the beginning.

    Thanks!
     
  15. dburnz

    dburnz Forum Member

    Beiträge:
    83
    OK, I'll take another stab at this. :)

    1) Bandstand needs time to load the samples. ANY MIDI playback device needs SOME time to initialize patches called for in a MIDI file. Even a hardware Soundfont device, like a SoundBlaster card, takes time, you just don't notice it because the soundfonts are so small (compared to BS), and hardware is always going to be faster than software. I use several hardware synths, inclucing a Roland XV-2020 and Motif Rack ES, and a MIDI file with a large setup requirement can choke them too.

    It's not a fault of BS, it's physical reality.

    2) It's not adding a delay. It's loading samples. It works on the second try because the samples are already loaded by the first attempt.

    3) See #2.

    4) I don't know.

    5) I don't know the cure, and I have had some similar problems with BS crashing. But, once I set it up in a way that works (for me), it has been very stable. I use it as a backup in performance, and use it as my main MIDI module in some venues, where I don't want to carry in hardware.

    It's true, BS is not perfect. I think it sounds as good as my XV-2020, but not nearly as good as the Motif. Also, other softsynths sound better (Sample Tank, etc.) but do not offer the advantages of quick setup and instant GM compatitbility that BS does.

    As for your PS, please remember that any MIDI file you want to use will have to be edited to suit your hardware. It is common for commercial MIDI files to have setup info in the first bar and then a bar of silence to let the playback device (hardware or software) make the adjustments it needs. So, having a delay of one or two seconds at the start of a MIDI file is the norm.

    If you want to add a bar to all your MIDI files, and do other kinds of editing, try GNMIDI. It's not a full blown sequencer, but it comes in pretty handy for the kind of work you need to do, I think.

    http://www.gnmidi.com/

    Good luck. Try to remember, every tool has its uses and limits.

    :)
     
  16. WKjun

    WKjun NI Product Owner

    Beiträge:
    12
    Hey dburnz!

    Thanks again for your interest in my situation. :cool:

    That is all true what you wrote, still I don't (want to) realize that I have bought a pretty expensive piece of software that cannot cope (functionality wise) with my existing soundfonts that sound nearly as good as BS. The point is that BS advertises GM compatibility and that your MIDI files are played back as they should sound, but it doesn't work this way. And that is the solution: It has to load the needed samples into RAM to act like a soundfont! Loading samples while it plays back is a stupid (sorry) idea anyway. It is ok to spare RAM, but these days it is not nescessary and that proves that BS was released too early and doesn't do what it should do.

    So the user should be able to:
    1. select all wanted samples and load it into RAM ahead
    2. or let BS scan the MIDI file to load the needed samples into RAM ahead


    These steps are essential because BS doesn't keep the loaded samples in memory and load them again from the HDD even the file has been played back before (otherwise I let BS play back the file and after that everything is ok, this would also be ok).

    Please NI, implement one of these functions with the next patch! :S
     
Status des Themas:
Es sind keine weiteren Antworten möglich.