Hello Squeakers, As you may have noticed form my last post, Siren 7.5 is finally out! Over the years, I've worked on several versions of Smalltalk, and, from 1996-2001, Siren ran on Squeak. Since then, I moved back to VisualWorks, but the core of Siren is certainly platform-agnostic. To make it easier to port Siren back to Squeak, the new Siren release includes old-format file-outs of the class categories (in the Sources/ folder in the release archive) and I've included a separate file of all my system changes. Given this, and the old Siren 3.0 on Squeak, it should be easy to get the bulk of Siren running on Squeak again. There are 2 areas that will need some work. 1) I rewrote all the external interface classes (sound I/O, MIDI I/O, FFT, etc.) to use VisualWorks DLLCC. The actual external code (the C side) should be quite portable, and uses stable cross-platform libraries such as PortAudio and PortMIDI. All that would need to be done would be to turn my DLLCC libraries into Squeak VM plug-ins and write wrapper classes to mirror the DLLCC external interfaces. 2) The GUI applications all use my own structured graphics framework. This should still be portable from Siren 3.0, so that all the editors and notation programs should still run under Morphic, except that someone needs to rewrite all the class-side open methods in the application classes. So, is anyone interested in working on a Squeak port? ...any replies appreciated... stp -- Stephen Travis Pope -- Santa Barbara, California, USA _______________________________________________ SqueakAudio mailing list [hidden email] http://www.create.ucsb.edu/mailman/listinfo/squeakaudio |
Stephen Travis Pope wrote:
> Given this, and the old Siren 3.0 on Squeak, it should be easy to get the bulk > of Siren running on Squeak again. There are 2 areas that will need some work. > > 1) I rewrote all the external interface classes (sound I/O, MIDI I/O, FFT, etc.) > to use VisualWorks DLLCC. The actual external code (the C side) should be quite > portable, and uses stable cross-platform libraries such as PortAudio and > PortMIDI. All that would need to be done would be to turn my DLLCC libraries > into Squeak VM plug-ins and write wrapper classes to mirror the DLLCC external > interfaces that would be of interest just by itself... it would make Squeak a much more capable multimedia tool. Stef _______________________________________________ SqueakAudio mailing list [hidden email] http://www.create.ucsb.edu/mailman/listinfo/squeakaudio |
In reply to this post by Stephen Travis Pope
Stephen Travis Pope wrote:
> Hello Squeakers, > So, is anyone interested in working on a Squeak port? I am ready to help have muO and Siren coexists in a same Squeak image. I can't do more unfortunately, for lack of time. so if someone does port Siren to Squeak, please contact me so that we can work around the possible clashes with muO Stef _______________________________________________ SqueakAudio mailing list [hidden email] http://www.create.ucsb.edu/mailman/listinfo/squeakaudio |
In reply to this post by Stéphane Rollandin
Stéphane Rollandin wrote:
> Stephen Travis Pope wrote: >> Given this, and the old Siren 3.0 on Squeak, it should be easy to get >> the bulk of Siren running on Squeak again. There are 2 areas that >> will need some work. >> >> 1) I rewrote all the external interface classes (sound I/O, MIDI I/O, >> FFT, etc.) to use VisualWorks DLLCC. The actual external code (the C >> side) should be quite portable, and uses stable cross-platform >> libraries such as PortAudio and PortMIDI. All that would need to be >> done would be to turn my DLLCC libraries into Squeak VM plug-ins and >> write wrapper classes to mirror the DLLCC external interfaces > > that would be of interest just by itself... it would make Squeak a > much more capable multimedia tool. > > It's a pity that the multimedia functionalities of squeak have been left behind. As much as I appreciate all the work done on lots of interesting projects, audio and video processing should have been a priority for squeak. Imagine all the things one could make with such a great development paradigm if those functionalities were built-in. c. > Stef > _______________________________________________ > SqueakAudio mailing list > [hidden email] > http://www.create.ucsb.edu/mailman/listinfo/squeakaudio > > -- http://www.cesaremarilungo.com _______________________________________________ SqueakAudio mailing list [hidden email] http://www.create.ucsb.edu/mailman/listinfo/squeakaudio |
In reply to this post by Stephen Travis Pope
Stephen Travis Pope wrote
> 1) ...... All that would need to be > done would be to turn my DLLCC libraries into Squeak VM plug-ins and > write wrapper classes to mirror the DLLCC external interfaces. > .... > 2) The GUI application...... >. ... > So, is anyone interested ......? I am keen to see job 1 done. However I am guessing this will principally need C skills. Unfortunately my C skills are non-existent but my smalltalk skills are fine, and I have some experience of creating VW DLCCs. So while I couldn’t progress this solo, I would be more than happy to lend a hand to someone with C skills. Simon Holland _______________________________________________ SqueakAudio mailing list SqueakAudio@create.ucsb.edu http://www.create.ucsb.edu/mailman/listinfo/squeakaudio |
Hi all, It really shouldn't involve C programming, just editing and running a simple makefile to compile the glue code that links VW's DLLCC to the PortMIDI library. stp -- Stephen Travis Pope -- Santa Barbara, California, USA http://HeavenEverywhere.com http://FASTLabInc.com On Aug 1, 2007, at 1:33 AM, Simon Holland wrote: > > Stephen Travis Pope wrote > >> 1) ...... All that would need to be >> done would be to turn my DLLCC libraries into Squeak VM plug-ins and >> write wrapper classes to mirror the DLLCC external interfaces. >> .... >> 2) The GUI application...... >> . ... >> So, is anyone interested ......? > > I am keen to see job 1 done. > However I am guessing this will principally need C skills. > Unfortunately my C skills are non-existent but my smalltalk skills > are fine, > and I have some experience of creating VW DLCCs. > > So while I couldn’t progress this solo, I would be more than happy > to lend a hand to someone with C skills. > > Simon Holland _______________________________________________ SqueakAudio mailing list [hidden email] http://www.create.ucsb.edu/mailman/listinfo/squeakaudio pastedGraphic.tiff (3K) Download Attachment |
Hi Stephen
OK, I’ll give it a go. ( As you undoubtedly know, Squeak requires setInterpreter to be in the plugin but SmartSyntaxInterpreterPlugin can generate that, so it looks OK.) Things are extremely busy this month, so please don’t wait up, but I am on the case :-) Cheers Simon On Aug 03, 2007, at 09:18pm Stephen Travis Pope wrote: >It really shouldn't involve C programming, just editing and running a > simple makefile to compile the glue code that links VW's DLLCC to the > PortMIDI library. > stp |
(Cross posted to squeak audio and vw-dev)
Dear All I am writing primitives to port Stephen Pope’s portmidi_lite VisualWorks plugin to Squeak (on Mac Intel for now). To test everything possible before linking to the portmidi library, I wrote a series of test plugins using the arguments, return types, and pointer manipulation etc required by portmidi_lite. These show that the primitives do the appropriate proxyinterpreter stack manipulation, type conversion and object creation while avoiding garbage collection, and generally exchange data just fine with the test plugins. But to transfer this to portmidi_lite, the portmidi library must be linked in. After removing the VW-specific includes from Stephen's portmidi_lite.c (renamed as noted below). and supplying the necessary .h’s , the make compiles and links without error. However, the plugin then fails to load at runtime. More specifically, when I run the automatically generated make to rebuild the VM/plugins and to link my slang-generated glue code to portmidi_lite.c and to the portmidi library, this all runs to completion and compiles with no errors. The plugin is created and put in the right place (as an external) and looks sensible via nm. However, the plugin fails to load at run-time. On attempting to load the plugin, Squeak complains to the console “ioLoadModule could not load shared object: /Users/simon/squeak/build/Squeak-3.9-12.app/Contents/MacOS/PortMidiLitePlugin.“ This message originates from vm/dlfcn-dyld.c , where it wraps a Mach error code NSObjectFileImageInappropriateFile – ‘file was not an appropriate type of object file’. In the Makefile.inc for linking the portmidi plugin, I have PLIBS=$PLIBS -L/Users/simon/squeak/platforms/unix/plugins/PortMidiLitePlugin/i386 The folder i386 contains libportmidi.a pmmac.o pmmacosxcm.o pmutil.o portmidi.LinkFileList portmidi.o ptmacosx_mach.o The contents of this folder is a fresh build of the portmidi library for intel Mac created using the Xcode project provided by the portmidi guys. (The previous attempt, using just the single file libportmidi.a in this folder gave the same result.) For completeness, up a level at Users/simon/squeak/platforms/unix/plugins/PortMidiLitePlugin we have the following files SirenDLLCC.h (this just includes debug defines) portmidi.h portmidi_lite.h porttime.h spPortMidiLitePlugin.c (a renamed version of portmidi_lite.c with the VW includes removed – this has includes for the four .h’s) Any thoughts would be greatly appreciated. Simon Holland |
Free forum by Nabble | Edit this page |