UNPKG

@ng-web-apis/midi

Version:

An Observable based library for the use of Web MIDI API with Angular

17 lines 2.48 kB
import { filter, map } from 'rxjs'; import { between } from '../utils/between'; /** * Filter MIDI messages to notes only * * IMPORTANT: It normalizes noteOff events to noteOn with 0 velocity */ export function notes() { return (source) => source.pipe(filter(({ data }) => between(data[0] ?? 0, 128, 159)), map((event) => { if (between(event.data[0] ?? 0, 128, 143)) { event.data[0] += 16; event.data[2] = 0; } return event; })); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL21pZGkvc3JjL21vbm90eXBlLW9wZXJhdG9ycy9ub3Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFekM7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxLQUFLO0lBQ2pCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNkLE1BQU0sQ0FBQyxJQUFJLENBQ1AsTUFBTSxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQ25ELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ1YsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3JCO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztBQUNWLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7TW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtYXB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge2JldHdlZW59IGZyb20gJy4uL3V0aWxzL2JldHdlZW4nO1xuXG4vKipcbiAqIEZpbHRlciBNSURJIG1lc3NhZ2VzIHRvIG5vdGVzIG9ubHlcbiAqXG4gKiBJTVBPUlRBTlQ6IEl0IG5vcm1hbGl6ZXMgbm90ZU9mZiBldmVudHMgdG8gbm90ZU9uIHdpdGggMCB2ZWxvY2l0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm90ZXMoKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFdlYk1pZGkuTUlESU1lc3NhZ2VFdmVudD4ge1xuICAgIHJldHVybiAoc291cmNlKSA9PlxuICAgICAgICBzb3VyY2UucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoe2RhdGF9KSA9PiBiZXR3ZWVuKGRhdGFbMF0gPz8gMCwgMTI4LCAxNTkpKSxcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYmV0d2VlbihldmVudC5kYXRhWzBdID8/IDAsIDEyOCwgMTQzKSkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5kYXRhWzBdICs9IDE2O1xuICAgICAgICAgICAgICAgICAgICBldmVudC5kYXRhWzJdID0gMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQ7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbn1cbiJdfQ==