Hi @sentinelweb . In general I guess you can use Scala from Kotlin (or Java), but many features such as implicit parameters will have no matching equivalent, so it is probably not the most pleasant experience. Note that Mellite is conceptually a standalone application that provides a sort of IDE for SoundProcesses (the framework) and SoundProcesses is a high-level API for ScalaCollider. So it sounds like you will want to use SoundProcesses or ScalaCollider. ScalaCollider has a very simple structure and rarely uses features such as implicit paramters, whereas they are pervasive in SoundProcesses as it is built on a transactional system (STM). My guess is thus, that using ScalaCollider to create SuperCollider synths from Kotlin might be viable. But I cannot say for sure, for example how are companion objects seen from Kotlin, say when you write
SinOsc.ar? Perhaps they look very ugly because from Java perspective companion objects are not straight forward to access.
I would recommend that you try a minimal case you need for your project, like booting a server and running a synth from a preexisting SynthDef. To see if that is feasible at all. I haven't tried it.
Mellite 3.5.0 is published, and can be installed now through an experimental launcher: https://github.com/Sciss/Mellite-launcher/releases/tag/v0.1.0 - this has a built in update mechanism, and thus will liberate me from having to build platform specific versions of every Mellite update, as well as liberating you from having to re-install Mellite again and again when an update is published.
Give it a spin, and let me know if there are any issues. Or if you need a build for a different architecture.
I will show this launcher and new features of Mellite 3.5.0 in a video blog soon.
javaon Mac and Linux, and
java.exeon Windows (despite the name, it can run different JDK languages not just Java). Basically the start scripts invoke something like
java -cp lib/Mellite.jar:lib/OtherLibrary.jar de.sciss.mellite.Mellitewhere
cpis the class path, i.e. the list of bundled libraries in Java byte code format.