Zenith432 Posted April 3, 2017 Share Posted April 3, 2017 It is because of this line in VoodooHDA.xcodeproj/project.pbxproj E5A3BD951E7095C100F91F3D /* PCMBlitterLibX86.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEF7C0A70EF74C2700A14C68 /* PCMBlitterLibX86.cpp */; settings = {COMPILER_FLAGS = "-I ${DT_TOOLCHAIN_DIR}/usr/lib/clang/8.1.0/include -fvisibility=hidden"; }; }; /* End PBXBuildFile section */ It contains compiler flags for PCMBlitterLibX86.cpp with explicit path of Include dir to find xmmintrin.h${DT_TOOLCHAIN_DIR}/usr/lib/clang/8.1.0/include For Xcode 8.2.1 it should be ${DT_TOOLCHAIN_DIR}/usr/lib/clang/8.0.0/include There is also an xmmintrin.h under tranc. The error has something to do with version of xmmintrin.h it's using. Hi Zenith432, I can successfully compile VodooHDA in Xcode4.4.1 but not 8.2.1. Do you? Screen Shot 2017-04-03 at 20.30.32.png 1 Link to comment Share on other sites More sharing options...
Slice Posted April 4, 2017 Author Share Posted April 4, 2017 Thanks! Now succeeded. /Volumes/Sierra/Library/Developer/CommandLineTools/Library/PrivateFrameworks/LLDB.framework/Versions/A/Resources/Clang/include/xmmintrin.h /Volumes/Sierra/Library/Developer/CommandLineTools/usr/lib/clang/8.0.0/include/xmmintrin.h /Volumes/Sierra/System/Library/Frameworks/OpenCL.framework/Versions/A/lib/clang/2.0/include/xmmintrin.h /Volumes/Sierra/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/A/Libraries/lib/clang/3.5/include/xmmintrin.h They are different. With 2.8.10 I have 5.1 device Link to comment Share on other sites More sharing options...
Zenith432 Posted April 4, 2017 Share Posted April 4, 2017 Should be the one under ${DT_TOOLCHAIN_DIR}/usr/lib/clang/8.0.0/include. For the command line tools I guess DT_TOOLCHAIN_DIR is /Library/Developer/CommandLineTools. For XCode 8.2.1 full install it's under Developer/Toolchain folder in the Xcode.app tree. They are different. Multichannel pin associations are now operational. They didn't work before because a bug in the hpredir logic caused every multi-pin association to be treated as headphone-redirect instead of multichannel . You can set the format for analog multichannel engine in Audio Midi setup. It still has only L-R volume control, but setting the volume sets L-R on all three pins. As I said in previous post, I'm not sure that channels 0 - 5 are sent to Green-Orange-Black in that order. I'm sure channels 0-1 are sent to Green. I'm not sure about channels 2-5. Link to comment Share on other sites More sharing options...
Slice Posted April 4, 2017 Author Share Posted April 4, 2017 There is AutumnRain's old patch to switch channels. He was needed it because of mono-mic had only R channel. //Меняю местами значения для левого и правого канала if(mDevice && mDevice->mSwitchCh && (streamFormat->fNumChannels > 1)) { UInt32 i; Float32 tempSamples; for(i = 0; i < numSamples; i+= streamFormat->fNumChannels) { tempSamples = floatDestBuf[i]; floatDestBuf[i] = floatDestBuf[i+1]; floatDestBuf[i+1] = tempSamples; } } I think you can do something similar to exchange channels. Link to comment Share on other sites More sharing options...
Slice Posted April 4, 2017 Author Share Posted April 4, 2017 Hey Zenith432, Multichannel sound is bad. Like a saw, sound then pause then again. Link to comment Share on other sites More sharing options...
trupetiago Posted April 10, 2017 Share Posted April 10, 2017 I have Yosemite 10.3 fully working on a HP dv4-2160us laptop. I intend to install Sierra. On the Yosemite, I inserted the follow lines to the info.plist file of the voodoo HDA kext in order to get the volume slider and mute touch working. <key>VoodooHDAEnableMuteFix</key> <true/> <key>VoodooHDAEnableVolumeChangeFix</key> <true/> Will I be able to get this function working on Sierra? Link to comment Share on other sites More sharing options...
Slice Posted April 11, 2017 Author Share Posted April 11, 2017 The same. Link to comment Share on other sites More sharing options...
mitch_de Posted April 12, 2017 Share Posted April 12, 2017 I want to say : THANKS!Installed V 2.88 on my Laptap Medion 6612 (C2D, ALC 263, Yosemite) and worked. NO reboot required, i heared an "krrrk" on the end of the installation and audio was working Installing V 2.8.9 kext would be usefull or "never touch an working system"? Link to comment Share on other sites More sharing options...
Slice Posted April 12, 2017 Author Share Posted April 12, 2017 With 289 you will have no BUMP at system start and no noise at 100% mix value. Otherwise the kext works similar. 1 Link to comment Share on other sites More sharing options...
Stefe Hobs Posted April 12, 2017 Share Posted April 12, 2017 Many thanks too dude - VoodooHDA 2.8.10 works well on Intel B250 ALC887 Salutations de l'Allemagne Link to comment Share on other sites More sharing options...
artur_pt Posted April 12, 2017 Share Posted April 12, 2017 hello where u get the 2.8.10 version of the kext ? good hack 1 Link to comment Share on other sites More sharing options...
MaLd0n Posted April 12, 2017 Share Posted April 12, 2017 http://www.insanelymac.com/forum/topic/314406-voodoohda-289/?p=2397759 2 Link to comment Share on other sites More sharing options...
Zenith432 Posted April 15, 2017 Share Posted April 15, 2017 @Slice: With rev 129 I hope Analog Multichannel works now, including channels output in right order to pins. HDMI is still limited to stereo. Bumped version to 2.8.10d4. Green - FL/FR Orange - FC/LFE Black - RL/RR Grey (only in 7.1) - SL/SR UPDATE: I tested analog multichannel - it works. Tested as follows: Made an 8-channel WAV file at 48KHz/16-bit with Audacity, on each channel recorded the channel name. Channel order FL/FR/FC/LFE/RL/RR/SL/SR. Play the WAV file with QuickTime, plugged headphones into each of the four pins Green/Orange/Black/Grey and heard the correct channel names. When I play AC3 file with QuickTime, it gets mixed down to Stereo, so I couldn't test that way. iTunes couldn't play either AC3 or 8-channel WAV file. Hey Zenith432, Multichannel sound is bad. Like a saw, sound then pause then again. 2 Link to comment Share on other sites More sharing options...
Slice Posted April 16, 2017 Author Share Posted April 16, 2017 Thanks Zentih432! I will test and report on monday evening. And did you even encounter dump-log overflow? In this case sound chokes and restores after pause-play. Link to comment Share on other sites More sharing options...
Zenith432 Posted April 16, 2017 Share Posted April 16, 2017 I don't get sound chokes and restores. There is no overflow in getdump. In dmesg there is a huge amount of debug prints from IOAudioFamily like debugging is turned on. I don't know why. But it doesn't degrade playback. And did you even encounter dump-log overflow? In this case sound chokes and restores after pause-play. Link to comment Share on other sites More sharing options...
Zenith432 Posted April 16, 2017 Share Posted April 16, 2017 When I play AC3 file with QuickTime, it gets mixed down to Stereo, so I couldn't test that way.I figured out how to play multichannel AC3 in QuickTime. In Audio-Midi Setup, click on the 8-channel device, then choose Configure Speakers. In Configuration, choose 5.1 surround, or 7.1 surround, or 7.1 rear surround, and configure which channel is which speaker. Finally, click apply and done. After this, QuickTime will know how to play multichannel audio on this device. iTunes doesn't seem to know how to play multichannel. It doesn't let me add AC3 or multichannel WAV to the library. Link to comment Share on other sites More sharing options...
joevt Posted April 16, 2017 Share Posted April 16, 2017 Would it be possible to add some code to VoodooHDA to read the ELD and use the "Monitor_Name_String" instead of just "Digital-out (HDMI)" for the display output devices? This would allow the user to see which output is actually connected and to what display it is connected to. Link to comment Share on other sites More sharing options...
Zenith432 Posted April 16, 2017 Share Posted April 16, 2017 In Audio-Midi Setup, click on the 8-channel device, then choose Configure Speakers. In Configuration, choose 5.1 surround, or 7.1 surround, or 7.1 rear surround, and configure which channel is which speaker. Finally, click apply and done. After this, QuickTime will know how to play multichannel audio on this device. @Slice, In Rev 130, I added code to set a default Speaker Configuration to be used with 5.1 and 7.1 audio for CoreAudio to use if it is not manually programmed in Audio-Midi Setup - to enable surround sound (at least in QuickTime). I checked the channels are output in right order in analog multichannel with this setup. [The setup says that in 7.1 rear come after after side, but actually they come before side.] Would it be possible to add some code to VoodooHDA to read the ELD and use the "Monitor_Name_String" instead of just "Digital-out (HDMI)" for the display output devices? This would allow the user to see which output is actually connected and to what display it is connected to. Read my post. It is not possible to rely on Apple's video driver to make the ELD available to HDA. I'm using Intel HD Graphics 630 with AppleIntelSKLGraphicsFramebuffer, and the ELD buffer passed to the HDMI codec is empty. 1 Link to comment Share on other sites More sharing options...
Slice Posted April 17, 2017 Author Share Posted April 17, 2017 For my mind this is major update. We should change version to 2.9.0. 2 Link to comment Share on other sites More sharing options...
Zenith432 Posted April 17, 2017 Share Posted April 17, 2017 For my mind this is major update. We should change version to 2.9.0. But not done yet... Still need to do HDMI multichannel. Now HDMI looks multi to macos, but only sends stereo to device. The volume control for multichannel is binary (L/R). The left volume controls all three or four "lefts". The right volume controls all three or four "rights". This is reasonable for FL/FR, RL/RR, SL/SR, but for FC/LFE pair it doesn't make sense. Do you still get choppy sound with chokes and log overflow when playing analog multichannel? Link to comment Share on other sites More sharing options...
Slice Posted April 17, 2017 Author Share Posted April 17, 2017 Hi Zenith432! My test is bad I catch the sound from left speaker by iPhone. Hear! 20170417 205724.m4a.zip 1 Link to comment Share on other sites More sharing options...
Zenith432 Posted April 17, 2017 Share Posted April 17, 2017 (edited) Click on the configure speakers at the bottom right and make sure it's configured for 5.1 surround. Please upload getdump for codec. Choppy sound seems like a bug, but maybe it depends on codec. I don't get choppy sound (ALC 887). Can you load a sample of the original multichannel audio you're playing? I'll try play it see if I get choppy sound. Hi Zenith432! My test is bad Снимок экрана 2017-04-17 в 20.50.31.png I catch the sound from left speaker by iPhone. Hear! 20170417 205724.m4a.zip Other Update: rev 133 supports HDMI multichannel. I cannot test it because A/V receiver is too far from HDMI port to connect. HDMI stereo still works so no regression. @Slice: I think the problem may be with IOAudioEngine::setMixClipOverhead. In 6-channel input, it has convert 3 times as many floats ->ints, so maybe on slower systems the default is not enough and mix buffer is underrun. Another thing to look at is setSampleOffset or setSampleLatency. Not sure what those do. Choppy sound is from buffer overrun or underrun. Edited April 17, 2017 by Zenith432 Link to comment Share on other sites More sharing options...
Slice Posted April 17, 2017 Author Share Posted April 17, 2017 This is original sound track 02 Departed.m4a.zip I tested all setting in Audio-MIDI with different speed of chopping. But sound always bad. The dump is here ALC1150-2.8.10d5.txt.zip up to rev 132, but not 133 yet. PS. Sound in Headphone, pure stereo, is very good. 1 Link to comment Share on other sites More sharing options...
Zenith432 Posted April 17, 2017 Share Posted April 17, 2017 (edited) Departed.m4a is stereo source. Plays ok on my system. Tried various formats - 16-bit, 24-bit, 44.1 KHz, 48KHz, in 7.1CH analog and HDMI (8CH). All work ok. I looked at codec dump - looks ok. I think I know what's going on. The problem is clipOutputSamples() is called too late, and causes buffer underrun in conversion from float->int samples. Why is this? On Headphone (pure stereo) output - it's a 2-channel device. So convert float->int for 2 channels. On 5.1CH device, input is 6 channels. Channels 0-1 are from source, channels 2-5 are zero-filled by CoreAudio. All 6 channels are converted float->int by clipOutputSamples. So need more time to process. On older system there's not enough time - leads to underrun. On my Kabylake it's fast enough, so no problem doing float->int conversion for 8 channels instead of 2. Tomorrow I'll look at IOAudioFamily to see how to increase the amount of time available for clipOutputSamples to find a fix. Edit: try reducing sample bit-width to 16-bit, conversion float->16 slightly faster than float->24, so maybe it'll work by coincidence This is original sound track 02 Departed.m4a.zip I tested all setting in Audio-MIDI with different speed of chopping. But sound always bad. The dump is here ALC1150-2.8.10d5.txt.zip up to rev 132, but not 133 yet. PS. Sound in Headphone, pure stereo, is very good. Edited April 17, 2017 by Zenith432 Link to comment Share on other sites More sharing options...
Slice Posted April 17, 2017 Author Share Posted April 17, 2017 My system is Skylake 3.3GHz, not so slow! And yes, I tested 16-24bit and 44-48-96kHz. I got different speed of choping but never good sound. I noticed that 2.8.10d1 requires more CPU load then 2.8.9. Why? I think I hear all 6 channels but mixed in stereo like 0,2,4 into left, 1,3,5 into right but consequently. Sound_1, then Sound_3 (silence), then sound_5 (silence), and then period. Link to comment Share on other sites More sharing options...
Recommended Posts