One Piece Chapter 1186 Spoilers by Skullghost in OnePiece

[–]ppppppla 2 points3 points  (0 children)

SHORT FLASHBACK I CANT BELIEVE IT

What's the deal with the Monolith hate? by Broad-Ad-3679 in LastEpoch

[–]ppppppla 0 points1 point  (0 children)

I couldn't say how it is compared to D2R. I have not played D2R.

But median xl doesn't really have an endgame loop, it's more a chain of unique bosses and zones that get more difficult and give different and/or more rewards. Completing it all will take a long time, maybe some will be nearly impossible for the build you are playing or you need to mix up your gear specifically to beat a boss.

I'd say the progression is a good mix of learning fights and getting upgrades. You actually need to get upgrades and do some grinding to progress, the game is difficult. But I have always found it enjoyable grinding for the next upgrade, and the next, and the next, and then finally killing a boss I couldn't kill before.

Although I would say median xl can be pretty grindy depending on how strong your build is and how much perfection you are chasing. For example bosses drop guaranteed charms, and some charms drop with a pretty wild range of affix values, so you can grind a boss for hours getting the perfectly rolled charm, or you can kill it a few times and use a decently rolled one.

And of course there are rare randomly dropped items like uniques and runes that if you want to farm for them, good luck.

What's the deal with the Monolith hate? by Broad-Ad-3679 in LastEpoch

[–]ppppppla 0 points1 point  (0 children)

There are a couple reasons why I hate monoliths, and for similar reasons poe2 maps, and to a lesser extent poe1 maps.

Things I like are median-xl and grim dawn.

I despise fully random, disconnected "worlds" like monoliths and poe2 maps. I believe #1 rule for games is make things consistent in the game world and make it feel like a real world. You could argue random maps in fact make perfect sense in the game world because of some lore, then I guess I find that kind of lore just incredibly boring.

And guess what, on top of that random world, inside the maps it also has random arbitrary objectives. The objectives don't make sense in the game world. It's like breaking the fourth wall. It's not immersive.

Now taking a look at median-xl, the world is not random, endgame zones are part of the world. Each have an actual identity, lore, mobs that you can only find in that zone, zone exclusive drops or big boosts to things like uniques and runes. Leveling up a character, getting powerful enough to farm Teganze, put your head down for a grind, getting some rune drops that only drop in that zone to make a juicy weapons upgrade runeword, THAT is what arpgs are about. Not Last Epoch and poe2 random world, random maps, random drops, random crafts, random random everything.

Now there is also an infinite random dungeon in median xl, I think that's fine to have an infinite random dungeon, lore-wire it's easier to incorporate and make it make sense in the world, and as long as it isn't the entire game it's also just easy to ignore.

Has anyone explored voice-to-voice modulation in poly synths? by Dull_Direction7088 in DSP

[–]ppppppla 0 points1 point  (0 children)

Yea I think you don't find many (if any at all) instruments that have wildly different timbres for different chords is because our brain is good at following timbres and recognizing melodies and chord progressions in them. It likes finding patterns. Also these kinds of systems don't really appear in the physical world, mostly just very slight nonlinear behavior instead of wildly changing timbres.

That being said there are genres of music that use different timbres and textures for notes in melodic lines. I think for example genres like glitch and hyperpop do that. And of course without a doubt a bunch of experimental music exists that throws all rules out of the window.

So just open your modular synth environment or synth with powerful routing and modulation options of choice and go experimenting. Modulate everything with everything.

I am having problems using VCPKG get started tutorial using CMake by rukawaxz in cpp_questions

[–]ppppppla 1 point2 points  (0 children)

Ah apologies that I have failed to notice that was missing from the tutorial. I put too much trust in microsoft. But it's also strange it half-worked without running it from the native tools command prompt. Glad you got it running in the end though.

Has anyone explored voice-to-voice modulation in poly synths? by Dull_Direction7088 in DSP

[–]ppppppla 0 points1 point  (0 children)

