First of all, I'm so sorry you are going through this.
Second, and most important, please PLEASE stop beating yourself up. You want so badly to believe in something good but it's destroying you. We get so caught up in the guilt because all they can do is blame, blame everyone else for their problems.
I hope you don't mind me saying so but it doesn't sound like he's clean or at the very least working the program (I think I used the correct wording - still learning here) because he would not be so belligerent, so demoralizing. I know now when my ex is clean and when he's on "something".
You have to stay strong and do NOT let him make you think you are anything less than a wonderful, caring, intelligent human being because you are. Please, do something nice for yourself today. And remember, he brought this on by his actions, and there are consequences. It is not your re sponsibility to pick up th pieces from his mess.