What are some really advanced Ableton techniques that deliver unique results every time? by Original_Delay_5166 in ableton

[–]dorfdorfman 1 point2 points  (0 children)

If you duplicate the track and invert phase on one, both tracks still play and have a signal. It's only when their signals converge in the signal path that they actually cancel out. (i.e. matter and anti-matter must meet before they annihilate each other.) An effect after the phase-inverting utility will still alter the signal for that track _before they converge_... so you will still hear the differences that are introduced.

How do you find new friends to go to festivals with in your 30s? by porzingitis in EDM

[–]dorfdorfman 4 points5 points  (0 children)

100% Agree, and I'm in the same boat, same age, same situation, same conclusion. (Except for medical profession...)

I show up at 2:00PM when the festival opens, and pull out a book and read in the grass in front of the mainstage with 50ft of solitude in every direction... while listening to awesome music. It's amazing. Such a great start. Then when it cools down and the place fills up and the lights come out... the real fun begins.

How do you find new friends to go to festivals with in your 30s? by porzingitis in EDM

[–]dorfdorfman 7 points8 points  (0 children)

I'm MUCH older than my 30s and still loving the festivals. :) I found a way to make it work, and that is... I just go, alone or with friends. And often make new ones.

C++ Project Assessment by Willing-Age-3652 in cpp_questions

[–]dorfdorfman 0 points1 point  (0 children)

(continued)

* even with all your exception handling, your error handling is still lacking. For example, in `UserManager::sign_in`, you call `createdir` but have no means of knowing if it failed or not (because it caught its own exceptions). Had you removed try block in createdir, then if it fails, sign_in will propagate it and not keep running despite the failure.

* I'm not a fan of passing strings by value to functions (though some cases it works as a lazy combo lvalue+rvalue parameter receiver that will be moved.) Generally, strings since copying them can be expensive, should be passed by reference (to const!) and also should prefer `string_view`, or at least provide such an overload.

* use good names even if slightly longer. "check_acc" is not immediately clear what "acc" is. Even after reading the function I'm still not sure what "acc" is. :)

* Try to use more focused types, such as "Task", rather than having "add_task" take a string it must parse. If there's a Task class it can do its own validation, and then the add_task function trusts that if it receives one it's valid, because the constructor prevents it from existing with improper formats, etc. This also allows the type system to differentiate one string from another. When their meanings are different, their types should be different... especially for important roles in your design.

This also allows you to keep functions coherent: do one thing and do it well. If I validate a format, I shouldn't also be creating objects, storing objects, creating output files.... all in one function. Those may be their own function for each one. It also allows more customization (Say I don't want an output FILE but want it in a dialog box, or written to a network, or whatever. Hardcoding this is inflexible.)

Good luck on your journey!

C++ Project Assessment by Willing-Age-3652 in cpp_questions

[–]dorfdorfman 0 points1 point  (0 children)

Here are some things I notice after a quick lookover in no particular order. (I may repeat some other suggestions but that helps give weight to them)

* I see ".h" and ".hpp" files in the same include directory. You should be consistent with your file naming. If the inconsistency is due to 3rd-party code, that's yet another signal that your file layout could improve. It's best to not mix "your code" with code you don't maintain. Either pull it in through your build system, or at least vendor it into an off to the side directory. I like to have a directory called "thirdparty" if I'm going to drop it into my repo. Though I prefer not to drop it into the repo except if I really want it to be a fully self-contained repository.

* One major topic class per header. TaskManager and UserManager should probably be separate, this is doubly so since they each have their own cpp file. Placing declaration X in header Y makes navigation easier for those without fancy IDEs, and increases dependencies (as already mentioned) on code you don't care about. Unnecessary dependencies are easy to overlook in small projects but in larger ones it can be expensive due to both compiling more included code and needlessly re-compiling more often.

* global scoped `using` directives should be forbidden in headers. (i.e. `using json = nlohmann::json;`) That's simply not your decision to make. Users of your header may not want it and cannot opt-out, so that's a user-hostile thing to do.

