stohrendorf / ppplay

An old-fashioned Module Player
37 stars 2 forks source link

How to build #2

Open gtaylormb opened 1 month ago

gtaylormb commented 1 month ago

Hey I wanted to build ppplay to compare against my FPGA implementation (specifically the rythym operators). Having some trouble building under Ubuntu (I ran cmake then make and I'm getting a bunch of build errors). What environment is this tested on, and what is the build procedure? Thanks!

stohrendorf commented 1 month ago

This project is basically broken and dead, it was my first "real" C++ project, so I'm not surprised you can't build it. I had troubles making it work in the past, and the whole project needs an overhaul. It was developed on Windows and openSUSE and barely works on these OS's nowadays.

gtaylormb commented 1 month ago

Ahh, too bad, no worries though. I get it. I'll try under Windows; maybe I'll have better luck.

So my rhythm operators are working in a test branch, but the hi-hat specifically sounds off. It also sounds off in the Nuked sw implementation which people say is highly accurate, so just wanted to get a comparison to your version which mine is based on. It's quite possible I made a mistake along the way. These damn rhythm operators are tricky and lots of weird, conflicting information floating around. The hi-hat is the most complex of them so I'm not surprised it's off. Nuked combines the hi-hat phase with the top-cymbal phase, which you and I had originally but changed to just using the hi-hat phase, but it still sounds off, so who knows. Also I see the modulation is now added after the sine lookup and gain for rhythm ops in your version, which is quite different to the normal operators.

Normal operators and the other rhythm operators I've tested are spot on, which is great.

Anyway, what are you working on these days? I feel like you've probably done some cool stuff in the last 10 years.

stohrendorf commented 1 month ago

Basically this, this and this. I thought about porting the graphics and audio engines (or at least part of them) over to PPPlay, as they provenly work across different platforms and are way better to handle in the build process - but it would mean replacing some core parts here.

Regarding the differences and Nuked OPL, my guess is that Nuked is actually based on this code right here, but I never put any effort into proving or disproving it. Regarding the top cymbal and hi-hat, my guess would be here it may be a combination of a buggy implementation and differences in DACs as well as all the components the signal went through.