logo       

Re: [Newbies] sound and squeak / siren: msg#00114

lang.smalltalk.squeak.beginners

Subject: Re: [Newbies] sound and squeak / siren

jacob remin wrote:
hello (and merry xmas!),

i am interested in building a simple experimental musical instrument. i am wondering where to look for nice packages of functionality.

What about building on the built-in FM synthesizer? It'd be nice to have
an FM editor.



i am interested in some quite basic functions:
- sampling/recording sound
- sample playback

Rudimentary audio playback and recording is built in but it could be
improved upon. Open a class browser and use the "find class..." function
and search on "sound". You'll see a lot of classes.


- filtering (VST plugin support?)

There is no VST support. It'd great to have, but you'd have to create a
VM plugin.

- MIDI support

There is some MIDI support built in. and there are other's on this list
that have expanded it. Try going to a class browser and using the "find
class..." function and type "midi". There are several MIDI classes. See
SimpleMIDIPort for a start.


- audio visualization

Don't know of anyone doing work like this. It'd be interesting, though.


can you point me in the right direction?

so far, i have stumbled upon siren and um0, but are having some troubles installing them:

it seems siren is only for visual works? i have downloaded the smalltalk package from the siren homepage http://www.create.ucsb.edu/Siren/ , but is this importable to/compatible with squeak (and how?)

Siren on squeak is rather old - it ran on squeak v3.0. I don't know if
it has been updated. if you look back into the archives of
http://www.create.ucsb.edu/mailman/listinfo/squeakaudio
you'll see Mr. Pope left Squeak for VW and then abandoned VW back in
2004. I've copied this message to the Squeak Audio mailing list so that
Stephen can reply as to the current status. Here are his old messages:

on 07/14/04 Stephen Travis Pope wrote:

Hello all,

The last version of Siren that ran on Squeak was 3.0, released on WWW
and CR-ROM in February, 2001. I haven't fololwed the evolution of the
Squeak audio classes since then. The new Siren version 7.2 is built on
VisualWorks 7.2. I have a PortAudio streaming audio I/O
interface (using
DLLCC), but it has problems with callbacks for small buffers. (The
VisualWorks DLLCC interfaces to PortMIDI, LibSndFile, and
FFTW all work
fine.) I use Siren with MIDI and OSC, and with sound file I/O, so I
haven't fixed this yet. The source is complete, but it
has to be changed
to use message-sends, I think (any hints here?).

A Squeak-to-PortAudio API would be a cinch to build; look at the
PortAudio tutorial example.

stp

and then:

on 11/04/05 Stephen Travis Pope wrote:

I guess the first comment should be that the VW interface doesn't work
reliably and has been adandoned. I'll describe it and explain.

In VW, you can use the DLLCC (dynamic linked library and
C connect) API
to link ST80 with external APIs. It's supposedly easier
to use than the
user primitives interface. The tool can parse a C header
file and create
a Smalltalk mirror class with glue code for calling the C functions.
Users can write C code that signals Smalltalk semaphores or creates
other callbacks.

The PortAudio API is based on registering a callback function
with the
sound driver; this gets called for every buffer of output,
i.e., on the
order of every couple msec or so. In a well-behaved app., the callback
simply copies sample data from a stored buffer into the requested
buffer, signals the "producer" thread, and returns. I think
that the VW
semaphore mechanism is too slow for this, but never got around to
tracing it more closely. My work in ST80 is mainly about controlling
external synthesis SW from Smalltalk, meaning that we use the
OpenSoundControl protocol (OSC) to control synthesis servers,
instead of
doing the synthesis and sound output from ST. This is why I never
finished the sound IO stuff, though it would be really interesting to
have working...

<---snip---->

stp



um0 downloads nicely with the squeakmap package loader, but gives me an error during install: can't find EOCD position. what to do?

I don't know what um0 is and I don't see it in squeakmap. What is it?


--
brad fuller
www.bradfuller.com


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise