• Welcome to the Pipe Organ Forum! This is a part of the open community Magle International Music Forums focused on pipe organs (also known as "church organs"), organists, organ music and related topics.

    This forum is intended to be a friendly place where technically advanced organists and beginners (or even non-organists) can feel comfortable having discussions and asking questions. We learn by reading and asking questions, and it is hoped that the beginners (or non-organists) will feel free to ask even the simplest questions, and that the more advanced organists will patiently answer these questions. On the other hand, we encourage complex, technical discussions of technique, music, organ-building, etc. The opinions and observations of a diverse group of people from around the world should prove to be interesting and stimulating to all of us.

    As pipe organ discussions can sometimes become lively, it should be pointed out that this is an open forum. Statements made here are the opinion of the poster, and not necessarily that of the forum itself, its administrator, or its moderators.

    In order to post a new topic - or reply to existing ones - you may join and become a member by clicking on Register New User. It's completely free and only requires a working email address (in order to confirm your registration - it will never be given away!). We strive to make this a friendly and informative forum for anyone interested in pipe organs and organ music.

    (Note: If you wish to link to and promote your own website please read this thread first.)

    Many kind regards
    smile.gif

    Frederik Magle
    Administrator

    Krummhorn
    Co-Administrator

more speakers channels for GrandOrgue ??

CatOrg

New member
Hello VPO-friends.
I would like to have the output of my computer sending the output differently if it is first manual, second m or pedal. I know that GO is "only" stereo 2.0 but this would be a great enhancement to have for example the sound directed to a 5.1 system. Smthg like the grand-orgue in center and front speakers, recit in rear-speakers, pedal in center and woofer.
Or using multiple soundcards...
Is this possible? How to do it?
 

L.Palo

New member
Hi!

This (multi-channel support and routing) is already suggested and is currently "under research" even though no official feature request is registered. From Martins answers on the development mailing list it seems to be somewhat complicated and require lots of changes which makes it likely to be postponed until next version. But amazing things has happened before!

Kind regards

Lars P
 

Ghekorg7 (Ret)

Rear Admiral Appassionata (Ret)
Hi !

I'll keep this phrase of Lars : "But amazing things has happened before!"

INDEED !! :)

Best
Panos
 

erikds

New member
How is the performance, when using more than two output channels?

Thanks for providing this and previous versions of GrandOrgue v 3.

A first report on using the multichannel version briefly.

Test platform: W 7 64 bit Q6600 8GB Ram (already becoming obsolescent)
Focusrite Saffire with latest W 7 drivers
Organ used: PiteaMHS 3 manual + Pedal loaded with all loops, all attacks, all releases, no lossless compression.

1) Using a single stereo channel.
No sound breakdown with any of the different sound drivers.
Lowest latency with WDMKS (PortAudio used) : latency 10 ms with buffers at 64
WASAPI (PortAudio used) : with buffers at 64: still 30 ms, uses Focusrite Saffire WDM driver
with buffers at 1024: 46 ms
Windows Direct Sound (PortAudio used) : 14 ms, uses Focusrite Saffire WDM driver
with buffers at 256; lower buffers gives sound breakdown.
Directsound : 20 ms, uses Focusrite Saffire WDM driver
with buffers at 448; lower buffers gives sound breakdown.
MME (PortAudio used) : 29 ms
with buffers at 640; lower buffers gives sound breakdown.

2) Using 3 stereo channels (Front, Surround, Bass)
With 3 stops drawn in each of the 4 divisions.
WDMKS (PortAudio used) :
with buffers at 384 latency for each stereo channel is 10 ms
lower buffers gives distorded sound
but only manual 1 and 3 play without sound breakup
manual 2 and pedal give stuttering sound
increasing buffers up step by step up to 1024 gives no improvement

