- xet7 (QUIT: Remote host closed the connection) (~xet7@user/xet7) | 00:37 | |
+ xet7 (~xet7@user/xet7) | 01:04 | |
apolkosnik[m] | Zool | 02:06 |
---|---|---|
- RobDangerous (QUIT: Ping timeout: 250 seconds) (~Thunderbi@p200300ec8f3e1c00717bc94d090332a8.dip0.t-ipconnect.de) | 02:39 | |
- WoC (QUIT: Ping timeout: 240 seconds) (woc@2603-8080-cd40-00c6-eaaf-8a29-4225-dc1f.res6.spectrum.com) | 07:07 | |
+ WoC (woc@2603-8080-cd40-00c6-eaaf-8a29-4225-dc1f.res6.spectrum.com) | 07:11 | |
+ RobDangerous (~Thunderbi@p200300ec8f3e1c0010eeaa04747799d8.dip0.t-ipconnect.de) | 08:40 | |
RobDangerous | I played through the new Zool game last night. apolkosnik has an eye on me. | 09:02 |
_Bnu | mntmn: Toni found some magical pile of infos, but because he gave up on the new AHI drive quite some time ago he needs to go through it and check what parts of it were actually relevant to what he was doing, more info during the weekend hopefully. :D | 09:21 |
_Bnu | But apparently the current UAE AHI driver (that works) is mostly an edited Paula driver from the AHI 4.18 dev archive. | 09:21 |
mntmn | _Bnu: cool! | 10:35 |
- S0rin (QUIT: Ping timeout: 248 seconds) (~S0rin@user/s0rin) | 12:10 | |
+ S0rin (~S0rin@user/s0rin) | 12:12 | |
- S0rin (QUIT: Read error: Connection reset by peer) (~S0rin@user/s0rin) | 13:46 | |
+ S0rin (~S0rin@user/s0rin) | 14:01 | |
_Bnu | 819 bytes of snake data. | 14:24 |
mntmn | i would like to know more | 14:53 |
- S0rin (QUIT: Ping timeout: 250 seconds) (~S0rin@user/s0rin) | 15:17 | |
+ S0rin (~S0rin@user/s0rin) | 15:30 | |
- xet7 (QUIT: Remote host closed the connection) (~xet7@user/xet7) | 16:02 | |
+ xet7 (~xet7@user/xet7) | 16:03 | |
- S0rin (QUIT: Ping timeout: 252 seconds) (~S0rin@user/s0rin) | 16:20 | |
+ S0rin (~S0rin@user/s0rin) | 16:22 | |
- S0rin (QUIT: Ping timeout: 252 seconds) (~S0rin@user/s0rin) | 17:11 | |
+ S0rin (~S0rin@user/s0rin) | 17:17 | |
mntmn | _Bnu: how often do you think an audio interrupt should fire... | 18:36 |
mntmn | the first thing i should maybe figure out is what causes the ahi loopy thing to use up 100% cpu and freeze everything except the audio itself | 18:37 |
mntmn | is it because of the 127 priority? | 18:37 |
mntmn | > It is not wise to needlessly raise a task's priority | 18:38 |
mntmn | > Normally, system tasks execute somewhere in the range of +20 to -20, and most application tasks execute at priority 0 | 18:38 |
mntmn | i think 127 is def. too much | 18:38 |
_Bnu | AHI wants it once per frame, but I have no idea if the interrupt priority matters. | 18:53 |
Claude | what I was missing by skimming trough the ahi6 driver sources . where is the audio buffer ? | 18:55 |
_Bnu | Nowhere available to the driver, typically. | 18:56 |
_Bnu | AHI will mix things to the buffer you point it at. | 18:56 |
_Bnu | But I'n trying to get around it. | 18:56 |
mntmn | _Bnu: i meant task priority, not irq | 18:58 |
mntmn | the one of the worker thread | 18:58 |
_Bnu | Ah yeah, no idea... ideally it shouldn't matter, if it's Wait()ing, but who knows... | 18:59 |
mntmn | ah makes sense | 18:59 |
mntmn | in my case i think it was never really wait()ing because it was always fed with new signals | 18:59 |
mntmn | because 1 round going throught the loop was already too slow perhaps | 19:00 |
mntmn | through | 19:00 |
mntmn | traffic jam, so to speak | 19:00 |
_Bnu | Ah, yeah. You could disable the interrupt while it's in the loop I guess. | 19:00 |
_Bnu | But it's not too abnormal for AHI to use 100% CPU. | 19:00 |
mntmn | ;_; | 19:00 |
_Bnu | Especially not if you still have it at 48KHz. | 19:00 |
mntmn | i have. that's the only freq i can do (except if i would upsample on the ARM) | 19:01 |
mntmn | first i shall downgrade to ahi48 | 19:01 |
_Bnu | Yeah, as far as I know, no Amiga can really handle that... Well, maybe a Vampire. | 19:01 |
mntmn | _Bnu: this scares me | 19:01 |
_Bnu | But I've always run ScummVM at like 8KHz and 8-bit audio. | 19:01 |
mntmn | well, i DID do 48khz 16bit stereo in my test program | 19:01 |
mntmn | and my amiga did handle it | 19:02 |
_Bnu | Yeah well, why do you think I want to get away from AHI's mixing and conversion, hahah. | 19:02 |
mntmn | but that did not go through ahi | 19:02 |
_Bnu | Yeah but your application isn't AHI. | 19:02 |
mntmn | exactly | 19:02 |
_Bnu | AHI does a lot of crap we don't want it to do... | 19:02 |
mntmn | ideally it should do absolutely nothign | 19:02 |
mntmn | but it does not like doing nothing... | 19:02 |
_Bnu | Yeah, I'm hoping Toni can assist me with that. | 19:03 |
_Bnu | So I can avoid going insane trying to rip AHI apart. | 19:03 |
mntmn | i hope you will give me the cheat codez | 19:04 |
mntmn | i was even thinking to make a ahi shim library | 19:04 |
mntmn | i.e. just replace it | 19:04 |
_Bnu | I mean, I'll give everyone the cheat codes. | 19:04 |
mntmn | by something dumb | 19:04 |
_Bnu | They'll be on gutheb. | 19:04 |
mntmn | but i don't know if apps are already coded around its weirdness | 19:04 |
mntmn | cool cool | 19:04 |
_Bnu | But yeah, I dunno if you've tried playing AmiDuke? (Duke Nukem 3D.) | 19:12 |
_Bnu | Without working AHI sound, it can run at up to 22 FPS. | 19:12 |
_Bnu | With AHI working and playing back sound, it never breaks 10. | 19:13 |
_Bnu | And you probably saw that Monkey Island 3 video at some point? | 19:13 |
_Bnu | Where the game ran pretty okay... until the music started playing. | 19:13 |
_Bnu | And that's on a 50MHz 060. So like 8x the speed of a 50MHz 030. | 19:15 |
_Bnu | Uhhh, 25MHz. | 19:16 |
mntmn | yes | 19:20 |
_Bnu | http://apehead.se/i_will_phone_you_now.jpg I had to dig up my old SysInfo screenshot to make sure I remembered correctly... | 19:20 |
mntmn | hehe | 19:27 |
_Bnu | But yeah, just imagine how much faster you could up/downsample and mix buffers on the ZZ9000 compared to on the 030 or even the 060, haha. | 19:30 |
mntmn | absolutely | 19:30 |
_Bnu | Slap mode enabled... | 19:53 |
mntmn | the ahi docs literally say > Fast, powerful mixing routines (yeah, right... haha) | 19:53 |
mntmn | > (yeah, right... haha) | 19:53 |
_Bnu | lol | 19:54 |
_Bnu | Yeah. | 19:54 |
_Bnu | So you'd think it wouldn't be such a problem to just have AHI... not do that, and just give you pointers to sound buffers to mix in and play back. | 19:54 |
mntmn | i'm reading the docs again. | 19:55 |
mntmn | trying to understand what playerfunc is supposed to do | 19:55 |
mntmn | when i call playerfunc... does that actually call something in the app that is playing? | 19:56 |
mntmn | so, the buffer should be ready somewhere after calling playerfunc, right? | 19:56 |
_Bnu | No. | 19:56 |
_Bnu | As far as I can tell, PlayerFunc is supposed to just tell AHI to move on to its next internal task. | 19:56 |
mntmn | AHIA_PlayerFunc (struct Hook *) - A function to be called at regular | 19:57 |
mntmn | intervals. By using this hook there is no need for music players | 19:57 |
mntmn | to use other timing, such as VBLANK or CIA timers. But the real | 19:57 |
_Bnu | And the buffer you point MixerFunc at is the only way you get a sound buffer out of it, aside from like the LoadSound/SetSound things. | 19:57 |
mntmn | reason it's present is that it makes it possible to do non- | 19:57 |
mntmn | realtime mixing to disk. | 19:57 |
mntmn | (this is from the application developer point of view) | 19:57 |
_Bnu | So uh. | 19:58 |
_Bnu | No, that can't be it, because the Toccata driver also calls PlayerFunc. | 19:58 |
mntmn | but why can't that be it? | 19:58 |
mntmn | i mean, why wouldn't toccata call it? | 19:58 |
mntmn | it appears to me as if this is the mechanism that drives the application's playback | 19:59 |
_Bnu | I was wondering if maybe the driver wasn't supposed to call it. | 19:59 |
- WoC (QUIT: Remote host closed the connection) (woc@2603-8080-cd40-00c6-eaaf-8a29-4225-dc1f.res6.spectrum.com) | 19:59 | |
mntmn | the ahi driver docs say: 1) Call the user Hook ahiac_PlayerFunc with the following parameters: | 19:59 |
mntmn | so, the driver calls it | 19:59 |
_Bnu | Yeah, I know. | 19:59 |
mntmn | and the application _can_ implement it but doesn't have to | 19:59 |
mntmn | if it wants to use its own timing | 19:59 |
_Bnu | But we don't want to call PlayerFunc or MixBepFunc ever... | 20:00 |
_Bnu | We just want messages about LoadSound and PlaySound... | 20:00 |
_Bnu | SetSound, even. | 20:00 |
mntmn | why don't we want to call playerfunc? | 20:01 |
_Bnu | Because why would we... | 20:01 |
mntmn | only mixerfunc does heavy lifting | 20:01 |
mntmn | naja because some applications might freeze if we don't call playerfunc | 20:01 |
mntmn | because an application can decide to rely on it for timing | 20:01 |
mntmn | it's kind of the clock for the application | 20:01 |
mntmn | (or it can be, doesn't have to be) | 20:01 |
_Bnu | Yeah, but what does that have to do with the driver calling PlayerFunc? I thought that was for timing purposes in the driver as well. | 20:02 |
mntmn | no | 20:02 |
_Bnu | But even so, I can't get it to work at all currently. Because I'm stubborn and refuse to enable mixing/timing. | 20:02 |
mntmn | ok, maybe if you don't enable timing then you don't have to call playerfunc, let me see | 20:03 |
_Bnu | PlayerFunc is the only function available to call if you don't enable timing or mixing. | 20:03 |
_Bnu | The other ones are null pointers. | 20:03 |
mntmn | - If AHIsub_AllocAudio() returned with neither the AHISB_MIXING nor | 20:03 |
mntmn | the AHISB_TIMING bit set, then just start playback. Don't forget to | 20:03 |
mntmn | call ahiac_PlayerFunc ahiac_PlayerFreq times per second. Only your | 20:03 |
mntmn | own timing hardware or 'realtime.library' may be used. | 20:03 |
mntmn | see, you have to call playerfunc always | 20:03 |
mntmn | even if you choose not to use TIMING | 20:03 |
_Bnu | I know | 20:03 |
_Bnu | I have read that. | 20:03 |
mntmn | ok | 20:03 |
_Bnu | But it quite obviously does not work, even Toni says it doesn't work and he talked to the AHI author about it, haha. | 20:04 |
mntmn | ok | 20:04 |
mntmn | sorry i'm a few steps behind in understanding, so i just wanna confirm all of these details. | 20:04 |
mntmn | my mind is still melting about how to fucking synchronize things with the hardware | 20:06 |
_Bnu | If you don't enable timing or mixing, you're supposed to handle all those function calls that return AHIS_UNKNOWN. | 20:06 |
_Bnu | Because you're the one who'll be doing all the mixing (theoretically), so you need that info. | 20:07 |
mntmn | i guess i just need a reliable 50hz timer | 20:07 |
- S0rin (QUIT: Ping timeout: 252 seconds) (~S0rin@user/s0rin) | 20:10 | |
_Bnu | Or maybe an unreliable one... | 20:11 |
_Bnu | ACTION clicks the mouse 50 times per second | 20:11 |
+ S0rin (~S0rin@user/s0rin) | 20:12 | |
pasik | sound playback too slow? click faster! | 20:13 |
apolkosnik[m] | Use HippoPlayer | 20:13 |
mntmn | hehe | 20:28 |
mntmn | does hippoplayer have ahi support? | 20:28 |
mntmn | and now i wish the docs would actually ~explain~ what pre and post timer do, for real | 20:30 |
mntmn | why is that so secretive | 20:30 |
mntmn | did everybody write documentation this fuzzy in the 90s? | 20:31 |
mntmn | i mean, the amiga hardware docs are certainly better... | 20:31 |
pasik | https://wiki.amigaos.net/wiki/AHI_Device | 20:40 |
pasik | some ahi usage docs there, from the app perspective | 20:40 |
pasik | but you've probably seen all those already | 20:42 |
_Bnu | I think it's just that, like. | 20:52 |
_Bnu | No one ever wrote any drivers for AHI without it being part of a paid product, and they probably did it back at a time when the author of AHI was actually available to contact. | 20:53 |
_Bnu | And because no one ever really wrote any drivers for it, the dev archive documentation ended up being half finished. | 20:53 |
_Bnu | No one needed it, because they already knew how it worked, and no one else wanted to use it. | 20:54 |
_Bnu | If you consider the fact that the only working AHI driver (currently) for WinUAE is basically just an edit of the Paula driver, it still holds true. | 20:54 |
_Bnu | I of course don't have any of the other sound cards, so I can't check if they actually alleviate CPU load at all. | 20:54 |
_Bnu | The Prisma Megamix or whatever did not seem to do so, judging by the description a user gave. | 20:55 |
apolkosnik[m] | https://www.exotica.org.uk/wiki/HippoPlayer | 20:59 |
apolkosnik[m] | Says that it can do ahi for protracker | 21:00 |
- S0rin (QUIT: Ping timeout: 250 seconds) (~S0rin@user/s0rin) | 21:04 | |
mntmn | _Bnu: prisma is only an MHI card, not AHI | 21:05 |
mntmn | [aswap] amiga: 3840 dma: 12288 d-a: 8448 | 21:05 |
mntmn | [aswap] amiga: 7680 dma: 17152 d-a: 9472 | 21:05 |
mntmn | [aswap] amiga: 11520 dma: 22048 d-a: 10528 | 21:05 |
mntmn | [aswap] amiga: 15360 dma: 27232 d-a: 11872 | 21:05 |
mntmn | [aswap] amiga: 19200 dma: 32096 d-a: 12896 | 21:05 |
mntmn | i have some sort of playback, just desynchronized still | 21:05 |
mntmn | i.e. one party is faster | 21:06 |
mntmn | and then they overtake each other on the ring | 21:06 |
mntmn | it's like 2 little race cars on the circular race track. | 21:06 |
mntmn | i should probably output a timestamp here as well | 21:08 |
mntmn | and downgrade to 48 finally | 21:11 |
_Bnu | Downgrate. | 21:13 |
_Bnu | But like. | 21:13 |
_Bnu | That's how little idea I have about any of the sound cards. I didn't even know the Prisma wasn't an AHI card. | 21:14 |
_Bnu | Or why it matters that it's an AHI card, I thought it just needed drivers. | 21:14 |
_Bnu | But you're saying that there's some sound card for Amiga that doesn't just take the easy way out as far as AHI goes? | 21:16 |
+ S0rin (~S0rin@user/s0rin) | 21:17 | |
- RobDangerous (QUIT: Ping timeout: 250 seconds) (~Thunderbi@p200300ec8f3e1c0010eeaa04747799d8.dip0.t-ipconnect.de) | 21:23 | |
mntmn | _Bnu: prisma is only for outputting mp3 and stuff. no audio playback | 21:24 |
_Bnu | ('A`) ?! | 21:25 |
mntmn | it's only a music card | 21:28 |
mntmn | not a sound card | 21:28 |
mntmn | it has an mp3 decoder chip on it, not like a normal audio dac | 21:28 |
mntmn | ok so here is something mind boggling | 21:28 |
mntmn | ahi48 gives me only one channel and the other is zero (silence) ;_______; | 21:29 |
mntmn | w t f | 21:29 |
mntmn | so i'm hearing only half of the music now with lots of farts in between | 21:29 |
_Bnu | Sounds good to me... | 21:30 |
+ drph33r (~igloo@84.67.2.63) | 21:30 | |
_Bnu | Did you set the card to two channels in the prefs? | 21:30 |
_Bnu | Otherwise I think it gets really weird about stereo. | 21:30 |
mntmn | ok wait | 21:31 |
mntmn | i did not change the prefs after downgrading, maybe that's the problem | 21:31 |
mntmn | the farting is always when my playback dma overtakes what amiga is feeding i think | 21:32 |
mntmn | need faster brocessor | 21:32 |
mntmn | or i could try 24khz | 21:32 |
mntmn | _Bnu: for me the channels slider is greyed out | 21:33 |
mntmn | like, can't change it | 21:33 |
mntmn | and it also doesn't show a value | 21:34 |
_Bnu | For the music slider, that should be the case. | 21:38 |
_Bnu | But not for the unit 0, 1, etc. | 21:38 |
mntmn | ah, i forgot what these mean, i.e. what's the difference between music and 0 | 21:39 |
- drph33r (QUIT: Ping timeout: 240 seconds) (~igloo@84.67.2.63) | 21:41 | |
mntmn | turns out, amiga is not too slow per se. just the timing is fucked up. if i force it to do feed 2x in one vblank, it consistently overtakes the cards dma, i.e. it sounds fast forwarded. | 21:43 |
_Bnu | Good... | 21:53 |
_Bnu | Yeah, I have no idea why you would want to use AHI's mixing and timing for playback, rather than just get a sound buffer when it's supposed to play, some command to keep feeding the buffer when it's time. Having to trigger AHI to move on feels so wrong. | 21:54 |
+ WoC (woc@2603-8080-cd40-00c6-eaaf-8a29-4225-dc1f.res6.spectrum.com) | 22:02 | |
mntmn | tja | 22:36 |
mntmn | now wired up another fabric interrupt from the audio formatter thing | 22:36 |
mntmn | so that i can time all that stuff... | 22:37 |
_Bnu | D-don't do it... | 22:42 |
_Bnu | ACTION dies of timing | 22:42 |
mntmn | damn damn damn | 23:08 |
mntmn | ok audio formatter interrupt finally firing... | 23:21 |
mntmn | crazy, it works | 23:24 |
mntmn | the only problem is that ahi 4 gives me only that damn mono channel | 23:24 |
mntmn | but i can use the system while it's playing at 48khz! | 23:25 |
mntmn | on a 030/25 | 23:25 |
mntmn | i will try one more time with ahi 6 and then go home... | 23:25 |
mntmn | ahi6 gives stereo samples but appears to be too slow indeed | 23:30 |
mntmn | yeah. there's no doubt that ahi6 mixing got much slower. | 23:33 |
mntmn | _Bnu: btw there's also something called CyberSound | 23:37 |
mntmn | lol | 23:43 |
mntmn | so hippoplayer manages to play to both AHI channels, but... both are the same channel, i.e. copies | 23:44 |
mntmn | ok that is influenced by the "stereo level" setting | 23:46 |
mntmn | so panning works... but it pans only half of the PT channels to either stereo AHI channel | 23:47 |
mntmn | even dynamically | 23:47 |
_Bnu | 8D | 23:47 |
_Bnu | CyberSound, related to CyberGraphics? | 23:47 |
_Bnu | Which would probably in extension mean that it's impossible to make drivers for it... | 23:48 |
mntmn | haha perhaps | 23:50 |
mntmn | there are settings for it in hippoplayer | 23:50 |
mntmn | maaaaan this is annoying | 23:57 |
mntmn | _Bnu: do you really get stereo from ahi4.18 ;_____; | 23:58 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!