Jump to content
ITzTravelInTime

Kx audio driver mod [Sound blaster live!, audigy 1/2/4/RX emu edsp]

276 posts in this topic

Recommended Posts

4 hours ago, zixiang5288 said:

if you like i can create my own branch in my own profile and then commit changes to it, i do not want to touch the original driver's repository

Share this post


Link to post
Share on other sites
Advertisement

Hi ITzTravelInTime.

I am new to hackintosh world. I have a Sound Blaster Audigy SE SB0570. I tried your driver and it is not working, as expected.

I would like to help you in some way, I am a developer. Please fell free to ask me for tests or anything.

Thanks for your effort! 

Share this post


Link to post
Share on other sites
28 minutes ago, jubarim said:

Hi ITzTravelInTime.

I am new to hackintosh world. I have a Sound Blaster Audigy SE SB0570. I tried your driver and it is not working, as expected.

I would like to help you in some way, I am a developer. Please fell free to ask me for tests or anything.

Thanks for your effort! 

the sb0570 is the audigy se which is not compatible with this driver, you have to own sound cards based on the 10k1 or 10k2 or similar chipsets to work with this driver, yours uses a totally different architecture, but if you want to test it, compatible sound cards like sopund blaster live are cheap to get and compatible, for pcie you can use the sound blaster audigy rx

Share this post


Link to post
Share on other sites

regurding driver source code, i have seen that new commits of the original kx audio driover have been made, but nothig that will change the mac os side, the only this is a minor change in a buffer size, that i have applied to mine branch, and also from testing i have seen tat the driver boots up and seems to work with the 44.1 khz sample rate, so now i have only to figure out how to change the sample rate from the driver side, maybe i can make as a default  frequency 44,1 khz, you can try this with the latest source of the driver, just go into audio engine file and change the value of the sampling_rate variable in the init function, note that the value is in hz and not khz, so 44,1 is 44100

Share this post


Link to post
Share on other sites
3 hours ago, ITzTravelInTime said:

the sb0570 is the audigy se which is not compatible with this driver, you have to own sound cards based on the 10k1 or 10k2 or similar chipsets to work with this driver, yours uses a totally different architecture, but if you want to test it, compatible sound cards like sopund blaster live are cheap to get and compatible, for pcie you can use the sound blaster audigy rx

Oh I see. Well, thanks for the reply. I have a P8Z77-V PRO motherboard and the Realtek onboard is not working, so I bought a cheap sb0570. But I will try to change for a compatible one, like the pcie SB Audigy Rx.

 

Share this post


Link to post
Share on other sites

for the sample rate stuff i can make the driver to work at 44.1 khz as default frequency but i am figuring out how to change sample rate whithout rebooting, as i have seen in the perform format change event i have to change the buffer of my audio stream or to rebuild it to work at a different frequency

Share this post


Link to post
Share on other sites

ok, i have been trying for 2 days to implement the frequency switching, but at the end nothing worked, so now i can release a version of the kx audio driver with 44,1 khz as default frequency and then if you want to use a different one, you need use a boot arg and also rebooting.

To mod the driver, do you know someone who can help me? like one of the famous hackintosh developers for audio or someone from the kx audio driver project?

i will try to contact some of the developers of the kx audio dirver and i will also try to commit my audigy rx improved compatibility for the original driver, because it lacks support for all the i/o of the audigy rx, which can be added using a very simle mod to the existing code

Share this post


Link to post
Share on other sites

Hi ITzTravelInTime!

One more question for you: if one board name is on the big switch

switch(subsys)

is it enough for the card to work?

I found some cheap "Sound Blaster Audigy 2 Z5 - Sb0350" for here and they are in the switch case.

Thanks!

 

 

Share this post


Link to post
Share on other sites
8 hours ago, jubarim said:

Hi ITzTravelInTime!

One more question for you: if one board name is on the big switch


switch(subsys)

is it enough for the card to work?

I found some cheap "Sound Blaster Audigy 2 Z5 - Sb0350" for here and they are in the switch case.

Thanks!

 

 

