[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sc-dev] Re: Towards SC 4



I've finally read through the SC4 thread, too late of
course, but I did have some thoughts...

Chronologically:

#1 James McCartney Nov 14, 2013; 7:34am Re: Towards SC 4

>> I think a dual language approach is best for
>> this. Faust + Supercollider or the way
>
> ..or the way Extempore is doing it.

I think this point was made elsewhere in the thread,
but we can, of course, already embed a frame by frame
sub-language in SC3.

The UGen below, for instance, embeds an experimental,
declarative, frame-by-frame DSP sub-language into SC3.

The DSP language writes C-code to disk, the C is
compiled to an ELF file, and the ELF file is loaded
into an SC3 UGen using `/u_cmd`.

The DSP codes can allocate RT memory, operate on the
input and output signals of the host UGen, and can read
and write both the global signal buffers and the audio
and control buses.

The whole arrangement (ghci -> gcc -> ld -> sc3) is
interactive, ie. type the compile DSP key-binding and
hear a sound.

Of course, with LLVM and C--, working via-C is already
old-fashioned.

The declarative DSP sub-language won't be of interest
here, but perhaps the UGen is?  It's very simple:

  http://rd.slavepianos.org/sw/sc3-rdu/cpp/RDL.cpp
  http://rd.slavepianos.org/sw/sc3-rdu/cpp/RDL.h

Writing an equivalent for FAUST shouldn't be very
difficult?

#2 Miguel Negrão Nov 13, 2013; 7:42am Re: Towards SC 4

> Haskell has emacs bindings but I'm not a emacs person
> (yet), so I couldn't use that, even with that you
> can't really do proper live coding of functions etc.

Perhaps I misunderstand, but I'm pretty sure this is
completely incorrect!

The Haskell SC3 bindings work with the Glasgow
interpreter (ghci) as well as the compiler (ghc).

I use both haskell and sclanguage all the time, and the
interaction model seems more or less exactly the same.

What do you think is the difference?

#2 Click Nilson Nov 13, 2013; 11:38am Re: Towards SC 4

> Perhaps scsynth3 could be kept for backwards
> compatibility even as sclanguage changes, and a
> parallelised multi-rate scsynth4 take on new
> workloads.

Very generally, I wonder if a lot of the ideas in this
thread require SC4, with all of it's implications for
SC3?

The SC3 synthesiser is a very clear-sighted and
open-ended design, perhaps it's possible to extend it
to do very many of the things that people want from SC4
and still execute the existing server commands?

Couldn't even multi-rate graphs be implemented in SC3
by defining a new synthdef version, with perhaps some
additional OSC commands?

Lastly, isn't supernova a 'parallelised' scsynth
already?  And supernova isn't SC4, it's SC3 with
parallel groups?

Best,
Rohan

PS. For completeness, the dsp-sub-language is at:

  http://rd.slavepianos.org/sw/hdf/Sound/DF/Uniform/GADT/UGen.hs

It's an explicit 'backward arc' graph node model.

I never made it pretty.

The inevitable, famous, SC2 example graph is written:

  http://rd.slavepianos.org/sw/hdf/gr/analog-bubbles.hs

The point of all this is, you can add a dynamic
frame-by-frame sub-language to SC3 more or less 'for
free'.

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-dev/
search: https://listarc.bham.ac.uk/lists/sc-dev/search/