- Install VoiceMeeter Banana
- Keep the windows default sound output as is. Select where you want to listen as always (Like a headphone)
- Select the
VoiceMeeter Output
as windows default input. (Your microphones and another virtual input will all be routed to this) - Start VoiceMeeter Banana
- Select your mic(s) in your hardware outputs, and route them only to channel B (Disable A, this will make sure that you wont hear your own mic)
- Let the Virtual Input routed to both A and B channels. (This will let everything that is routed into this virtual channel to be heard by both you and the virtual microphone)
- Select as the A1 output the MME variant of your main output (Like your headset. MME lets that sink recieve sound from multiple sources. WDM would take exclusive access which means that you either hear only the sounds you want to share or everything else).
- Select any sources in the Windows Sound Mixer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Photoshop only accepts ExtendScript which is compliant to ECMA-262 (version 3) | |
* | |
* This script, when executed in Photoshop exports all the possible combinations of layers in the first group of the active activeDocument | |
* For example: | |
* If the top group has 2 subgroups, each having 2 layers | |
* this script will export 4 pictures with the following layers being visible: | |
* [0, 0] | |
* [0, 1] | |
* [1, 0] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Observable, OperatorFunction, BehaviorSubject } from 'rxjs'; | |
import { mergeMap, filter } from 'rxjs/operators'; | |
import { Tween, Easing } from '@tweenjs/tween.js'; | |
export interface Tweenable<T> { | |
from: T; | |
to: T; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Object state accumulator that ignores undefineds | |
* | |
* Example usage: | |
* | |
* ```typescript | |
* const accumulator = {}; | |
* | |
* const stateA = { a: 'value' }; | |
* const stateB = { a: undefined, b: 'bval' }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { of, OperatorFunction, Observable, EMPTY, merge, NEVER } from 'rxjs'; | |
import { switchMap, finalize, tap } from 'rxjs/operators'; | |
/** | |
* Sideffect that can tear down the previous object when a new one enters. Can handle undefined and still | |
* do the teardown on the last element | |
* | |
* Neither function will ever recieve undefined values. | |
* | |
* Example: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { of, Subject, Observable, OperatorFunction } from 'rxjs'; | |
import { delay, tap, map, flatMap, mergeScan, reduce, finalize } from 'rxjs/operators'; | |
/** | |
* Over-time loader. This pipeline can be attached to a non-ending observable, though, you can't rely | |
* on the `finalize()` operator for checking if the loading is done or not. | |
* The observables you supply into it should be completeable. | |
* | |
* This can be extremely useful when you want that each of the 'loader' start as soon as possible, but still keep | |
* track of the progress. At the last `tap()` you can always see when one loader finishes that how many observables |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { OnDestroy } from '@angular/core'; | |
import { Subscription } from 'rxjs'; | |
/** | |
* Adds a subscription object and a default OnDestroy hook to the child component | |
* | |
* If ngOnDestroy is is overriden in the child component don't forget to call | |
* ```typescript | |
* super.ngOnDestroy(); | |
* ``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Actions, ofType } from '@ngrx/effects'; | |
import { ActionCreator } from '@ngrx/store'; | |
import { TypedAction } from '@ngrx/store/src/models'; | |
import { Observable, of } from 'rxjs'; | |
import { catchError, map, switchMap } from 'rxjs/operators'; | |
/** | |
* It will automatically strip the actions `type` field away before forwarding it | |
* to the httpCall. This way no accidental type fields are sent anywhere. | |
* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export class Node<T> { | |
public left?: Node<T>; | |
public right?: Node<T>; | |
public constructor(public value: T) {} | |
public invert(): Node<T> { | |
return ([this.left, this.right] = [this.right?.invert(), this.left?.invert()]) && this; | |
} | |
public toString(): string { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export interface Model { | |
id: number; | |
} | |
export interface FooModel extends Model { | |
name: string; | |
} | |
export interface BarModel extends Model { | |
name: string; |
OlderNewer