<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "https://www.web3d.org/specifications/x3d-4.0.dtd">
<X3D profile='Immersive' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-4.0.xsd'>
  <head>
    <component level='3' name='Sound'/>
    <meta content='AllAudioGraphNodesTest.x3d' name='title'/>
    <meta content='List of all X3D4 audio graph nodes to test authoring tools and validation support. Each of the sound nodes shown here receives signal input from its children nodes, and provides signal output to its parent node.' name='description'/>
    <meta content='Don Brutzman' name='creator'/>
    <meta content='25 October 2020' name='created'/>
    <meta content='12 September 2025' name='modified'/>
    <meta content='Developmental test, no actual audio model is produced' name='info'/>
    <meta content='sound/saxophone.ogg' name='Sound'/>
    <meta content='sound/saxophone.mp3' name='Sound'/>
    <meta content='sound/saxophone.wav' name='Sound'/>
    <meta content='AllAudioGraphNodesTestNetbeansTree.png' name='Image'/>
    <meta content='https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/AllAudioGraphNodesTest.x3d' name='identifier'/>
    <meta content='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../license.html' name='license'/>
  </head>
  <Scene>
    <WorldInfo title='AllAudioGraphNodesTest.x3d'/>
    <Shape>
      <Box/>
      <Appearance>
        <AcousticProperties DEF='TestAcousticProperties' absorption='0.11' description='hello AcousticProperties' diffuse='0.22' enabled='false' refraction='0.33' specular='0.44'/>
        <Material/>
      </Appearance>
    </Shape>
    <Sound DEF='TestSound' description='hello Sound' direction='0 0 1.2' enabled='false' intensity='0.99' location='0.1 1.6 0.1' maxBack='10.1' maxFront='10.2' minBack='1.3' minFront='1.4' priority='0.01' spatialize='false'>
      <!-- TODO fix missing canonicalization of gain='1' -->
      <AudioClip DEF='TestAudioClip' autoRefresh='100' autoRefreshTimeLimit='1000' description='hello AudioClip' enabled='false' gain='1.2' pauseTime='5' pitch='3.4' resumeTime='6' startTime='7' stopTime='8' url='"sound/saxophone.ogg" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/sound/saxophone.ogg" "sound/saxophone.mp3" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/sound/saxophone.mp3" "sound/saxophone.wav" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/sound/saxophone.wav"'/>
      <!-- ROUTE connections do not pass validation if provided within a chain of audio nodes. -->
    </Sound>
    <!-- Any ROUTE connections must follow DEF nodes being connected. -->
    <TimeSensor DEF='TestTimeSensor' cycleInterval='2' description='hello TimeSensor' enabled='false' loop='true' pauseTime='3' resumeTime='4' startTime='5' stopTime='6'/>
    <ROUTE fromField='cycleTime' fromNode='TestTimeSensor' toField='startTime' toNode='TestAudioClip'/>
    <!-- Each of the following sound nodes receives signal input from its children nodes, and provides signal output to its parent node. -->
    <SpatialSound DEF='TestSpatialSound' coneInnerAngle='3.14' coneOuterAngle='3.15' coneOuterGain='0.5' description='hello SpatialSound' direction='2 3 4' distanceModel='EXPONENTIAL' dopplerEnabled='true' enableHRTF='true' enabled='false' gain='1.1' intensity='0.5' location='6 7 8' maxDistance='20000' priority='0.9' referenceDistance='10' rolloffFactor='11' spatialize='false'>
      <Analyser DEF='TestAnalyser' channelCountMode='EXPLICIT' channelInterpretation='DISCRETE' description='hello Analyser' fftSize='2049' gain='0.99' maxDecibels='-31' minDecibels='-101' pauseTime='6' resumeTime='7' smoothingTimeConstant='0.88' startTime='8' stopTime='9'>
        <AudioDestination DEF='TestAudioDestination' channelCountMode='EXPLICIT' channelInterpretation='DISCRETE' description='hello AudioDestination' enabled='false' gain='1.1' mediaDeviceID='ABC345'>
          <BiquadFilter DEF='TestBiquadFilter' description='hello BiquadFilter' detune='0.5' enabled='false' frequency='1000' gain='2' pauseTime='3' qualityFactor='1' resumeTime='4' startTime='5' stopTime='6' tailTime='7' type='ALLPASS'>
            <ChannelMerger DEF='TestChannelMerger' channelCountMode='EXPLICIT' channelInterpretation='DISCRETE' description='hello ChannelMerger' enabled='false' gain='123'>
              <ChannelSelector DEF='TestChannelSelector' channelCountMode='CLAMPED_MAX' channelInterpretation='DISCRETE' channelSelection='1' description='hello ChannelSelector' enabled='false' gain='2'>
                <ChannelSplitter DEF='TestChannelSplitter' channelCountMode='EXPLICIT' channelInterpretation='DISCRETE' description='hello ChannelSplitter' enabled='false' gain='789'>
                  <Convolver DEF='TestConvolver' buffer='0 1 2 3' channelCountMode='CLAMPED_MAX' channelInterpretation='DISCRETE' description='hello Convolver' enabled='false' gain='4' normalize='true' pauseTime='5' resumeTime='6' startTime='7' stopTime='8' tailTime='9'>
                    <Delay DEF='TestDelay' channelCountMode='CLAMPED_MAX' delayTime='2' description='hello delay' enabled='false' gain='4' maxDelayTime='3' pauseTime='5' resumeTime='6' startTime='7' stopTime='8' tailTime='9'>
                      <DynamicsCompressor DEF='TestDynamicsCompressor' attack='0.00333' description='hello DynamicsCompressor' enabled='false' gain='2' knee='10' pauseTime='3' ratio='11' release='12' resumeTime='4' startTime='5' stopTime='6' tailTime='7' threshold='-100'>
                        <Gain DEF='TestGain' channelCountMode='EXPLICIT' channelInterpretation='DISCRETE' description='hello gain' enabled='false' gain='-2' pauseTime='2' resumeTime='3' startTime='4' stopTime='5' tailTime='1'>
                          <StreamAudioDestination DEF='TestStreamAudioDestination' channelCountMode='CLAMPED_MAX' channelInterpretation='DISCRETE' description='hello StreamAudioDestination' enabled='false' gain='0' mediaDeviceID='abc123' streamIdentifier='"unique ID" "part 2"'>
                            <WaveShaper DEF='TestWaveShaper' channelCountMode='CLAMPED_MAX' channelInterpretation='DISCRETE' curve='1 2 3 4' description='hello WaveShaper' enabled='false' gain='5' oversample='NONE' pauseTime='6' resumeTime='7' startTime='8' stopTime='9' tailTime='10'>
                              <!-- The following X3DSoundSourceNode nodes have no allowed audio-graph children nodes as inputs -->
                              <BufferAudioSource DEF='TestBufferAudioSource' autoRefresh='1' autoRefreshTimeLimit='2' buffer='3 4 5' bufferDuration='6' channelCountMode='CLAMPED_MAX' channelInterpretation='DISCRETE' description='hello BufferAudioSource' detune='7' enabled='false' gain='8' load='false' loop='true' loopEnd='12' loopStart='12' numberOfChannels='12' pauseTime='13' playbackRate='14' resumeTime='15' sampleRate='16' startTime='17' stopTime='18' url='"sound/saxophone.mp3" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/sound/saxophone.mp3"'/>
                              <ListenerPointSource DEF='TestListenerPointSource' description='hello ListenerPointSource' dopplerEnabled='true' enabled='false' gain='0.1' interauralDistance='2' orientation='6 7 8 0.9' pauseTime='10' position='3 4 5' resumeTime='11' startTime='12' stopTime='13' trackCurrentView='true'/>
                              <MicrophoneSource DEF='TestMicrophoneSource' description='hello MicrophoneSource' enabled='false' gain='0.12' mediaDeviceID='345XYZ' pauseTime='6' resumeTime='7' startTime='8' stopTime='9'/>
                              <OscillatorSource DEF='TestOscillatorSource' description='hello OscillatorSource' detune='1' enabled='false' frequency='234' gain='5' pauseTime='6' resumeTime='7' startTime='8' stopTime='9'>
                                <PeriodicWave DEF='TestPeriodicWave' description='hello PeriodicWave' optionsImag='0 1 2 3 5' optionsReal='5 6 7 8 9' type='CUSTOM'/>
                              </OscillatorSource>
                              <StreamAudioSource DEF='TestStreamAudioSource' channelCountMode='EXPLICIT' channelInterpretation='DISCRETE' description='hello StreamAudioSource' enabled='false' gain='1.2' pauseTime='6' resumeTime='7' startTime='8' stopTime='9' streamIdentifier='"345 XYZ"'/>
                            </WaveShaper>
                          </StreamAudioDestination>
                        </Gain>
                      </DynamicsCompressor>
                    </Delay>
                  </Convolver>
                </ChannelSplitter>
              </ChannelSelector>
            </ChannelMerger>
          </BiquadFilter>
        </AudioDestination>
      </Analyser>
    </SpatialSound>
  </Scene>
</X3D>