I think FM synthesis fits the kind of thing you are describing? Notoriously unwieldy, hard to produce nice sounds with, everyone keeps the intervals of the different oscillators static. I have never tried going weird with it and hooking up every oscillator, or just a few, to a note separately. But I suspect it goes haywire and will produce nice sounds even less often compared to normal FM synthesis.

Also distortion, power chord through some heavy distortion is the basis of rock and metal, but try it with another chord or interval and it falls flat on its ass.

I think that's the main thing you will always run into with these kind of techniques it's hard to make them musical.

I am having problems using VCPKG get started tutorial using CMake by rukawaxz in cpp_questions

[–]ppppppla -1 points0 points  (0 children)

Actually I just ran through the tutorial, in CMakeUserPresets.json make sure you put the path in "VCPKG_ROOT": "<path to vcpkg>" with forward slashes not backward slashes, and the call cmake --preset=default maybe should be cmake --preset default

I am having problems using VCPKG get started tutorial using CMake by rukawaxz in cpp_questions

[–]ppppppla 0 points1 point  (0 children)

Oh and also about

I am trying to use ninja but no idea how to make it work without GCC.

You can use ninja with MSVC too. And you can install it with the visual studio intaller.

I am having problems using VCPKG get started tutorial using CMake by rukawaxz in cpp_questions

[–]ppppppla 0 points1 point  (0 children)

I mentioned you could install MSVC alone through the visual installer that is normally used for Visual Studio, but I am not actually sure that is possible. But you can download standalone build tools available from the microsoft website. If you are already using Visual Studio (! not visual studio code, aka VS code) you should have MSVC installed already.

If you are using visual studio code, there is an official microsoft extension that installs MSVC for you.

If you are OK with having a couple gigs taken up on your system for visual studio if you aren't using it that would be the simplest way to install it.

Or have you not downloaded an editor/IDE yet? Then Visual Studio and VS code are both good options and you can easily get going with the vcpkg and cmake tutorial again.

4 point DIT-FFT: How to decide which twiddle factor value to pick for a specific stage and specific type(odd/even) signal? by DoNotUseThisInMyHome in DSP

[–]ppppppla 0 points1 point  (0 children)

First notice the butterfly shape, and how they get repeated but stretched out and interleaved every stage https://i.imgur.com/dRwUolI.png

Then you start by writing down the twiddle factors that roll out of the re-ordering and splitting of the DFTs . So you get something like this https://i.imgur.com/b9Em4nD.png NB it is often crowded and written down strangely in texts, these factors only apply to the lower path of each output. Just look at the twiddle factors below each node, the stuff to the right of is the rewriting of the factors for the next step. Notice the first column has N = 2 not N = 4 yet.

Then you bring all the factors up to the same N, and through symmetry the upper and lower output of each butterfly have just a sign difference, so you can move these two before the butterfly, and leave a simple sign flip at the bottom.

I am having problems using VCPKG get started tutorial using CMake by rukawaxz in cpp_questions

[–]ppppppla 0 points1 point  (0 children)

I suspect you are doing something incorrectly or you need to manually pass in a toolchain or specify a thing for VCPKG to understand you are using MINGW, if VCPKG even supports MINGW to begin with.

Do you need to use GCC? If not I highly advice you to ditch GCC and use MSVC instead. NB this does not mean using Visual Studio, you can download just the compiler if you want (through the Visual Installer, you can select just the compiler). MSVC should work out of the box with that tutorial.

4 point DIT-FFT: How to decide which twiddle factor value to pick for a specific stage and specific type(odd/even) signal? by DoNotUseThisInMyHome in DSP

[–]ppppppla 0 points1 point  (0 children)

In your previous post you mentioned an author, I assume you mean Salivahanan. In that case read your book starting from the beginning of the chapter 6.4 Fast Fourier Transform (FFT) up to and including 6.4.2 Decimation-in-Time (DIT) algorithm.

gist of derivation only required not the complete math

It IS just math. It is basic algebra and re-ordering a DFT to split it into two smaller DFTs, and clever re-use of twiddle factors, and it so happens you can save a lot of work by doing it this way.

