The application is a UI for creating layouts for songs, sending API requests to make the song, and showing a playlist of music. (It uses some ports for 1 dependency, WaveSurfer.js, for rendering a waveform and triggering playback. Playback state is managed by Elm).
If you are curious to see Elm in production this is for you; or if you were like me and just wanted to see examples of how people use it in real life.
If you are eager to write some Elm code and want a project to work on then please be my guest
Pull Requests are welcome and I’m happy to receive issues/features/bug reports via GitHub.
Welcome to the community and thanks for sharing your project! It’s been a while seen we see a music production app in the Elm community and Song Designer ignites the light in the field
Is Synthony the same app or it’s some broader project which includes Song Designer?
elm-chords and elm-music-theory, they really caught my attention and am excited to explore them more.
song-designer is calling a backend service (running SuperCollider) for its audio synthesis. It’s cool to see WebAudio API in action for elm-audio.
The ideal world has as much audio playback and wavefrom illustration managed by Elm too; so there exists a possible future song-designer + elm-audio, and elm-chords to visualize a lead sheet for the generated music.
I would also like to explore Elm and Web Audio API. So far I found this project elm-web-audio – although it seems abandoned. I thought about forking it and improving it, but that’s for later, as I’m still learning Elm.
While on the topic: I was thinking of expanding it, to natively work with synthesis, looping, and sampling. That would be my “desert island I’d love to maintain” Elm project if I manage to get good enough.
By checking the source code, the current version doesn’t use any port. As a neophyte, I ask: would ports be necessary along with some JavaScript to fully use Web Audio API and extend that package to be something like p5.sound?
Thanks again for sharing your amazing code and sorry for hijacking this thread a little.