On Mon, Oct 24, 2011 at 7:03 PM, Yclept Nemo <orbisvi...@gmail.com> wrote:
> Versions:
> Salamander Grand Piano V2
> liblscp-svn 2132
> libgig-svn 2274
> linuxsampler-svn 2277
> qsampler-svn 2271
>
> For the most part the setup works very well, except that it is limited
> in the number of voices (amount of notes). Too many notes, and
> LinuxSampler only plays silence.
>
> If during runtime (via qsampler), I increase the maximum number of
> voices and the maximum number of disk streams to 128 and 180
> respectively, LinuxSampler segfaults. The backtrace is too large to
> attach, so I mirrored it as an attachment at
> http://hpaste.org/raw/53096. [Note: An identical email containing the
> attachment is still awaiting moderator approval]
>
> If I compile LinuxSampler with --enable-max-streams=180
> --enable-max-voices=128, then while loading the SFZ file, LinuxSampler
> gives the following error:
> LSCPServer: Client connection established on socket:4.
> LSCPServer: Client connection established on socket:5.
> Starting disk thread...OK
> Scheduling 
> '/storage/samples/gigasamples/piano/salamander.grand.piano.v2/SalamanderGrandPianoV2_48khz24bit/SalamanderGrandPianoV2.sfz'
> (Index=0) to be loaded in background (if not loaded yet).
> Loading sfz file
> '/storage/samples/gigasamples/piano/salamander.grand.piano.v2/SalamanderGrandPianoV2_48khz24bit/SalamanderGrandPianoV2.sfz'...OK
> Loading sfz instrument
> ('/storage/samples/gigasamples/piano/salamander.grand.piano.v2/SalamanderGrandPianoV2_48khz24bit/SalamanderGrandPianoV2.sfz',0)...OK
> Caching initial samples...sfz::Engine error: Failed to load
> instrument, cause: Unknown exception while trying to parse sfz file.
>
> I've narrowed the problem down to the maximum number of disk streams.
> For example I can increase the maximum number of voices to 256 without
> problem (> maximum number of disk streams which is 90), but the
> error/segfault occurs when the maximum number of disk streams reaches
> somewhere around 105-115.
>
> Solution would be great. I'm not playing a symphony here, just a
> simple one-piano piece (no more than 6 1/8 notes at a time).
>

Clarification:

1] Segfault:
The segfault is only triggered when changing the number of disk
streams during runtime *and* when an instrument/channel is currently
loaded

2] Error:
The error only happens if GetChannelInfo is called before
EngineChannelBase finishes caching the samples. For example, if the
cache is not finalized you see something like the following. (Notice
"INSTRUMENT_STATUS: -4", this is the error QSampler displays).

EngineChannelBase: progress 36EngineChannelBase: progress 36
RenderAudio(Samples=1024)
Condition::WaitIf: bCondition=0  TimeoutSeconds=0  TimeoutNanoSeconds=0
Condition::Waitif() -> LOCK()
Condition::Waitif() -> LOCK() passed
Condition::Set() -> LOCK()
Condition::Set() -> LOCK() passed
Condition::Set() -> broadcasting 'false' condition
Condition::WaitIf: bCondition=0  TimeoutSeconds=0  TimeoutNanoSeconds=0
Condition::Waitif() -> LOCK()
Condition::Waitif() -> LOCK() passed
Condition::Waitif() -> waiting for 'true' condition
RenderAudio(Samples=1024)
RenderAudio(Samples=1024)
RenderAudio(Samples=1024)
RenderAudio(Samples=1024)
RenderAudio(Samples=1024)
LSCPServer: Got command on socket -1, calling parser.
LSCPServer: [GET CHANNEL INFO 0
]
LSCPServer: GetChannelInfo(SamplerChannel=0)
LSCPServer::AnswerClient(ReturnMessage=ENGINE_NAME: SFZ
VOLUME: 1.000
AUDIO_OUTPUT_DEVICE: 0
AUDIO_OUTPUT_CHANNELS: 2
AUDIO_OUTPUT_ROUTING: 0,1
MIDI_INPUT_DEVICE: 0
MIDI_INPUT_PORT: 0
MIDI_INPUT_CHANNEL: 0
INSTRUMENT_FILE:
/storage/samples/gigasamples/piano/salamander.grand.piano.v2/SalamanderGrandPianoV2_48khz24bit/SalamanderGrandPianoV2.sfz
INSTRUMENT_NR: 0
INSTRUMENT_NAME:
INSTRUMENT_STATUS: -4
MUTE: false
SOLO: false
MIDI_INSTRUMENT_MAP: 0
.
)LSCPServer: Done parsing on socket -1.

For some strange reason, it seems the greater the number of disk
streams, either the longer it takes for the sample cache to be
generated, or the sooner GetChannelInfo is called.

The error basically prevents LinuxSampler from working: any subsequent
operations, such as Quiting or Removing-the-Channel, all throw the
same Error:-4.

------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
Linuxsampler-devel mailing list
Linuxsampler-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel

Reply via email to