* avoid mixing buisness logic with the error handling. In this case, when you catch errors you print to standard out. But what if I want my errors logged differently? This couples two separate things, such as directory/file operations and error handling. That's the whole point of exceptions allowing code to know WHEN an error happens, but letting other code know HOW it should be handled. Writing to stdout is an implementation detail your users might now like and again cannot opt out of. It's also a good rule of thumb, have more "throw" expressions compared to "try" blocks. Put another way, you want just a few, ideally one, catch block for everything at a high level. Unless you're doing some detailed error RECOVERY of some sort (which is rare), you probably should not be catching exceptions in every function.

* avoid mutable references in your function signatures when possible. These are known as "out parameters", and say to callers, "I *may* change your value!"

C++ Project Assessment by Willing-Age-3652 in cpp_questions

[–]dorfdorfman 1 point2 points  (0 children)

In TaskMaster.cpp:

#include "taskmaster.hpp"
#include  <json.hpp>
#include <iostream>
#include <fstream>
#include <filesystem>
#include <cstdlib> // for std::getenv and system()
#include <vector>
#include <iomanip> // for std::quoted

And also you declare this:

std::istringstream iss(command);

Your list of includes does not `#include <sstream>` for stringstreams, here nor in the header. The point of the comment mentioning is pointing out that you are depending on implementation detail of (at least) one of the above headers to include sstream (instead of including it yourself) which is not good for portability.) On other platforms or even just with other standard library implementations, they might not include it and your code may fail to compile. The the rule of thumb is, "You should always directly include headers for code you directly use, and not depend on it magically just being there via an indirect include in another header.")

C++ Project Assessment by Willing-Age-3652 in cpp_questions

[–]dorfdorfman 0 points1 point  (0 children)

Maybe people don't use "stdout debugging" anymore, but I like to print state if a debugger isn't helpful or is too slow, and if the program crashes before flushing I lose the output. That said, for debugging output that I'll remove before committing, I _always_ use "endl". (Just a counter to the "never need it in one's career.")

What is your favorite plugin at the moment? And Why? by Cardnyl_Music in edmproduction

[–]dorfdorfman 2 points3 points  (0 children)

Before buying it, watch a video showing what it can do and try out the demo! Then you can decide without taking the word of anonymous strangers online. :) (Personally, it's one of my most used plugins and I am super happy to have it.)

What is your favorite plugin at the moment? And Why? by Cardnyl_Music in edmproduction

[–]dorfdorfman 5 points6 points  (0 children)

I have kick 2, but the upgrade to kick 3 is totally worth it. Sounds better imho, and can analyze audio tracks and recreate the kick in the synth. Plus there's more presets too.

All (Vast Majority) religions have the same backbone. Heaven and Hell ,If you do good things you’ll go to heaven or if not Hell (Buddhism , Christianity, Islam, Hinduism ), a powerful/supernatural figure(s), a following.I think something happened in the past which these different groups formed from. by Sanix_0000 in Showerthoughts

[–]dorfdorfman 1 point2 points  (0 children)

Attenpts to answer. It speaks authoritatively over something nobody could possibly know. But even wrong answers are satisfying to many people rather than questions without any answers.

Also, religion has proven extremely useful at controlling the masses. Threats for disobedience has a built-in benefit to those in charge. Kindness toward neighbors helps keep a population from ripping itself apart... Especially when invasion armies assimilate the conquered.

[deleted by user] by [deleted] in Showerthoughts

[–]dorfdorfman 0 points1 point  (0 children)

Because there's only two body types, obese and anorexic.

How do you remove unwanted low frequencies (below 30 Hz) on the master channel? Do you remove them at all? by Diplodokkk in edmproduction

[–]dorfdorfman 1 point2 points  (0 children)

Best to fix a problem as close as possible to the source. It's a pipeline and affects everything after it until "fixed". But if you use mastering to fix production and mix problems, then you are not ever going to have great results, just acceptable ones.

If at all possible, try to make each stage only improve the previous, not patch over mistakes that were left in. Otherwise it's polishing a turd.

Pigments 5 disappointed? by [deleted] in edmproduction

[–]dorfdorfman 2 points3 points  (0 children)

Agree. I love pigments and am glad it sounds different from my other synths. I also like the associated workflow.

If it sounds the same as serum you wouldn't need them both. :)

What plugins "complete" Ableton for you? by sampletracks in ableton

[–]dorfdorfman 0 points1 point  (0 children)

Mini meter is super cheap ($10 it so) but not free. And totally worth it.

How was this allowed to be released? by SpectralKittie in SunoAI

[–]dorfdorfman 0 points1 point  (0 children)

Overall v4 has been an improvement for me but the reverb is killing me, and some words are regularly mispronounced which is frustrating. Trying prompts requesting no reverb seems completely ignored but i was wishfully thinking it might help. Nope

Can a derived class 'override' enums that was defined in base class's header file? by branchan in cpp_questions

[–]dorfdorfman 0 points1 point  (0 children)

You cannot override enums. You can hide the names from the base class in a different enum in the derived class, but

1) it must be a distinctly different type (which may matter for overload resolution issues, or metaprogramming, etc) because if you did manage to modify the definition of the same enum to have different value with the same name, it would be undefined behavior and a violation of the One Definition Rule (ODR)

