SavingCaustic / echo

DSP breadboarding using PHP
MIT License
15 stars 0 forks source link

I can contribute javascript sound backend #4

Open severak opened 2 months ago

severak commented 2 months ago

As I am big fan of original Caustic I was thinking about reimplementing it lately. Then I found this project.

I think I can contribute javascript sound backend for your mockups. I am working on browser-based music making suite called Cyber Music Studio using my own purposely built library called heartbeat.js. While it's not finished yet and looks ugly it can be already used to create some music.

Good thing about it is that I can probably reuse lot of already existing code from my project as it's partly done in modular fashion (for example my general MIDI synth is designed to be embeded in other projects).

Would you be interested in this cooperation? Which machine would you like to implement first?

I think this cooperation makes sense as you are able to make much nicer UI than me (I did not figured yet how to implement knob) in fe-builder.

SavingCaustic commented 2 months ago

Hi Mikoláš and great that you contact me!

I think I've found your project last year as I was looking for sometning that could replace Caustic - impressive!! :)

From a technical point of view, there's a difference (at least currently), as I wasn't thinking of generating audio through the browser. It's impressive what you've achived though.

Where I currently stand is that the frontend should be glued together using vue.js and possibly its routing engine, and sending and recieving stuff through a websocket server. I've used vue.js some, but is far from an expert on it. Any expertece in that area would be great.

Since my last video i sorted things out regardning the UI. I will mention is in next video but shortly: The xml is really mainly a contract between the front- and backend. The visuals are a bounus (but fun to play with). All modules, synths, effects and eventors (arpeggiators etc) should be using this xml service which makes it way easier for FE and BE to sync.

Take care and let's see further down the road how we can collaborate. :)

Best regards, /TJ

Den tors 11 juli 2024 kl 23:32 skrev Mikoláš Štrajt < @.***>:

As I am big fan of original Caustic I was thinking about reimplementing it lately. Then I found this project.

I think I can contribute javascript sound backend for your mockups. I am working on browser-based music making suite called Cyber Music Studio https://github.com/severak/cyber-music-studio using my own purposely built library called heartbeat.js https://github.com/severak/cyber-music-studio/blob/main/js/heartbeat.md. While it's not finished yet and looks ugly it can be already used to create some music.

Good thing about it is that I can probably reuse lot of already existing code from my project as it's partly done in modular fashion (for example my general MIDI synth https://github.com/severak/cyber-music-studio/blob/main/js/heartbeat.gm.js is designed to be embeded in other projects).

Would you be interested in this cooperation? Which machine would you like to implement first?

I think this cooperation makes sense as you are able to make much nicer UI than me (I did not figured yet how to implement knob) in fe-builder.

— Reply to this email directly, view it on GitHub https://github.com/SavingCaustic/echo/issues/4, or unsubscribe https://github.com/notifications/unsubscribe-auth/BHUKEMDCDKZXKPG7LYF5IHLZL32VTAVCNFSM6AAAAABKXYPZZOVHI2DSMVQWIX3LMV43ASLTON2WKOZSGQYDIMJWGE2TONQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

danielres commented 1 month ago

As a web dev, I am surprised at the choice of generating the sounds in the backend. My assumption is that it would add complexity as well as introduce latency. Seems to me that for a real-time app, moving as much logic as possible to the frontend would be the natural choice. I haven't personally looked into that, but I heard from different people that the modern in-browser audio apis have become very powerful. I saw some impressive demos of various synths some time ago, even complex modular synths done in browser, I can try to find those and share them here later if you're interested. It seems to me that there is already some pretty good open-source code out there that could be reused and built upon.

Having a full in-browser app would also allow everyone to run it easily locally, without the need of running a backend or needing an internet connection. While it is possible to save and persist projects, presets, etc in-browser, I could see how an optional backend could bring valuable features, like more safe saving under an account (no risk of losing work by changing browsers, or by losing browser persistance), on top of that, it would allow having community features like profiles, shared libraries, etc.

Please don't take this as a criticism, only as sharing thoughts that came to my mind, in case any of these might be of value. I'm really grateful and thrilled for this project to exist! :+1: :+1: :+1: :)

SavingCaustic commented 1 month ago

Ah sorry, the backend is run on the device. It’s the background service receiving messages from FE, the midi bus, audio in, and generating audio out. The FE is just an editor , not any sound generated there.

Thanks for the feedback!

ATB /Tj

sön 11 aug. 2024 kl. 11:08 skrev Daniel Reszka @.***>:

As a web dev, I am surprised at the choice of generating the sounds in the backend. My assumption is that it would add complexity as well as introduce latency. Seems to me that for a real-time app, moving as much logic as possible to the frontend would be the natural choice. I haven't personally looked into that, but I heard from different people that the modern in-browser audio apis have become very powerful. I saw some impressive demos of various synths, even complex modular synths done in browser, I can try to find those and share them here later if you're interested. It seems to me that there is already some pretty good open-source code out there that could be reused and built upon.

Having a full in-browser app would also allow everyone to run it easily locally, without the need of running a backend or needing an internet connection. While it is possible to save and persist projects, presets, etc in-browser, I could see how an optional backend could bring valuable features, like more safe saving under an account (no risk of losing work by changing browsers, or by losing browser persistance), on top of that, it would allow having community features like profiles, shared libraries, etc.

Please don't take this as a criticism, only as sharing thoughts that came to my mind, in case any of these might be of value. I'm really grateful and thrilled for this project to exist! 👍 👍 👍 :)

— Reply to this email directly, view it on GitHub https://github.com/SavingCaustic/echo/issues/4#issuecomment-2282686666, or unsubscribe https://github.com/notifications/unsubscribe-auth/BHUKEMHBJEKPAPS3W37IM5DZQ4S2XAVCNFSM6AAAAABKXYPZZOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBSGY4DMNRWGY . You are receiving this because you commented.Message ID: @.***>

danielres commented 3 weeks ago

Makes sense now, thank you for the explanation!!! :)