WASAPI (PortAudio used) :
with buffers at 512 latency for each stereo channel is 30 ms
lower buffers gives distorded sound
but only manual 1 and 3 play without sound breakup
manual 2 and pedal give stuttering sound
increasing buffers above 512 makes manual 1 and 3 to give stuttering sound
increasing buffers up step by step up to 1024 gives no improvement

Windows Direct Sound (PortAudio used) :
with buffers at 896 latency for each stereo channel is 21 ms
no sound breakup or stuttering sound playing manuals 1 and/or 3
stuttering sound playing manual 2 and/or pedal
with buffers at 960 latency for each stereo channel is 22 ms
no sound breakup playing manual 2
stuttering sound playing manual 1 and/or 3 and/or pedal

Some questions:
- Is there any logical explanation why playing manual 1 and 3 works and manual 2 and pedal not?
The midi channels used are: manual 1 = 1, manual 2 = 2, pedal = 3, manual 3 = 4.
Channels 1 to 3 come from the midi output of the Focusrite Saffire, channel 4 comes from M-Audio 61 usb keyboard.

- Is it logical that Windows Direct Sound using PortAudio gives better latency than WASAPI?

- Any specific tests that could help?

All the best.

Erik.
 
Last edited:

erikds

New member
Could you try increasing the concurrency options?

I did that (using the same platform as given earlier, 3 audio groups, Pitea 3 manuals plus pedal).
I have glitchfree sound under following conditions:
- using WDMKS; latency indicated remains 10 ms independent of buffer setting
no tests done with other driver yet
- Concurrency level 127
- Release concurrency level 6 or 7
- Buffers 960 or 1024
Most important factor to obtain glitchfree sound is that each time in Audio Settings the Settings tab is opened,
- the release concurrency is set to 6 or 7 as one before last parameter
- the concurrency is set at 127 as last parameter
- clicking OK is postponed long enough to do this while processor load is at its minimum (2% in my case)
If this is not followed strictly, stuttering sound results but only when playing manual 2, other 2 manuals and pedal give glitchfree sound.

Remark: There seems to be no difference in behavior between 32 bit and 64 bit version of GrandOrgue latest prototype versions.

Please explain what the concurrency parameters actually do.
(Testing haphazardly "in the blind" does not seem very efficient.)
Any idea why only one manual, and always the same, causes stuttering sound?
Any idea why WDMKS latency does not follow buffer settings?
Having to set the upper limits for all 3 parameters is not "nice"; maybe the useable range needs to be re-calibrated?

All the best.

Erik.
 

e9925248

New member
Thank you for your testing. Multi channel output is currently at an very early stage - I'm currently trying to get the initial version in a mergeable state.

- Is there any logical explanation why playing manual 1 and 3 works and manual 2 and pedal not?
The midi channels used are: manual 1 = 1, manual 2 = 2, pedal = 3, manual 3 = 4.
Channels 1 to 3 come from the midi output of the Focusrite Saffire, channel 4 comes from M-Audio 61 usb keyboard.

The MIDI channels/manuals should not influence the audio output. The unit of work are windchests. Either one output channel and/or a number of windchest in some audio groups can be the source of sound errors.
As Pitea features one windchest per manual and you likely put all stops of a windchest in one audio group, you can see this result.

I need more information of your audio configuration (audio groups, pipe/register assignment to audio groups, audio routing configuration of the setting dialog) to make further assumtions.

From your statements, I would conclude, that you added three "audio interfaces" a 2 channels in GO. The multi device synchronization is in an early state.
Adding one audio interface with more than 2 channels (eg. my onboard sound card offers a front+rear connector as a audio device with 4 channels in GO) should result in a more stable sound.

- Is it logical that Windows Direct Sound using PortAudio gives better latency than WASAPI?

GO reuses existing audio libraries to avoid dealing with all the sound output details on three plattforms. Only two settings in GO influence the sound output via Portaudio:
* the buffer size in samples
* the latency setting for the audio interface (Properties button)

Please explain what the concurrency parameters actually do.
(Testing haphazardly "in the blind" does not seem very efficient.)

