I am having an audio problem with Ivory Cantabile on a Dell Studio 17, w/ Intel Duo Processor on Vista 64. On one ocasion it worked perfectly but I have been unable to figure out why. The processor is not even hitting 30% of it total processing power, and I have 4gb of ram... with 2gb completely free. I also have all the unnecessary options (that I know of) in Ivory turned off.
I have looked at the log (below) and I would appreciate any help I can get.
TIA
-------------------------------------------------------------
14:15:05 [A2]: OS Version:Unknown Workstation 6.0 build 6001 (sp1.0) - Service Pack 1
14:15:05 [A2]: Number of processors: 2
14:15:05 [A2]: C:\Program Files (x86)\Synthogy\Ivory\Ivory Cantabile.exe - v2.0.0.2034
14:15:05 [A2]: Application starting...
14:15:05 [A2]: AudioThread - Debug flags set to 0x00000000
14:15:05 [A2]: Initializing SampleLib
14:15:05 [A2]: Initializing SkinLib
14:15:05 [A2]: Registering controls
14:15:05 [A2]: Initializing GraphLib
14:15:05 [A2]: Checking direct sound
14:15:05 [A2]: Checking CPU capabilities
14:15:05 [A2]: - CPU supports MMX instruction set
14:15:05 [A2]: - CPU supports SSE instruction set
14:15:05 [A2]: - CPU supports SSE2 instruction set
14:15:05 [A2]: Loading skin resources
14:15:05 [A2]: Setting skin theme
14:15:05 [A2]: Loading skin layout
14:15:06 [A2]: Application startup complete.
14:15:06 [A2]: midimux(in) - Adding target Midi Recorder
14:15:06 [A2]: midimux(in) - Adding target MidiMuxer
14:15:06 [A2]: Initialising VST...
14:15:06 [A2]: midimux(int) - Adding target Onscreen Keyboard
14:15:06 [A2]: CantabileMain WM_ACTIVATE 0x00000001
14:15:06 [A2]: AudioEnvironment - Loading Settings...
14:15:06 [A2]: midiin - USB Uno MIDI Interface: Connected to MidiMuxer
14:15:06 [A2]: AudioEnvironment - Loading Audio Driver...
14:15:06 [A1]: DriverList - Failed to open registry key - 2
14:15:06 [A2]: AudioEnvironment - Loading audio driver Speakers / Headphones (IDT High Definition Audio CODEC)...
14:15:06 [A2]: dsound - Initialising DirectSound driver - Speakers / Headphones (IDT High Definition Audio CODEC)
14:15:06 [A2]: dsound - Creating DirectSound...
14:15:06 [A2]: dsound - Setting cooperative level
14:15:06 [A2]: dsound - Creating DirectSoundCapture...
14:15:07 [A2]: dsound - Initialisation complete
14:15:07 [A2]: mastbus - Connecting to audio driver Speakers / Headphones (IDT High Definition Audio CODEC)
14:15:07 [A2]: CantabileMain WM_ENABLE 0x00000000
14:15:07 [A2]: CantabileMain WM_ENABLE 0x00000001
14:15:07 [A2]: UpdateCaption(Show tray icon): 'Ivory Cantabile'
14:15:07 [A2]: UpdateCaption(OnCreate): 'Ivory Cantabile'
14:15:07 [A2]: Enter LoadSession C:\Users\Ninja Mark\Documents\My Ivory Cantabile Files\ear training.ivory_cantabile/(null)
14:15:07 [A2]: Enter LoadDocument C:\Users\Ninja Mark\Documents\My Ivory Cantabile Files\ear training.ivory_cantabile
14:15:07 [A2]: CantabileMain WM_ENABLE 0x00000000
14:15:07 [A2]: midimux - Adding target (Unnamed)
14:15:07 [A2]: vstplug - Locating plugin 0x49767279
14:15:07 [A2]: vstplug - Loading C:\Program Files (x86)\Synthogy\Vstplugins\Ivory VST.dll...
14:15:07 [A2]: vstplug(Ivory VST) - Library loaded
14:15:07 [A2]: vstplug(Ivory VST) - Entry point (main) succeeded
14:15:07 [A2]: vstplug(Ivory VST) - Magic OK
14:15:08 [A2]: vstplug(Ivory VST) - effOpen OK
14:15:08 [A2]: vstplug(Ivory VST) - Wants Events: 1
14:15:08 [A2]: vstplug(Ivory VST) - Wants Midi: 1
14:15:08 [A2]: vstplug(Ivory VST) - Sends Midi: 0
14:15:08 [A2]: vstplug(Ivory VST) - Loading bank parameters
14:15:09 [A2]: Leave LoadDocument, finished
14:15:09 [A2]: CantabileMain WM_ENABLE 0x00000001
14:15:09 [A2]: UpdateCaption(CDocument::SetTitle): 'ear training - Ivory Cantabile'
14:15:09 [A2]: midimux(int) - Adding target Vst Rack Manager
14:15:09 [A2]: mastbus - Connecting to audio source Vst Rack Manager
14:15:09 [A2]: AudioEnvironment - Engine Starting (hard)
14:15:09 [A2]: vstrackitem(Ivory VST) - Starting
14:15:09 [A2]: audrec - Starting...
14:15:09 [B2]: audrec - Writer thread started
14:15:09 [A2]: AudioEnvironment - Multiprocessor support enabled (Safe Mode)
14:15:09 [A2]: midiin - USB Uno MIDI Interface: Device opened
14:15:09 [A2]: midiin - USB Uno MIDI Interface: Device started
14:15:09 [A2]: dsound - Buffers size: 512
14:15:09 [A2]: dsound - Setting primary output format...
14:15:09 [C2]: AvSetMmThreadCharacteristics succeeded 'Pro Audio'/''
14:15:09 [C2]: AvSetMmThreadPriority(0) succeeded
14:15:09 [A2]: dsound - Creating secondary output buffer...
14:15:09 [A2]: dsound - Zeroing output buffer...
14:15:09 [A2]: dsound - Creating capture buffer...
14:15:09 [A2]: dsound - Starting playback buffer...
14:15:09 [A2]: dsound - Starting capture buffer...
14:15:09 [A2]: dsound - Starting timer...
14:15:10 [A2]: dsound - Min Delta: 4
14:15:10 [A2]: dsound - Started
14:15:10 [A2]: AudioEnvironment - Engine started.
14:15:10 [A2]: Leave LoadSession C:\Users\Ninja Mark\Documents\My Ivory Cantabile Files\ear training.ivory_cantabile/(null)
14:15:10 [D1]: dsound - ** Buffer missed **
14:15:10 [D2]: dsound - Synchronizing capture and output streams
14:15:10 [D1]: dsound - *** Resync Capture Buffer to 1184 ***
14:15:10 [D1]: dsound - ** Buffer missed **
14:15:10 [D1]: dsound - ** Buffer missed **
14:15:10 [D1]: dsound - *** Resync Capture Buffer to 14848 ***
14:15:10 [D1]: dsound - *** Resync Capture Buffer to 16288 ***
14:15:11 [D1]: dsound - ** Buffer missed **
14:15:11 [D1]: dsound - *** Resync Capture Buffer to 14848 ***
14:15:11 [D1]: dsound - ** Buffer missed **
14:15:11 [D1]: dsound - *** Resync Capture Buffer to 6464 ***
14:15:16 [D1]: dsound - ** Buffer missed **
14:15:16 [D1]: dsound - *** Resync Capture Buffer to 4304 ***
14:15:16 [D1]: dsound - *** Resync Capture Buffer to 6464 ***
14:15:16 [D1]: dsound - *** Resync Capture Buffer to 7904 ***
14:15:16 [D1]: dsound - *** Resync Capture Buffer to 14848 ***
14:15:16 [D1]: dsound - *** Resync Capture Buffer to 16288 ***
14:15:21 [A2]: CantabileMain WM_ACTIVATE 0x00000000
Ivory Cantabile is dropping audio ???
-
- KVRist
- 92 posts since 8 Sep, 2007
Can't speak for Cantable but as an Ivory user I can say that no memory is enough memory, its a total hog. And you can't go by the memory in task manager either. I noticed long ago that task manager can report gobs of free memory even tho Ivory is hamstrung.
Only workaround I know of is to load lesser setups in Ivory. Pity. I finally end up using a Miroslav grand in place of Ivory most of the time because properly EQ'd etc, it sounds very good and at a tiny fraction of the footprint.
Even tho Ivory sounds great, it doesn't handle memory well at all, something they need to address in the next release.
Only workaround I know of is to load lesser setups in Ivory. Pity. I finally end up using a Miroslav grand in place of Ivory most of the time because properly EQ'd etc, it sounds very good and at a tiny fraction of the footprint.
Even tho Ivory sounds great, it doesn't handle memory well at all, something they need to address in the next release.
-
- KVRian
- 791 posts since 8 Mar, 2006 from Australia
Stevie is right - Ivory needs lots of memory, but it's typically not Ivory's fault when things go bad. Given that Ivory is what inspired me to first write Cantabile and given that it's the main plugin I use personally, I've spent a lot of time looking into issues where Ivory will temporarily crackle for unknown reasons.
Without going into too much technical detail, the biggest problem is that under Windows, it's extremely difficult to allocate large amounts of memory and not have Windows page it to disk. When paged memory is then accessed the whole thing stalls while it's read back in.
To make things worse, Windows will periodically page out large chunks for no apparent reason. (I don't think anybody really understands the mysteries and complexities of Window's memory management).
That's the bad news. Now for something that might help...
When a page of memory is paged out, usually it's "soft" paged - meaning it's marked to be paged out, but not actually kicked out of memory just yet. If the page is used before being "hard" paged there's no real overhead - it's just marked as paged in again. So...
Cantabile has an option to address this very issue - and it was designed specifically for Ivory and other memory intensive samplers. In Options -> Resources -> Diagnostics, turn on "Prevent paging memory to swap file" and optionally the aggressive option.
When this option is enabled, Cantabile will monitor memory usage and when it detects a certain amount of memory has been paged out it will silently go around "touching" every page of memory in a background thread. The idea is to catch these pages while they're soft paged, before being fully paged to disk.
It's labelled as experimental because like I said - Windows memory management is a mystery - and on a truly overloaded machine it will almost certainly make things worse. That said, it worked fabulously in the cases where I've used it.
In short: try it and see - at worst if it doesn't work you might need to reboot your machine.
Without going into too much technical detail, the biggest problem is that under Windows, it's extremely difficult to allocate large amounts of memory and not have Windows page it to disk. When paged memory is then accessed the whole thing stalls while it's read back in.
To make things worse, Windows will periodically page out large chunks for no apparent reason. (I don't think anybody really understands the mysteries and complexities of Window's memory management).
That's the bad news. Now for something that might help...
When a page of memory is paged out, usually it's "soft" paged - meaning it's marked to be paged out, but not actually kicked out of memory just yet. If the page is used before being "hard" paged there's no real overhead - it's just marked as paged in again. So...
Cantabile has an option to address this very issue - and it was designed specifically for Ivory and other memory intensive samplers. In Options -> Resources -> Diagnostics, turn on "Prevent paging memory to swap file" and optionally the aggressive option.
When this option is enabled, Cantabile will monitor memory usage and when it detects a certain amount of memory has been paged out it will silently go around "touching" every page of memory in a background thread. The idea is to catch these pages while they're soft paged, before being fully paged to disk.
It's labelled as experimental because like I said - Windows memory management is a mystery - and on a truly overloaded machine it will almost certainly make things worse. That said, it worked fabulously in the cases where I've used it.
In short: try it and see - at worst if it doesn't work you might need to reboot your machine.
