Skip to content

Fishbite/webAudio

Repository files navigation

Da Synth Dude

Da Synth Dude has been built using the Web Audio API and is unique in as much as it allows the user to record the music they are creating directly from the running oscillators, rather than though a microphone.

The project is in its infancy (now just out of diapers!) but we do have a machine that allows you to do the following:

  • Select from a range of voices; currently six, but the choice is growing. see(i)
  • Play musical notes from a range of eight octaves:- 0 through 7 as on a full size keyboard
  • Change the octave, waveform and decay of the notes to create different voices
  • Play a range of drums: Kick, Kettle, Snare, Hi-hat & NEW! Triangle!
  • Play pre-recorded music to play along side with
  • Record as you play including the ability to record on top of pre-reorcded music that that you are playing along to.
  • Save the recording to your computer directly from the Audio Player
  • Browse for the file you have saved from the Audio Player and play it back so you can record addition tunes & beats on top of that
  • Legacy (and pretty redundant at this point) Upload the recording (to the server) as music.wav so that it can be played back and added to

This could be IS! the start of something great!

(i) Now, here is a quandary. The thing is, we have a selection of six voices to choose from the dropdown, however, if we start changing the octave, waveform and decay settings, we can create completely new voices that are so different from the default settings, it makes you wonder whether we should create voices that are tied to specific settings.

The State of Play

The user can now record music as they are playing, then save it to their computer directly from the media player.

The user can browse for the saved file (or any other music file) play it back and record additional compositions, tunes, beats etc. on top of it

****** Upload To Server (legacy) ******

To prep the file for upload to the server, the file needs to be imported into editing software such as Audacity and then saved out as 'music.wav'

music.wav can be uploaded to the server and then played back via the 'pre-recorded music' playback keys. The user can then record additional stuff on top of the music being played back, as they can with the locally saved file.

*** Upload To Server (legacy) **

What needs doing:

-- invent proper names for the voices! -- create additional voices like strings, woodwind, chorous -- study music theory!

Update Users can now select music files from their local hard drives, so, there is no need to upload a file with a specific name and file type / size restrictions. Upload to server function is still there for future use.

This app is growing, at a slower rate than I would like admittedly, but I am neither a sound engineer or accomplished musician! I used to take piano lessons and owned a piano, but that pretty much went out of the window when I bought my first ELECTRONIC GUITAR HA! HAA!! HAAA!!!

All Voices Are A Result of Experimentation To date, we have been experimenting: with what happens when I do that? e.g Adding additional oscillators of equal or different frequencies and or wave forms, then adding distortion to 'corupt' the sound, then using convolver nodes with actual impulse response recordings of real spaces (churches etc.) What we have learned is that we can achieve some similar modifications of the original sound, all the way to awsomely wild and different sounds to the original single oscillator.

What we need to do next is work more with overtones and filters to see what comes out of 'Frankenstein's Lab!'

Stay Tuned :-)

Quote: "most musicians don't do JavaScript" fishbite 2023

Collaborators

We'd love to have anyone interested in music contribute to this project. If you'd like to get involved just DM me, fork the repo', do some cool stuff, do a pull request :¬)

Folks who would be really cool to have on board:

-- Sound engineers, to formulate audio graphs that are beyond my comprehension -- Musicians, to test the pants out of the app -- Web Audio API folks who can contibute anything to this project -- and of course, JavaScript programmers in general are always welcome -- general public for feedback on the app

Open Source

This project is open source licensed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 or later

About

A music machine to create and record music

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published