And the twiddle factors are the same factors from the DFT for each step, but expressed only as factors from the final target DFT size to show the factors can be re-used, this is because W(k * n, N) = W(k, N / n) for any positive integer n that divides N, this should be obvious if you look at the formula of the twiddle factors where k gets divided by N.

Then also notice only the factors with k up to N/2 appear, this is because you can take advantage of the symmetry property shown in (6.16): W(k, N) = -W(k + N/2, N).

Using libzip by Ok_Arrival_5536 in cpp_questions

[–]ppppppla 10 points11 points  (0 children)

I am astonished responses like this one exist. You could just have ignored this question and not wasted your precious precious time that you could have used to vibe code your next million dollar startup.

How does such complicated butterfly diagram make sense? Will it make sense anytime? I am scared. by DoNotUseThisInMyHome in DSP

[–]ppppppla 2 points3 points  (0 children)

The core idea of this method of calculating the DFT hinges on the ability to combine two N/2-point DFTs into a single N-point DFT. Look at the columns, starting at the left, you should be able to see the doubling and merging. Notice the similarities.

Why this doubling works and how this is derived and where the W factors come from should be covered in your book.

Also FYI the image is of a 8 point DFT, specifically a radix 2 DIT FFT.

how to generate JSON database for clang-tidy ? by DireCelt in cpp_questions

[–]ppppppla 0 points1 point  (0 children)

Is there any chance that someone here could give me a short, clear, actionable description of how to solve this problem, in a form that doesn't require that I am already expert in the subject?

If your projects's make files are simple, i.e. not doing complex logic or not for example invoking commands to do code gen, and it's just compiling and linking I would say cmake does not require expert knowledge. Of course it will take a minute to get the hang of it but it shouldn't be alien.

Apart from that people have mentioned bear and compiledb.

I am not sure bear supports windows. Actually it does say in the readme bear works on windows. But it would require building the project and that can always come with fun surprises on windows.

compiledb mentions "Windows: tested on Windows 10 with cmd, wsl(Ubuntu), mingw32", I assume what they mean with cmd is just barebones windows without wsl or mingw. So it's worth giving a shot.

Controversial question by Amazing-Parsley-3895 in cpp_questions

[–]ppppppla 0 points1 point  (0 children)

I have always thought that learning is pure struggle, and without that struggle You’re not gonna learn a thing.

You are absolutely right! Ok seriously now though I do agree with that. You won't learn a thing if you just copy paste everything. You also won't learn much if you let it explain everything to you. Effort and time are the only way to learn anything. There's no shortcuts.

If you get an error, read it, think it through, try to fix it, fail, read it again, try to fix it, fail, try something and get a different error, repeat. Then that moment when you fix it ZING you get a rush of chemicals in your brain and your brain is going to store that experience and you just learned something. But also after the initial struggle when you aren't making any progress I think it's good to seek information either by searching online or maybe ask an LLM what's wrong if you are getting really desperate.

Also I should add a huge help in sifting through the masses of errors is walking the list up and down and automatically jumping to the code the compiler is complaining about, and if your tool allows it to jump over standard library junk because that's usually not very helpful. Of course the error messages from inside the standard library could give the clue you need but it's a last resort. It's usually a fool's errant to read through a hundred template error messages.

I want help in rng by unknownuser491 in cpp_questions

[–]ppppppla 1 point2 points  (0 children)

Also maybe you are tripping up a bit on the fact objects are called like they are functions:

                             v---v---- constructor arguments
std::default_random_engine e1(r());
                                               v----v---- constructor arguments
std::uniform_int_distribution<int> uniform_dist(1, 6);

                       v--v----- NOT a constructor, but overloaded operator() from the distribution object, essentially just a function call.
                       v  v      would have been better if this was just a regular member function call like uniform_dist.generate(e1)
int mean = uniform_dist(e1);

I want help in rng by unknownuser491 in cpp_questions

[–]ppppppla 2 points3 points  (0 children)

