TerryCavanagh / boscaceoil

A simple music making program
http://boscaceoil.net/
580 stars 71 forks source link

Abandon Adobe AIR and port to Haxe #47

Open TerryCavanagh opened 8 years ago

TerryCavanagh commented 8 years ago

This would require a dependency on haxe SiON (https://github.com/gunnbr/SiON), which doesn't currently seem to be being worked on. If that changes, then it would be possible to port Bosca Ceoil to haxe, which would have lots of benefits!

ttofis commented 7 years ago

Please just port to Electron and make the web app in HTML 5

TerryCavanagh commented 7 years ago

Gimme a HTML5 port of SiON and then sure, why not?

ttofis commented 7 years ago

If I port it, will you do it?

On Wed, 22 Feb 2017, 20:25 Terry Cavanagh, notifications@github.com wrote:

Gimme a HTML5 port of SiON and then sure, why not?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/TerryCavanagh/boscaceoil/issues/47#issuecomment-281756765, or mute the thread https://github.com/notifications/unsubscribe-auth/AISGwAmabbvuDtlbfUw9ErAArGn7Zljnks5rfH1-gaJpZM4IIMZG .

-- -ELChris414

TerryCavanagh commented 7 years ago

I'm not personally interested in making a HTML5 version - but if you're able to make a HTML5 version of SiON, then porting Bosca Ceoil won't take you very long... Porting SiON is probably 10 times the work of porting Bosca!

ttofis commented 7 years ago

Hahaha ok! First I want to check if a lib I have in mind already covers it's functionality!

On Wed, 22 Feb 2017, 21:00 Terry Cavanagh, notifications@github.com wrote:

I'm not personally interested in making a HTML5 version - but if you're able to make a HTML5 version of SiON, then porting Bosca Ceoil won't take you very long... Porting SiON is probably 10 times the work of porting Bosca!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/TerryCavanagh/boscaceoil/issues/47#issuecomment-281767136, or mute the thread https://github.com/notifications/unsubscribe-auth/AISGwGGHiLSTgAagQrtY1R9E9Rss6Zh2ks5rfIXegaJpZM4IIMZG .

-- -ELChris414

TerryCavanagh commented 7 years ago

Using a different lib and completely forking the project is a pretty decent option, to be honest - SiON is a very distinctive sounding synth. Bosca Ceoil wouldn't sound like Bosca Ceoil if it used anything else.

But that doesn't mean that it's not worth exploring. A version of Bosca Ceoil using, say, soundfonts or samples or VST plugins would be kinda awesome.

ttofis commented 7 years ago

Java could be an idea. There is a kinda ported version, but I don't believe it works or it is even finished. https://code.google.com/archive/p/sion-java/

TerryCavanagh commented 7 years ago

Java's more dead than Flash. Haxe still makes the most sense - that way it'd work natively

Luraktinus commented 5 years ago

any news on this?

fuzzy76 commented 5 years ago

FWIW, haxe SiON haven't seen a commit in nearly 4 years.

fuzzy76 commented 5 years ago

https://tonejs.github.io might be a better fit, though.

TerryCavanagh commented 5 years ago

Probably. But if you change the underlying synth, Bosca Ceoil doesn't sound like Bosca Ceoil anymore - it sounds like something else. Which is fine! But it should probably be a different project at that point!

mtkennerly commented 5 years ago

@TerryCavanagh, when you have some time, I've started working on a prototype of this and would love to get your feedback.

I started by exploring a Haxe port, which I made some progress on below, although there are still lots of build issues:

However, I quickly realized that some critical functionality was only available in the Flash target - namely, openfl.media.Sound (replacement for flash.media.Sound) only supports dynamically generated audio when targeting Flash. As far as I can tell, in order to get native builds, you'd have to adjust SiON to integrate with different audio libraries per target, which diminishes the value of Haxe's "write once, run anywhere" goal.

So then I started exploring HTML/JavaScript options. Porting SiON itself would be quite the task, so I decided to experiment with using samples of SiON's instruments with Tone.js, and I think the result is virtually indistinguishable. Take a look:

This demo ~just has one instrument~ (edit: added another 16 :D), but I implemented a full pattern editor and Bosca Ceoil's effects so that you can gauge how faithful it is. The effects aren't 100% identical, but I may be able to get them closer with some tweaking.

How do you feel about this as a direction for Bosca Ceoil? Would you rather it stay a separate project?

gunnbr commented 3 years ago

Wow! I just found this post. @TerryCavanagh , you should have tagged me back in 2016! Yeah, as @mtkennerly discovered, the reason I never did any more work on SiON for Haxe is because Haxe didn't support dynamically generated sound. I did a little work on trying to add that, but then ran out of time and life has been in the way ever since. As far as I know, Haxe still doesn't support dynamically generated sound, so that makes it really limiting for writing synthesizers that work everywhere.

TerryCavanagh commented 3 years ago

Oh, hello! Ah, that's interesting, and makes a lot of sense.

I'm going to contact to you about email about all this, I have some questions! :)

akgvn commented 1 year ago

If anyone is curious (like me) about what's the latest on this in 2023, here's what I could find:

TerryCavanagh commented 1 year ago

quick update from me too, I suppose - last time I tried to get this working in modern haxe, the html5 version did work, technically! But unfortunately not to a standard where it was usable. The HTML5 version is just a sidequest, though. The C++ version just crashed immediately, which stops this whole thing in its tracks.

I'll continue to keep an eye on https://github.com/openfl/openfl/pull/2515.

akgvn commented 9 months ago

last time I tried to get this working in modern haxe, the html5 version did work, technically! [...] The C++ version just crashed immediately

Is the version you were able to compile available anywhere? Can try compiling it again since https://github.com/openfl/openfl/pull/2515 is merged and OpenFL 9.3 is out.

TerryCavanagh commented 9 months ago

I saw! I've been interested, but honestly just haven't had the time.