ryohey / signal

Online MIDI Editor: signal
https://signal.vercel.app
MIT License
1.2k stars 136 forks source link

Reverb #161

Open greenbech opened 2 years ago

greenbech commented 2 years ago

I would like to have tunable global reverb when creating and playing music. I think this would be a killer feature anyways, but especially after #152 was merged I think it is even more important. Scoping this to be global (all tracks) would solve most usecases but in long term it would of course be nice to make it tunable to each track.

A good source of inspiration would be https://mmontag.github.io/chip-player-js/ (play a song -> click on 'Settings' and you will see reverb as a one of the parameters).

ryohey commented 2 years ago

Good point! It seems to be relatively easy to implement by using WebAudio API's ConvolverNode. Also, reverb parameters exist in the MIDI specification as the control event (CC91). This control event can be set for each track, so it can be used as is. I will implement this as a feature of wavelet.

malinda666 commented 2 years ago

any updates on this? or explanations on how to do this?

ryohey commented 2 years ago

@malinda666 There is no progress due to lack of time. I am thinking of connecting a ConvolverNode to the output of the AudioWorkletNode provided by wavelet, so that its parameters can be controlled by CC91. Or simply to make the sound more gorgeous, we could add a master reverb like in Chip Player JS and be able to set the amount on the UI.