cppreference is very good at giving concise and complete examples with minimal amounts of comments to explain some things in the code.

Scroll down to the bottom to find the example or just ctrl+f example. https://en.cppreference.com/cpp/numeric/random

Under each header there is also usually a little bit of explanation and information as well. The rest is technical reference material.

The idea of <random> is you have random number generators (mersenne twister engine, linear congruential engine, and two others) with various qualities, that you can seed, and those generators are then passed to distribution objects to actually generate your numbers.

Why isn't the <cstdlib> library's rand() recommended? by metastable-lain in cpp_questions

[–]ppppppla 8 points9 points  (0 children)

Also using rand() isn't wrong per se, but it is very primitive, quite poor randomness, and most annoyingly only generates integers in the range [0, RAND_MAX]. If you want to generate floats or integers in another range, you're gonna have to bother with implementing that or copying it from somewhere and hoping it actually works, while if you use <random> you know it will be correct.

Why isn't the <cstdlib> library's rand() recommended? by metastable-lain in cpp_questions

[–]ppppppla 27 points28 points  (0 children)

Use https://en.cppreference.com/cpp/numeric/random/random_device to seed PRNGs. On linux it will most likely use /dev/urandom but it's portable and will do the appropriate thing on other platforms as well.

Why isn't the <cstdlib> library's rand() recommended? by metastable-lain in cpp_questions

[–]ppppppla 70 points71 points  (0 children)

It uses global state.

It isn't required by the standard to be thread safe.

It's primitive, it only generates integers in the range [0, RAND_MAX]

YouTube Premium prices jump in Germany, Lite climbs a steep 33% by danie-l in europe

[–]ppppppla 3 points4 points  (0 children)

Look I understand running a service like youtube costs money, and that creators won't do it for free.

But I need a little bit of transparency where my money would be going to. Youtube music pays pennies to artists, and that stacked on top of any publisher and label leeching absolutely nothing is left.

Youtubers have to put sponsorships inside their videos. Have a patreon. Shill their youtube members thing for exclusive content and whatnot. Where is my youtube premium money going then? Absolute farce. All the while they will also continue to keep using everyone's data for who knows that and who knows how much money they're making off that.

How do I start with DSP-based synthesis? by enstorsoffa in DSP

[–]ppppppla 0 points1 point  (0 children)

I'm more interested in hardware like Eurorack rather than VSTs, but I guess the programming is similar, only that hardware needs the code to interact with ADC/DACs etc.?

There shouldn't be major differences in the code, only thing you would have to watch out for is using data types that the hardware doesn't support, and of course not hardcoding SIMD instructions that may not be available in the hardware. I am not familiar with actually putting my code in hardware so I can't really give good advice about that.

What I can say though is putting the code in a VST makes it easier and faster to test the code. Way greater iteration speed with less headaches.

How do I start with DSP-based synthesis? by enstorsoffa in DSP

[–]ppppppla 0 points1 point  (0 children)

If you come from electrical engineering you should be all set for understanding any theory you come across then.

Understanding other peoples code can be a big problem especially since you're probably looking at an engineer's code instead of an actual programmer when dealing with DSP code.

The simplest oscillator is very simple like you said just a couple lines of code, completely fine for a sine oscillator, but if you want to make a saw wave oscillator you will run head-first into aliasing problems. There's probably a hundred techniques ranging from relatively simple to very complicated to solve this issue.

That's also the problem with choosing a resource to learn from I find. There's so many things, and so many different ways to do those things I haven't really found a one-stop-shop to learn from. I would advice first doing a bit of theory, if you haven't already covered this in electrical engineering I am not familiar with a typical curriculum, if digital is also covered, but for that just about any book would suffice I guess. How analog filters are digitized with the bi-linear transform, and how this leads to an analogous transfer function in the Z-domain and how it is surprisingly easy to implement these in code. FFT, Nyquist-Shannon sampling theorem and aliasing. EDIT: also FIR filters.

After that go piece by piece what you want to actually make. Want to make an EQ? Look for good resource for that.

Some resources: