Building PaulStretch on Mojave in 2019

It’s a weakness. Software archeology. The topic of PaulStretch came up during the week, and of course i wanted to play with it again.

Back in 2013 there were downloadable binaries, but it seems they probably stopped working a few macOS releases ago. And besides, where is the fun in that!

The good news is that despite not being touched for years the code does actually compile.   There is no bad news, it’s working perfectly, and i’m listening to the Alien Sex Fiend track ‘I Walk The Line’ stretched out to 35mins.

After cloning the code from GitHub, it’s just a matter of installing the right libraries. I’m using MacPorts and the other dependency that was missing was mini-xml. That is also on GitHub, but the latest release isn’t compatible, fortunately the v2.12 release is fine.

Work from the script here:

https://github.com/paulnasca/paulstretch_cpp/blob/master/compile_linux_fftw.sh

  • install FLTK (available in MacPorts)
  • run the two fluid commands
  • run the g++ command (changing $outfile to paulstretch
  • install the missing libraries until you get a binary

The missing libraries were:

  • audiofile
  • libmad
  • portaudio
  • fftw-3-single (this is suggested as optional, but it wasn’t hard to include)
  • mini-xml

To install mini-xml it was the usual:

./configure –prefix=/opt/local ; make ; sudo make install

Everything else was just:

sudo port install

Screenshot 2019-03-23 at 17.26.21.png

Aint it pretty!

$ fluid -c GUI.fl
$ fluid -c FreeEditUI.fl

$ g++ -ggdb GUI.cxx FreeEditUI.cxx *.cpp Input/*.cpp Output/*.cpp `fltk-config –cflags“fltk-config –ldflags`-laudiofile -lfftw3f -lz -logg -lvorbis -lvorbisenc -lvorbisfile -lportaudio -lpthread -lmad -lmxml -o paulstretch

FTW, i tried to statically link it but it start to complain about missing libraries. Perhaps i’ll be motivated to learn how to package a .dmg file if there is interest. Surely it can’t be that difficult… right?

Update: it doesn’t look that difficult to create a ‘PaulStretch.app’, there is some Info.plist to create, copy all the libraries into the directory structure:

$ otool -L paulstretch
paulstretch:
/opt/local/lib/libfltk.1.3.dylib
/usr/lib/libSystem.B.dylib
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
/opt/local/lib/libaudiofile.1.dylib
/opt/local/lib/libfftw3f.3.dylib
/opt/local/lib/libz.1.dylib
/opt/local/lib/libogg.0.dylib
/opt/local/lib/libvorbis.0.dylib
/opt/local/lib/libvorbisenc.2.dylib
/opt/local/lib/libvorbisfile.3.dylib
/opt/local/lib/libportaudio.2.dylib
/opt/local/lib/libmad.0.dylib
/opt/local/lib/libmxml.dylib
/usr/lib/libc++.1.dylib

and then update the paths with ‘install_name_tool -change’ to update the paths to reference the copy in the App directory structure.

Check back tomorrow!

Update: after a few more shenanigans fixing library references in libraries that reference libraries (it’s turtles all the way down, etc) there is now a “nicely” packaged ‘PaulStretch.app’ that can be distributed in a DMG image. It has even been tested off my machine!

$ tree PaulStretch.app
PaulStretch.app
└── Contents
    ├── Info.plist
    ├── MacOS
    │   ├── libFLAC.8.dylib
    │   ├── libaudiofile.1.dylib
    │   ├── libfftw3f.3.dylib
    │   ├── libfltk.1.3.dylib
    │   ├── libmad.0.dylib
    │   ├── libmxml.dylib
    │   ├── libogg.0.dylib
    │   ├── libportaudio.2.dylib
    │   ├── libvorbis.0.dylib
    │   ├── libvorbisenc.2.dylib
    │   ├── libvorbisfile.3.dylib
    │   ├── libz.1.dylib
    │   └── paulstretch
    └── Resources
        └── PaulStretch.icns
Advertisements

Iain Art

IMG_7755Iain has a new book out today – Every Word You Cannot Say*, and it has his drawings.

He has been doing them for people on Twitter… obviously i had to get in on that action! Love the fact that i’ve got my face stuck in a book.

Also, despite expectations, red is a good colour for me.

The Wall

iu.jpegThis was a little harrowing to read. Not in the way that Cormac McCarthy is harrowing to read – the writing is of a completely different stripe, but on some level just as bleak.

John Lanchester has appeared here previous, and i’m a big fan of his journalistic writing. He has great way of explaining complicated issues. His prose is rather functional, direct. Sometimes things feel a little too lightweight, but maybe that levity shows how easily an abhorrent situation can be normalised.

The Wall is set in a near future Britain, a time where sea levels have risen and a ‘fortress mentality’ has taken over the land. A time when ‘The Others’ seek to gain entry, to seek sanctuary in a chaotic world.

It feels very now. It feels like a slap in the face. A glance around the next bend to reveal a car crash in progress, and not enough time to react. A time when:

Mere anarchy is loosed upon the world,
The blood-dimmed tide is loosed, and everywhere
The ceremony of innocence is drowned;

Worth reading. It was hard enough to put down that i tore through it in a couple of hours.

Susan Sontag On Photography

susan sontag_on photography_coverA series of essays that critique photography and the culture of images. A critical critique.

As someone who has taken a lot of photographs, but hasn’t really tried to understand the implications of the act of photographing, or the impact of the images themselves, it’s something akin to a slap in the face.

While i wouldn’t say it was an enjoyable read, it’s definitely thought provoking and in the end worthwhile for the new perspective.

If you ever find yourself wondering why certain photographs have the impact that they do, why people take photographs on holiday, if photography is art, if photographs are art, the relationship between image and memory, the impact of images on society, their role in society… this would be a good place to start. Just don’t expect to arrive at the end of the book with more answers than questions.

Distribution!

How exciting! Simon Schuster India are publicising the IWTFY 2007 – 2017 book:

With a bit of luck that means they’ll put a couple of copies in every bookshop in India that stocks foreign books.

The little fade in of the cover is cool. Wonder if there is anything behind that… i’ve also thought that picture was rather ‘sensual’, maybe it’s a little racy for the indian market?