Vienna Symphonic Library Forum
Forum Statistics

194,165 users have contributed to 42,912 threads and 257,926 posts.

In the past 24 hours, we have 1 new thread(s), 13 new post(s) and 85 new user(s).

  • last edited
    last edited

    @cm said:

    another issue is the needed amount of preloaded samples. this is basically only neccessary to fill the various bufffers (soundcard, audio application, operating system, harddisk I/O) and *hide* the various latencies.
    128 kB (=32.768 samples 16 bit stereo) is a common value for most samling engines - ViennaInstruments needs far less (and is 24 bit!).
    256 Byte (= 64 samples 16bit stereo) is a common value for soundcards - many users need to use a higher value because their system cannot deliver such a data stream continuosly.

    any efforts in this direction (reducing amount of preloaded data) are useless IMO and stay theoretical unless we get storage media with an almost-zero seektime like compact-flash or solid state disks with enough capacity for a reasonable price.
    christian


    Just reading this again... not sure if I mis-read your post, but you seem to be indicating that you would still need a pre-load of the original size?

    That isn't so.

    The approach I am suggesting would reduce the preload buffer size by the factor of 'n' (which is where the memory savings occur). The buffer would be a 'virtual' buffer in that it would only hold some of the data and synthesise the missing data that lies between the data points. Synthesise meaning that it would either repeat the same sample point 'n' times or interpolate from the points either side.

    I am presuming that the pre-load buffer is entirely controlled inside the C++ VI application to make this possible?

    Just in case this wasn't clear...

    I'm still looking into trying this out... I want to write a Java app that reads a 44100 .wav file and creates a new .wav file using this approach. I want to produce .wav files at different freq and using different 'draft' settings and see what they sound like.

    The proof of the pudding - in this case - is in the hearing...

    Stay tuned... (if you've not already tuned out)

  • Wtih a PCMCIA card plug in to an external box housing memory and/or hard drives, and with future laptops hopefully housing 16gigs plus of RAM - the technolog is almost there to easily run the full cube on a laptop, it must be less than 2 years away.

  • I just had this idea to circumvent the 2GB RAM software limitation when having more of RAM installed: Why can't the sampler developers use a virtual disc, a RAMDisc? Or several of them?

  • VSL forum is where the engeneering lives ... [:P]
    not a bad idea, although this is something the user had to configure in his operating system.
    AFAIK also a RAM-disk is limited to 2GB. to use several ones would need to have the available physical memory in your computer.
    so 1 RAM-disk 2 GB, kernel memory 1 GB (for windows, drivers, ect), user memory 2 GB (for samples) makes 5 GB RAM in total on your computer and you'd need an operating system which can use more than 4 GB (eg. windows 2003 server enterprise edition - happy downsizing, btw.)

    somehow it looks as if we'd need a vista64bit version to get somewhere, and then a 64bit VI could run on it and - we would not need any RAM-disk .... seems cat bytes tail
    christian

    and remember: only a CRAY can run an endless loop in just three seconds.
  • Engineering is fun! A lot of engineers are musicians funnily enough...

    The other thing that struck me with reference to the 'draft' mode idea is that its primary aim is to reduce the memory used by pre-loading the samples.
    Perhaps, if that is the case, the draft quality need only apply to the pre-loaded samples. All subsequently streamed samples would be played as they currently are, at full quality?
    The pre-load size is so small and most notes have a slow(ish) attack, that you may not notice the difference...
    The utopia here is to not have any pre-load. It is merely there, as Christian has pointed out, to circumvent the latency in your system.
    In my humble opinion, the only real barrier to having the entire cube loaded is the issue of the RAM used by the pre-load. If we can intelligently solve that problem...

  • I agree, with what little I know, it seems to me that the fact is that the best solution here is to wait a short while for technology to catch up. Spending money on software development to compensate for the lack of capable hardware will only result in that software being redundant because by the time it's ready and usable, the hardware availability will negate the need for the compensatory software development in the first place. At best there will be a 6 month to 1 year period when the software would be worthwhile having been developed and usable (and then you have to ask how many would use it?). Of course I'm guessing at technology changes over that time, but generally speaking, the investment of time and money probably wouldn't be worth it, so it's probably better to wait for the hardware to catch up. I think Mac laptops even now *could* hold 16gigs(???), if the chips were available in that size ie 2X 8gig simms. PC's I don't know about but as cm says, a 64bit OS will yield results in the hardware department - better to let MS do the work there and again the hardware will catch up quickly thereafter (straight away for towers, a bit later perhaps for laptops)

    Miklos.

  • The solution should be solved both by hardware and by software. There is bound to be a need to load and play more samples in the future and you'll find yourself right back where you started... software always lags behind hardware.
    What has been spoken about on this forum shouldn't technically be that difficult to implement. In fact, I am developing a proto-type of this in software as we speak to prove whether it will work or not.
    I'll make my findings available to the technical team of VI
    Fingers crossed...

  • last edited
    last edited

    @cm said:

    VSL forum is where the engeneering lives ... [:P]
    not a bad idea, although this is something the user had to configure in his operating system.
    AFAIK also a RAM-disk is limited to 2GB. to use several ones would need to have the available physical memory in your computer.
    so 1 RAM-disk 2 GB, kernel memory 1 GB (for windows, drivers, ect), user memory 2 GB (for samples) makes 5 GB RAM in total on your computer and you'd need an operating system which can use more than 4 GB (eg. windows 2003 server enterprise edition - happy downsizing, btw.)

    somehow it looks as if we'd need a vista64bit version to get somewhere, and then a 64bit VI could run on it and - we would not need any RAM-disk .... seems cat bytes tail
    christian


    Well, for people with a 4GB machine that still could be a temporary solution for the 2GB limitation until Vista is out.
    Setting up a RAMdisc is not too hard and the Sampler just needed another option in the preferences dialog...

    BTW, I'm an engineer's son... [[;)]]

  • last edited
    last edited

    @cm said:

    VSL forum is where the engeneering lives ... [:P]
    not a bad idea, although this is something the user had to configure in his operating system.
    AFAIK also a RAM-disk is limited to 2GB. to use several ones would need to have the available physical memory in your computer.
    so 1 RAM-disk 2 GB, kernel memory 1 GB (for windows, drivers, ect), user memory 2 GB (for samples) makes 5 GB RAM in total on your computer and you'd need an operating system which can use more than 4 GB (eg. windows 2003 server enterprise edition - happy downsizing, btw.)

    somehow it looks as if we'd need a vista64bit version to get somewhere, and then a 64bit VI could run on it and - we would not need any RAM-disk .... seems cat bytes tail
    christian


    Actually, upon further investigation, this is a real possibility. If you have a look at the following link:
    http://www.gigabyte.com.tw/Products/Storage/Products_Overview.aspx?ProductID=2180&ProductName=GC-RAMDISK
    ... you'll see that the RAMDisk here is 4gb... in fact, if you think about it, there is no reason why it could not be bigger. After all, it is merely using RAM to store what is otherwise stored on magnetic media. The index into the RAM isn't address space as in memory, but is file system based therefore isn't subject to the same 32bit addressing limitations. Obviously magnetic drives can be 100s of GB, therefore in theory so can RAMDisk.
    Therefore, if you could somehow separate the preloaded files from the streamed files, you could place those on RAMDisk for fast access.
    Playing back samples would therefore mean that you would need NO pre-load at all in your memory space. When you hit a note, the VI player would simply load the 'pre-load' file on the RAMdisk, then subsequently start loading the non 'pre-load' file on the slower drive.
    Of course, once harddrives become totally RAM based and memory and disk converge... [:)]
    Christian... does that sound at all possible?
    You will also notice that the above product has a back-up battery so data remains on the RAMDisk after shut-down... In other words the pre-load files could be loaded onto the RAMDisk and left there. This would mean ZERO load times for VI. Just bring up the VI VST and go...

  • i'm leaving aside now considerations if it would be even possible to *split* the preload-portion from the rest of the data (as paynterr assumes) to be stored on an extra drive, this goes too deep into the design of the VI.

    but there is something moving http://techreport.com/onearticle.x/10116 and from what i've heard 16 GB is on their roadmap although i found no information about needed RAM-sticks (4GB?) and pricing.
    common server chipsets can hold 32 GB RAM in 16 slots and need ECC memory, so following this idea could easily get very expensive quickly.

    a zero-loadtime would even then be not possible considering the read-cycles for RAM and a rough calculation turns up that max. available throughput would be limited by several components to ~250 MB/s (where capital B means Bytes). not a bad value, but still *only* 1/6 load time than with a very fast harddrive (~40 MB/s).

    so from a value-for-money pont of view (and to avoid complexity of a setup) i'd say it's more reasonable to invest in a high-end raid system, which (correctly configured) can give you 110-150 MB/s.

    besides it is of course interesting to think about such optimizations - isn't it a little bit frightening that we are talking about components usually found in supercomputers and number-crunchers when the aim is just to make music?
    christian

    and remember: only a CRAY can run an endless loop in just three seconds.
  • Rather interesting, I would say! I found an unofficial announcement that Gigabyte wants to offer the i-RAM 2 with up to 16GB RAM which is not fitted on a PCI card but in a 5 1/4" housing.

    Although the price for the i-ram seems to be somewhere between 120 and 150 $ it is cheaper than a second computer with all the other problems.

  • The RAM disk would seem to only be a viable possibility if:
    a) It was so large that you could load a significant number of the VI on there (unlikely in the near future)
    or
    b) The VI samples were split into "pre-load" and "stream" sample files, the pre-load being placed - presumably - on the ram disk. The slower stream files placed on your normal disks.