Release concurrency factor specifies in how many parts the release sample processing is splitted.
Concurrency specifies, how many helper threads are used to offload processing the various subtasks (eg. releases, windchests) from the main audio threads.

Any idea why WDMKS latency does not follow buffer settings?

The actual latency in the audio dialog is returned by PortAudio. You could check the latency setting for this device.

Having to set the upper limits for all 3 parameters is not "nice"; maybe the useable range needs to be re-calibrated?

The upper limit constant for the buffer size in the GO source is set to 1024 - raising it to n * 1024 should be easy. Propably it was set to 1024 to limit the maximum respone time (23 ms).

Release concurrency should never ever be more than the number of cores.

The concurrency limit is probably too low for a high number of audio groups with lots of windchests in the current implementation. A high number of threads will be causing other problems, so I intend to rework the threading schema.

PS:
Your statement about the order of setting the concurrency parameters sounds strange. The order, in which is anything done in the setting dialog should be irrelevant. At the moment, I can't imagine, what kind of side effect of your actions could result in the described behaviour.
 

erikds

New member
The MIDI channels/manuals should not influence the audio output. The unit of work are windchests. Either one output channel and/or a number of windchest in some audio groups can be the source of sound errors.
As Pitea features one windchest per manual and you likely put all stops of a windchest in one audio group, you can see this result.

I need more information of your audio configuration (audio groups, pipe/register assignment to audio groups, audio routing configuration of the setting dialog) to make further assumtions.

From your statements, I would conclude, that you added three "audio interfaces" a 2 channels in GO. The multi device synchronization is in an early state.
Adding one audio interface with more than 2 channels (eg. my onboard sound card offers a front+rear connector as a audio device with 4 channels in GO) should result in a more stable sound.

See png's for above info

GO-audio-groups.PNGGO-Settings.PNGGO-audio-output.PNG

Windchest 1 all pipes (Pedal) to Center-Bass
Windchest 2 and 4 all pipes to Front
Windchest 3 all pipes to Surround

Under Sample Loading: all settings are Parent default

Release concurrency should never ever be more than the number of cores.

My Q6600 has 4 cores. If i set release concurrency to anything less than 7 i get stuttering sound from playing manual 2.

Your statement about the order of setting the concurrency parameters sounds strange. The order, in which is anything done in the setting dialog should be irrelevant. At the moment, I can't imagine, what kind of side effect of your actions could result in the described behaviour.

If i change parameters on the Settings window in any other way than described the penalty is stuttering sound.
Maybe one of the idiosyncrasies of Windows 7 "overzeleaous" User protection "feature"?
It looks as if after changing one or more parameters they do not "take" unless strictly following the procedure as described.

As soon as you have something new to test, just let me know.

All the best.

Erik.
 
Last edited:

e9925248

New member
See png's for above info

Windchest 1 all pipes (Pedal) to Center-Bass
Windchest 2 and 4 all pipes to Front
Windchest 3 all pipes to Surround

Under Sample Loading: all settings are Parent default

Your configuration is as I expected. You completly put one windchest into an audio section, one audio section is only one audio group and an windchest corresponds to a manual => a problem with an audio output affects a complete manual.

Additionally, I had yet spend most effort on one sound interface in GO with more than two channels case, not multiple sound interfaces.

My Q6600 has 4 cores. If i set release concurrency to anything less than 7 i get stuttering sound from playing manual 2.

I'm aware of this behaviour.

If i change parameters on the Settings window in any other way than described the penalty is stuttering sound.
Maybe one of the idiosyncrasies of Windows 7 "overzeleaous" User protection "feature"?
It looks as if after changing one or more parameters they do not "take" unless strictly following the procedure as described.

I don't think, that it is related to something windows specific. GO stores the complete configuration in an object and after that configures sound output from it => Regardless how you configure GO, the same configuration should be set up always in the same way.
I can only speculate: In my option, it is most likely a strange side effect (eg. affecting the process memory layout).
 
Top