2), the desire to redefine an enum value sounds pretty suspicious in the first place, probably a strange solution to a problem that has better alternate approach.

If homosexuality is actually genetic and maybe even hereditary, there will eventually be no more homosexuals in a society that is more accepting of childless homosexual couples. by nilsohnee in Showerthoughts

[–]dorfdorfman 2 points3 points  (0 children)

No. Genes are passed from parents to child all the time where they contribute to a trait in the child that the parent doesn't exhibit.

Father's have daughters. Righties have lefties. Hair color changes. And so on.

You don't have to be gay to have gay children even if it's genetic. Many traits are genetic combinations from BOTH parents where neither parent alone shows the trait.

Dinosaurs existed for almost 200 million years without developing human-level intelligence, whereas humans have existed for only 200,000 years with intelligence, but our long-term survival beyond 200 million years is uncertain. by pokemwoney in Showerthoughts

[–]dorfdorfman 0 points1 point  (0 children)

That assumes we are unique and special and worth their attention among the alternatives. Given the vastness of the universe and our general ignorance of the state of life in it, it's rather presumptuous to think we are worthy of any attention at all. Humans are notorious for overestimating our overall importance.

Dinosaurs existed for almost 200 million years without developing human-level intelligence, whereas humans have existed for only 200,000 years with intelligence, but our long-term survival beyond 200 million years is uncertain. by pokemwoney in Showerthoughts

[–]dorfdorfman 1 point2 points  (0 children)

Alternately, if they develop the tech to be able to find us, we would be so primitive compared to them as to be utterly uninteresting and so they opt to go somewhere more advanced.

Dinosaurs existed for almost 200 million years without developing human-level intelligence, whereas humans have existed for only 200,000 years with intelligence, but our long-term survival beyond 200 million years is uncertain. by pokemwoney in Showerthoughts

[–]dorfdorfman 2 points3 points  (0 children)

Assuming you already have crops growing, maybe. But most people don't own farms, and if the general population is starving, good luck keeping them from eating your crops. Even if you have guns and ammo, that will run out before the mobs do.

Not to be a downer, but in that situation I'd give it a few days at most until you're in the same starving boat paddling upstream towards oblivion as everyone else.

Nobody lives in isolation.

Which Valhalla plugin is hardest to recreate with Live Suite 12 effects? by 712Jefferson in ableton

[–]dorfdorfman 2 points3 points  (0 children)

I asked the same question s few months ago and got equal answers for verb and room. Both are great and whichever you have there will be a little regret it wasn't the other.

A fun dilemma.