[Pharo-users] Siren 9.0 Released

2020-05-13 Thread step...@heaveneverywhere.com

Hello all,

The Siren system is a general-purpose framework for music and sound 
composition, processing, performance, and analysis; it is a collection of about 
350 classes written in Smalltalk-80 (40 kLOC or so). Siren 9.0 works on 
VisualWorks Smalltalk (though the bulk has been ported to other dialects as 
well); Siren supports streaming I/O via OpenSoundControl (OSC), MIDI, and 
multi-channel audio ports. The Siren release is available via the web from the 
URL http://FASTLabInc.com/Siren. 

Siren is a programming framework and tool kit; the intended audience is 
Smalltalk developers, or users willing to learn Smalltalk in order to write 
their own applications. The built-in applications are meant as demonstrations 
of the use of the libraries, rather than as end-user applications. Siren is not 
a MIDI sequencer, nor a score notation editor, through both of these 
applications would be easy to implement with the Siren framework.

There are several elements to Siren:

* the Smoke music representation language (music magnitudes, events, event 
lists, generators, functions, and sounds);

* voices, schedulers and I/O drivers (real-time and file-based voices, sound, 
score file, OSC, and MIDI I/O);

* user interface components for musical applications (UI framework, tools, and 
widgets);

* several built-in applications  (editors and browsers for Smoke objects); and

* external library interfaces for streaming I/O and DSP math (sound/MIDI I/O, 
fast FFT, CSL & Loris sound analysis/resynthesis packages )

The best in-depth doc (book chapter) is in,
http://FASTLabInc.com/Siren/Doc/SirenBookChapter.pdf

The read the demo code workbook (this text), go to,
http://FASTLabInc.com/Siren/Siren7.5.Workbook.html
or
http://FASTLabInc.com/Siren/Siren7.5.Workbook.pdf

If you like to read manuals, take a look at,
http://FASTLabInc.com/Siren/Manual

or watch the detailed Siren demo at,
https://vimeo.com/120751122

The links to get Siren9 are,

Web site: http://fastlabinc.com/Siren 

Package download: http://fastlabinc.com/Siren/Siren_9.0.zip 


Github repo: https://github.com/stpope/Siren9 


Comments solicited.

Stephen Pope


--

Stephen Travis Pope   Santa Barbara, California, USA
  http://HeavenEverywhere.com 
http://FASTLabInc.com 
   https://vimeo.com/user19434036/videos 
  
http://heaveneverywhere.com/Reflections

--





[Pharo-users] Package Browser (AKA 6-paned Browser) and Pharo package organization

2020-04-30 Thread step...@heaveneverywhere.com

Hello friends,

I’m getting started with Pharo after decades using VisualWorks and Squeak; it’s 
pretty wonderful what you all have assembled!

My question is related to what we used to teach as the first law of software 
reuse: “You can’t reuse it if you can’t find it,” and the related software 
engineering "principle of least astonishment."

When I fire up Pharo, the system browser presents me with a list of several 
hundred categories (from AST to Zodiac) in a system with over 8000 classes.  
The system categorization makes no sense since I don’t know the naming 
conventions and so many packages have cute but quite non-descriptive names 
(Zinc? Metacello? Calypso?).

In Smalltalk-80, the class category names were organized as a 2-level hierarchy 
where the top-level were items such as Magnitudes, Collections, Streams, 
Graphics, Text, System, Tools, Files, etc.  This made it easy to find (e.g.,) 
the browser source code by looking in the Tools package for the class category 
Tools-Browser.  Even packages with cute names (like my own “Siren”), were 
categorized for ease of finding; e.g., the Siren classes were in class 
categories like Music-Events and Music-Magnitudes.

Parsing the class category names on the first instance of $- made it possible 
to build 6-paned Browsers (called package pane browser in Squeak).  (We 
acknowledged that this violates the “zero/one/infinity" rule.) Is something 
like this available for Pharo? I looked through the Calypso browser code and 
it’s so over-engineered (IMHO) that it’d take me several days to figure out how 
to implement this (it was about 1.5 pages of code in Smalltalk-80).

If Pharo had a browser that scaled better and a reorganization/simplification 
of the class categories to use names that were more self-explanatory, it would 
be *much* easier for new users (in fact, for all users) to find their way 
around.

I apologize for the stepping on toes...

Stephen Pope


--

Stephen Travis Pope   Santa Barbara, California, USA
  http://HeavenEverywhere.com 
http://FASTLabInc.com 
   https://vimeo.com/user19434036/videos 
  
http://heaveneverywhere.com/Reflections

--