the drivers uses exactly a switch for that, but i have used a more complex naming system for the sound cards, becuase it can be from 2 different brands, and instead of rewriting sound blaster i used an enum and the object of the struct which represents the soiund cards has a property which tells if it's a sound blaster or an e-mu or an unknown card, and then which model is it, but you sound blaster audigy 2 zs will work with the driver, i have one and works great!

Share this post


Link to post
Share on other sites

here is also some code to show you how the model detect system works

    int ret=0;
    lack_ac97=0;
    have_ac97=0; // autodetect
    
    if(device==0x00041102) // 10k2
        is_10k2=1;
    
    if(device==0x00041102 && chiprev==4)  // a2
        is_a2=1;
    
    if(device==0x00081102) // a2value, ... with p17v
    {
        is_10k2=1;
        is_a2=1;
        is_k8=1;
        
        // this is assumed:
        // if((subsys&0xf0000000)==0x10000000) // any ca0108
        // is_k8=1;
        
        if((subsys&0xf0000000)==0x20000000) // any zsnb
            is_cardbus=1;
        
        if((subsys&0xf0000000)==0x40000000) // any e-dsp v2
            is_edsp=1;
        
        if((subsys&0xff000000)==0x42000000) // any e-dsp v2 cardbus
            is_cardbus=1;
    }
    
    if(is_edsp)
        lack_ac97=1;
    
    if(is_10k2)
        is_51=1; // assume 10k2 is always at least '5.1'
    
    busName=CardBus(0);
    
    busName=PCI;
    
    Products productName = SoundBlaster;
    
    switch(subsys)
    {
        case 0x40011102:
            productName = EMU;
            if(is_10k2==0) // [1]
            {
                strncpy(tmp_str,"EMUAPS",KX_MAX_STRING);
                is_aps=1;
                lack_ac97=1;
            }
            else
            {
                strncpy(tmp_str,"EM8810",KX_MAX_STRING); // [110] - 1010 v1
                is_edsp=1;
                lack_ac97=1;
            }
            break;
            
        case 0x00201102: // [2]
            strncpy(tmp_str,"live! CT4670",KX_MAX_STRING); // live! value
            break;
        case 0x00211102: // [3]
            strncpy(tmp_str,"live! CT4620",KX_MAX_STRING); // live! standard
            break;
        case 0x80221102: // [4]
            strncpy(tmp_str,"live! CT4780",KX_MAX_STRING); // value digital
            break;
        case 0x80231102: // [5]
            strncpy(tmp_str,"PCI 512 CT4790",KX_MAX_STRING); // 512
            break;
        case 0x80251102: // sb0040 ? too // [6]
            strncpy(tmp_str,"live! CT1140",KX_MAX_STRING); // MB
            break;
        case 0x80261102: // [7]
            strncpy(tmp_str,"live! CT4830",KX_MAX_STRING); // value digital
            break;
        case 0x80271102: // [8]
            strncpy(tmp_str,"live! CT483X",KX_MAX_STRING); // value digital
            break;
        case 0x80281102: // [9]
            strncpy(tmp_str,"live! CT4870",KX_MAX_STRING); // value
            break;
        case 0x80291102: // [10]
            strncpy(tmp_str,"live! CT4872",KX_MAX_STRING); // value
            break;
        case 0x802a1102: // [11]
            strncpy(tmp_str,"live! CT4890",KX_MAX_STRING); // k256
            break;
        case 0x802b1102: // [12]
            strncpy(tmp_str,"PCI 256 CT4891",KX_MAX_STRING); // 256
            break;
        case 0x002F1102: // M002/M003 // [13]
            strncpy(tmp_str,"live! CTM002",KX_MAX_STRING); // MB
            break;
        case 0x80311102: // [14]
            strncpy(tmp_str,"live! CT4831",KX_MAX_STRING); // value
            break;
        case 0x80321102: // [15]
            strncpy(tmp_str,"live! CT4871",KX_MAX_STRING); // value
            break;
        case 0x80331102: // [16]
            strncpy(tmp_str,"live! CT4893",KX_MAX_STRING); // k256
            break;
        case 0x80351102: // [17]
            strncpy(tmp_str,"live! CT0060",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x80401102: // [18]
            strncpy(tmp_str,"live! CT4760",KX_MAX_STRING); // live digital entertainment/platinum
            break;
            
        case 0x80501102: // [19]
            strncpy(tmp_str,"live! CT4750",KX_MAX_STRING); // was 4820?! k512
            break;
        case 0x80511102: // [20]
            strncpy(tmp_str,"live! CT4850",KX_MAX_STRING);
            break;
            
        case 0x80611102: // [21]
            strncpy(tmp_str,"live! 5.1 SB0060",KX_MAX_STRING);  // live 5.1
            is_51=1;
            has_surdac=1;
            break;
        case 0x80621102: // [22]
            strncpy(tmp_str,"live! 5.1 SB0100",KX_MAX_STRING);  // live 5.1
            is_51=1;
            has_surdac=1;
            break;
        case 0x80631102: // [23]
            productName = Generic;
            strncpy(tmp_str,"DXW MB",KX_MAX_STRING);
            break;
        case 0x80641102: // [24]
            strncpy(tmp_str,"live! 5.1 SB0102",KX_MAX_STRING);  // live 5.1
            is_51=1;
            has_surdac=1;
            break;
        case 0x80651102: // [25]
            strncpy(tmp_str,"live! 5.1 Digital SB022X",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x80661102: // [33]
            strncpy(tmp_str,"live! 5.1 SB0228",KX_MAX_STRING); // Russ's
            is_51=1;
            has_surdac=1;
            break;
        case 0x100a1102:
            if(!is_10k2)
            {
                if(chiprev==0xa)
                    strncpy(tmp_str,"live! 5.1 SB0229",KX_MAX_STRING); // [34] - LS
                else
                    strncpy(tmp_str,"live! 5.1 SB022b",KX_MAX_STRING); // [33]
                
                is_51=1;
                has_surdac=1;
            }
            else
            {
                strncpy(tmp_str,"Audigy 2 SB0246",KX_MAX_STRING); // Audigy2 gateway oem [88]
            }
            break;
        case 0x80671102: // [32]
            strncpy(tmp_str,"ive! 5.1 Digital SB0220",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x80681102: // [26]
            strncpy(tmp_str,"live! 5.1 CT0061",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x80691102: // [27]
            strncpy(tmp_str,"live! 5.1 SB0101",KX_MAX_STRING); // value
            is_51=1;
            has_surdac=1;
            break;
        case 0x806a1102: // [28]
            strncpy(tmp_str,"live! 5.1 SB0103",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x806b1102: // [29]
            strncpy(tmp_str,"live! 5.1 SB0105",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x806C1102: // [30]
            strncpy(tmp_str,"live! 5.1 Digital SB0221",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x80711102: // [31]
            strncpy(tmp_str,"PCI 512 SB0150",KX_MAX_STRING); // PCI512
            is_51=1;
            has_surdac=1;
            break;
            
        case 0x00401102: // ?.. dead audigy [50]
            strncpy(tmp_str,"Audigy SB0090",KX_MAX_STRING); // audigy
            break;
        case 0x00411102:
            strncpy(tmp_str,"CT4820",KX_MAX_STRING); // [51]
            break;
        case 0x00421102:
            strncpy(tmp_str,"CT0070",KX_MAX_STRING); // [52]
            break;
        case 0x00431102:
            strncpy(tmp_str,"CT007X",KX_MAX_STRING); // ct0073? // [53]
            break;
        case 0x00511102: // [54]
            strncpy(tmp_str,"Audigy SB0090",KX_MAX_STRING); // audigy with golden connectors
            break;
        case 0x00521102: // [55]
            strncpy(tmp_str,"Audigy SB016X",KX_MAX_STRING); // audigy: plastic + gameport (no 1394)
            // unknown: sb0162 -- audigy w/midi jack + plastic jacks
            break;
        case 0x00531102: // [56]
            strncpy(tmp_str,"Audigy SB0092",KX_MAX_STRING); // audigy OEM / Player SB0092
            break;
        case 0x00541102: // [57]
            strncpy(tmp_str,"Audigy SB0161",KX_MAX_STRING); // audigy
            break;
        case 0x00551102: // [58]
            strncpy(tmp_str,"Audigy SB0192",KX_MAX_STRING); // audigy
            break;
        case 0x00561102: // [59]
            strncpy(tmp_str,"Audigy SB0191",KX_MAX_STRING); // audigy
            break;
        case 0x00571102: // [60]
            strncpy(tmp_str,"Audigy (OEM) SB0091",KX_MAX_STRING); // audigy
            break;
        case 0x00581102: // [61]
            strncpy(tmp_str,"Audigy (OEM) SB0095",KX_MAX_STRING); // audigy
            break;
        case 0x00591102: // [62]
            strncpy(tmp_str,"Audigy SB0230",KX_MAX_STRING); // audigy
            break;
        case 0x005A1102: // [63]
            strncpy(tmp_str,"Audigy SB0231",KX_MAX_STRING); // audigy
            break;
        case 0x005B1102: // [64]
            strncpy(tmp_str,"Audigy SB0232",KX_MAX_STRING); // audigy
            break;
        case 0x005C1102: // [65]
            strncpy(tmp_str,"Audigy SB0238",KX_MAX_STRING); // audigy
            break;
            
        case 0x10021102: // [80]
            strncpy(tmp_str,"Audigy 2 SB0240",KX_MAX_STRING); // Audigy2
            break;
        case 0x10031102: // [81]
            strncpy(tmp_str,"Audigy 2 SB0243",KX_MAX_STRING); // Audigy2
            break;
        case 0x10041102: // [82]
            strncpy(tmp_str,"Audigy 2 SB0242",KX_MAX_STRING); // Audigy2
            break;
        case 0x10051102: // [83]
            strncpy(tmp_str,"Audigy 2 Platinum EX SB0280",KX_MAX_STRING); // Audigy2 Platinum Ex; sb244, sb250, sb290
            is_a2ex=1;
            lack_ac97=1;
            break;
        case 0x10061102: // [86]
            strncpy(tmp_str,"Audigy 2 (OEM) SB0245",KX_MAX_STRING); // audigy2 gateway oem
            break;
        case 0x10071102: // [84]
            strncpy(tmp_str,"Audigy 2 (OEM) SB0244",KX_MAX_STRING); // audigy2 oem [riva's]
            break;
        case 0x10081102: // [85]
            strncpy(tmp_str,"Audigy 2 Platinum EX SB0320",KX_MAX_STRING); // Audigy2 Platinum Ex (with ac97 codec!) + sb290
            is_a2ex=1;
            break;
        case 0x10091102: // [87]
            strncpy(tmp_str,"Audigy 2 SB0249",KX_MAX_STRING); // Audigy2 unk
            break;
            
        case 0x20011102: // [101]
            if(is_k8)
            {
                strncpy(tmp_str,"Audigy 2 ZS Mobile SB0530",KX_MAX_STRING); // audigy2 ZS Notebook
                is_zsnb=1;
                is_cardbus=1;
                lack_ac97=1;
                busName=CardBus(3);
                busName=NoteBook;
            }
            else // [90]
            {
                strncpy(tmp_str,"Audigy 2 ZS Platium Pro SB0360",KX_MAX_STRING); // audigy2 ZS Platinum Pro + sb290
                is_a2ex=1;
            }
            break;
        case 0x20211102: // [105]
            if(is_k8)
            {
                strncpy(tmp_str,"Audigy 2 ZS Mobile SB2021",KX_MAX_STRING); // audigy2 zs notebook [?]
                is_zsnb=1;
                is_cardbus=1;
                lack_ac97=1;
                busName=CardBus(3);
                busName=NoteBook;
            }
            break;
        case 0x20021102: // [91]
            strncpy(tmp_str,"Audigy 2 ZS SB0350",KX_MAX_STRING); // audigy2 ZS retail + sb250
            break;
        case 0x20031102: // [92]
            strncpy(tmp_str,"Audigy 2 ZS SB0352",KX_MAX_STRING); // audigy2 ZS ?
            break;
        case 0x20041102: // [95]
            strncpy(tmp_str,"Audigy 2 ZS SB035X",KX_MAX_STRING); // Audigy2 zs sb0350/sb0355 / Gateway OEM
            break;
        case 0x20051102: // [96]
            strncpy(tmp_str,"Audigy 2 ZS SB035X",KX_MAX_STRING); // Audigy2 zs SB0350/359
            break;
        case 0x20061102: // [94]
            strncpy(tmp_str,"Audigy 2 ZS SB035X",KX_MAX_STRING);
            break;
        case 0x20071102: // [93]
            strncpy(tmp_str,"Audigy 4 PRO SB0380",KX_MAX_STRING); // audigy4 PRO
            break;
            
        case 0x10001102: // [103]
            strncpy(tmp_str,"Audigy 2 SB1000",KX_MAX_STRING); // audigy2 value [?]
            break;
        case 0x10011102: // [100]
            strncpy(tmp_str,"Audigy 2 SB0400",KX_MAX_STRING); // audigy2 value
            // has ac97 codec
            break;
        case 0x10211102: // [102]
        {
            strncpy(tmp_str,"Audigy 4 SB0610",KX_MAX_STRING);
            is_a4=1;
            is_10k3 = 1;
            // has ac97
        }
            break;
            
            //FIXME find subsys id for audigy 4 and put them here
            /*
        case 0x10201102:
        {
            strncpy(tmp_str,"Sound Blaster Audigy 4 SB0660 10k2 CA10300",KX_MAX_STRING);
            is_a4=1;
        }*/
            
        case 0x10221102: // [104]
            strncpy(tmp_str,"Audigy 2 SB1022",KX_MAX_STRING); // Audigy2 value ?
            break;
        case 0x10241102:
            strncpy(tmp_str,"Audigy RX SB1550",KX_MAX_STRING); // audigy rx experimental
            // has ac97 codec
            is_10k3 = 1;
            is_10k2 = 1;
            is_a4=1;
            busName=CardBus(1);
            busName=PCIExpress;
            //ret=-1;
            break;
        case 0x11011102: // [106]
            strncpy(tmp_str,"Audigy SA SB1101",KX_MAX_STRING); // Audigy SA ??
            break;
            
        case 0x40021102:
            if(!is_k8)
                strncpy(tmp_str,"EMU E-0404",KX_MAX_STRING); // [111]
            else
                strncpy(tmp_str,"EMU E-0404",KX_MAX_STRING); // [120]
            
            is_edsp=1;
            lack_ac97=1;
            break;
        case 0x40031102:
            if(!is_k8)
                strncpy(tmp_str,"EMU E-1010",KX_MAX_STRING); // [112]
            else
                strncpy(tmp_str,"EMU E-1010",KX_MAX_STRING); // [121]
            
            is_edsp=1;
            lack_ac97=1;
            break;
        case 0x40041102: // [123]
            productName = EMU;
            
            if(is_k8)
            {
                strncpy(tmp_str,"EM8960",KX_MAX_STRING); // EM8960: 1010 PCI
                is_edsp=1;
                lack_ac97=1;
            }
            else
            {
                strncpy(tmp_str,"Un4004",KX_MAX_STRING); // ??
            }
            break;
        case 0x40051102:
            productName = EMU;
            if(is_k8)
            {
                strncpy(tmp_str,"EM8984",KX_MAX_STRING); // EM8984: 0404 PCIe
                is_edsp=1;
                lack_ac97=1;
                busName=CardBus(1);
                busName=PCIExpress;
            }
            else
            {
                strncpy(tmp_str,"Un4005",KX_MAX_STRING); // ??
            }
            break;
        case 0x40071102: // EM8982 - 1010 ('PCIe' series)
        {
            productName = EMU;
            if(is_k8)
            {
                strncpy(tmp_str,"EM8982",KX_MAX_STRING);
                is_edsp=1;
                lack_ac97=1;
            }
            else
                strncpy(tmp_str,"Un4007",KX_MAX_STRING);
        }
            busName=CardBus(1);
            busName=PCIExpress;
            break;
            
        case 0x42011102: // [122]
            productName = EMU;
            strncpy(tmp_str,"EM8950",KX_MAX_STRING); // 1616 CardBus v2
            is_edsp=1;
            lack_ac97=1;
            is_cardbus=1;
            break;
            
        default:
            productName = Generic;
            strncpy(tmp_str,"Generic card",KX_MAX_STRING);
            busName=CardBus(4);
            busName=other;
            ret=-1;
            break;
    }
    
    char tmp[KX_MAX_STRING];
    
    char product[KX_MAX_STRING];
    
    
    switch (productName) {
        case SoundBlaster:
            strncpy(product, "SB ", KX_MAX_STRING);
            break;
        case EMU:
            strncpy(product, "E-MU ", KX_MAX_STRING);
            break;
        default:
            strncpy(product, "KX Audio Driver ", KX_MAX_STRING);
            break;
    }
    
    strncpy(tmp, tmp_str, KX_MAX_STRING);
    
    //strncpy(tmp_str, "", KX_MAX_STRING);
    
    strncpy(tmp_str, product, KX_MAX_STRING);
    strncat(tmp_str, tmp, KX_MAX_STRING);
    

 

Share this post


Link to post
Share on other sites
2 hours ago, ITzTravelInTime said:

the drivers uses exactly a switch for that, but i have used a more complex naming system for the sound cards, becuase it can be from 2 different brands, and instead of rewriting sound blaster i used an enum and the object of the struct which represents the soiund cards has a property which tells if it's a sound blaster or an e-mu or an unknown card, and then which model is it, but you sound blaster audigy 2 zs will work with the driver, i have one and works great!

Nice, thanks for the explanation! I will buy one for me!

Share this post


Link to post
Share on other sites

i am trying to contact different expert mac os audio developers to try to add switching frequency and inputs support, i suggest to you to do that too

Share this post


Link to post
Share on other sites

Is it possible to set a fixed frequency of 192kHz for the Audigy 2 ZS card? I tried to compile kext with the above settings but the sound does not work. The highest value that I managed to achieve by compiling the kext is 176.4kHz and on these settings the card works without a problem :)Is this a problem with the size of the buffer? If so, how to increase it? From what I see, kext has limits on the maximum buffer size up to 8192. Above this value the console crashes messages "!! kXAudioEngine[%p]::getCurrentSampleFrame: hw = 0".

Share this post


Link to post
Share on other sites
1 minute ago, cinek6413 said:

Is it possible to set a fixed frequency of 192kHz for the Audigy 2 ZS card? I tried to compile kext with the above settings but the sound does not work. The highest value that I managed to achieve by compiling the kext is 176.4kHz and on these settings the card works without a problem :)Is this a problem with the size of the buffer? If so, how to increase it? From what I see, kext has limits on the maximum buffer size up to 8192. Above this value the console crashes messages "!! kXAudioEngine[%p]::getCurrentSampleFrame: hw = 0".

yes that does not works, but frequencyes up to 48 khz does works

Share this post


Link to post
Share on other sites
Posted (edited)

but 176.4kHz works well on recompiled kext, but if this is actually a real frequency, I am unable to say :)

Edited by cinek6413

Share this post


Link to post
Share on other sites
1 minute ago, cinek6413 said:

but 176.4kHz works well on recompiled kext :)

probably because it's the multiple of some frequencyes and it does work because the math of the driver could handle it

Share this post


Link to post
Share on other sites

i successfully got the switching frequencyes to work, i can't belive it!

 

now i have to test all the frequencyes to work with different cards and see which is the maximun working one for each card, but i can already say that sound blaster live! cards are limited up to 48khz, so the driver will support from 8khz up to 48 khz on this kind of cards, i prefer to keep using official supported sample rates, now i have to test it on the audigy 1st series, 2 series, audigy 2 zs cards and audiigy rx cards to see which is the max frequency thaty can support, but most of them are just limited to 96khz, but we will see in the tests, after the tests i can release both the drivers and the source code for it.

Share this post


Link to post
Share on other sites
Posted (edited)

And also when you have to test an audio driver and you have to do it properly

 

 

 

 

 

 

 

 

 

 

.

Schermata 2018-04-25 alle 22.58.50.png

Edited by ITzTravelInTime

Share this post


Link to post
Share on other sites
On 4/24/2018 at 7:54 PM, cinek6413 said:

but 176.4kHz works well on recompiled kext, but if this is actually a real frequency, I am unable to say :)

as documented here it is a sample rate standard and i have also tested it and i can confirm that it works with my audigy rx at least, i have to test it with other cards

 

https://github.com/audiojs/sample-rate

Share this post


Link to post
Share on other sites

all the possible frequencyes i have added seems to work fine at the moment, i have added a lot of different frequencyes to support better all kinds of professional applications, inclunding strange sampling rates and goes from 8khz up to 176.4 khz, unfortunately 192 khz does not seems to work even on cards which should support it like the audigy rx, but other frequencyes just works fine and at the moment i have tested only the sound blaster audigy rx and the audigy sb0090 (1st gen audigy) and i can confirm that all the frequencyes from 8khz up to 176.4 khz does work on that card, so i think that such frequencyes should work on all the audigy 2, 2sz, 4 cards as well, tomorrow i will test with my sound blaster live! cards and i will let you know, but here are also some photos (pro tip: use cmd + alt/opton + 4 and then press space to make a screenshot of a single window):

Schermata 2018-04-26 alle 00.46.23.png

Schermata 2018-04-26 alle 00.46.32.png

Share this post


Link to post
Share on other sites
22 hours ago, ITzTravelInTime said:

all the possible frequencyes i have added seems to work fine at the moment, i have added a lot of different frequencyes to support better all kinds of professional applications, inclunding strange sampling rates and goes from 8khz up to 176.4 khz, unfortunately 192 khz does not seems to work even on cards which should support it like the audigy rx, but other frequencyes just works fine and at the moment i have tested only the sound blaster audigy rx and the audigy sb0090 (1st gen audigy) and i can confirm that all the frequencyes from 8khz up to 176.4 khz does work on that card, so i think that such frequencyes should work on all the audigy 2, 2sz, 4 cards as well, tomorrow i will test with my sound blaster live! cards and i will let you know, but here are also some photos (pro tip: use cmd + alt/opton + 4 and then press space to make a screenshot of a single window)

 

Great info! I would be interested in the source code :)I care very much about getting 192kHz, I could try to figure it out. I also have one more question: is the driver not really limited to only 24 bits? I'm asking because the Audirvana Plus application identifies the card as 32 bit, but the playback itself is only in 24 bits, and this program supports 32 bit audio playback.

Share this post


Link to post
Share on other sites
Posted (edited)
2 hours ago, cinek6413 said:

 

Great info! I would be interested in the source code :)I care very much about getting 192kHz, I could try to figure it out. I also have one more question: is the driver not really limited to only 24 bits? I'm asking because the Audirvana Plus application identifies the card as 32 bit, but the playback itself is only in 24 bits, and this program supports 32 bit audio playback.

 the driver for 10k2 cards like the supported sound balster audigy cards, works at 32 bit but physically i think that cards accepts only 24 bits, but i am not sure about that, for the 192 khz sampling rate i think that it can't work because the the math of the driver or the cards itself struggles to handle it (maybe beause it has been implememnted in a particular way and the whay the driver handles frequencyes is not correct to handle such implementation, i have seen that in the official windows drivers 192 khz are implemented only for the main output, but the kx audio dirver does change the frequency of all the outputs at the sane time, to let them to be in sync, so i ahve to try see if it can work maybe just using it for the main output only) and also do remember that sound blaster live and other 10k1 based cards are limited up to 48 khz and can work only at 16 bits, so higher frame rates can be used only on 10k2 based cards, i am testing those using my cards from the audigy series including the audigy 2 zs, but a driver limited to 176,4 khz can be released now, i just have to finish testing, change version and build numbers abd compile a version to distribute, today i have aklso done testing on my sound blaster live! cards and it's working fine on that cards too

Edited by ITzTravelInTime

Share this post


Link to post
Share on other sites

That's awesome news!!

 

I have the audigy 2 zs... the same as yours won't help much but I can help in the testing if you want, Itz.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By JoeMaya
      Hi. I'm currently on AppleALC.kext with layout ID 3. Clover's a boot argument contains alcid=3. 

      Problem:
       
      Case: Happens only in case of earphones.
      Problem description: The sound is somewhat like an echo where I'm hardly able to hear the vocals of a song. And the music sounds as if it's being playing under water. I later went to audio devices and tried checking the checkbox shown in the image below. I did improve the sound and I was finally able to hear vocals of a song in a much better way, however, it still doesn't sound like a proper sound. Is there any more configuration that I need to make? 

      The reason I'm able to differentiate the bad and the good sound output is because on High Sierra, using AppleHDA patch, the sound worked fine using AppleHDA patcher.

       

    • By warty
      On 8/20/2018 at 5:22PM, TessereKt said:
       
      On 8/21/2018 at 7:34AM, insanelyDeepak said:
       
      @insanelyDeepak, I would like to try cloverHDA, but I need help understanding how to use it.
       
      I have an Asus laptop that uses Realtek ALC295.
       
      My questions with regard to using cloverHDA:
      1.  I am running High Sierra (10.13.6). Is cloverHDA directly compatible? If not, can it easily be made compatible with adjustments I can apply?
       
      2.  What needs to be done with the original AppleHDA.kext that is already present in /S/L/E? Should it be left alone? Should it be removed? If it is removed, does the AppleHDA.kext that comes with cloverHDA, for example /Vanilla AppleHDA/Mac OS Sierra 10.12.6/AppleHDA.kext, need to be installed in its place?
       
      3.  In the 21 aug 18 reply to TessereKt, you mentioned "there is ALCPluxfix must install this." I noticed that there is a directory for alc_fix in one ALC295 directory (the ALC295_v2 Asus UX430UA directory) but not in the other ALC 295 directory that is provided (the ALC295/3254 directory). In which situation(s) is ALCPlugFix required?
       
      4.  My pathmaps are somewhat different from those in the cloverHDA.kext. Is there an easy way for me to customize the kext? For example, if I just switch the values in the xml files, will that be enough? Or does the whole thing then need to be recompiled?
       
      needed pathmaps:
      33-2
      23-3
      7-36-18
      9-34-19
       
      (My highest priority for the moment is getting headphone working, which is 33-2, and I might even be able to use the 33-3 that is already included. But I would like to eventually get all of them working.)
       
       
    • By NyssSun
      Hello everyone, as you can see in the title, I'm having problems with the graphics driver card (I think).
      Because when I log in for example, the screen start showing to me like some blank lines and then they go away.
      I think it could be some problem related to drivers, but when I go to (Apple Icon), About this Mac it told me the right graphics card, Gigabyte 210 1024MB.
      What could I do to solve this problem ?, when I browse in the internet it happens those glitches in my screen.
      If you want the specifications of my computer are these:
      HP Compaq 8000 elite sff
      Intel Core Duo E7500
      Gigabyte GeForce 210
      4GB RAM 1333MHz
      Thank you for all your help, regards.
       
    • By buges
      Hi
       
      I have a lynx aes16 pci card installed in my system which works when it wants to!
       
      Sometimes it's fine and sometimes it just stops or digitally stutters, manually unloading and reloading the kext makes no difference and when i reboot i get the following message:
       
      >>>> Lynx.kExt: No interrupts processed for one second! [0]. Restarting Devices!
       
      It works perfectly in windows, and never had a problem when i was using an asus Z170, so i think it might be a gigabyte issue.
       
      Any help would be great
      Thanks
       
       
       
×