Here is some of the software I've written and still support. I have to admit that I'm still pretty much a novice at this and, try as I might, still have some bugs to work out.

  I don't like the word 'bug' very much, but I don't want to be too politically correct. I write software using the Amiga SDK and the leading Storm C compiler, but some systems just don't like my software, which is I suppose the nature of the beast nowadays. I don't own five computers to do testing on like commercial authors, so I just settle for testing on my own computer.


SpeakFreely 7.2

What is SpeakFreely? SpeakFreely is a voice-over-ip program, sometimes called an Internet Phone program. Comparable programs cost a lot of money and are not readily portable. SpeakFreely costs absolutely nada and is available on lots of computer platforms, such as Windows and most flavors of Unix.

You wrote this? Wow, you're god-like! No, I didn't. SpeakFreely was written by John Walker. He maintains the program sources on his
website, and makes them freely available to port to great platforms like the Amiga. There is also a super Windows version. I am not really a programmer, but I'm learning.

Why did you port this? Good question. In 1997, AHI author Martin Blom released SpeakFreely for AHI, based on the SF6.1b source. Like all things, it was eventually obsoleted. Things like the Look Who's Listening feature didn't post my details to the LWL server. I tried to get Martin to take an interest in SpeakFreely and port the new version, but he wasn't interested. I took it upon myself then to get the GCC compiler and wrestle with the new source, stripping in Martin's AHI device handling code, and behold, it worked!!!

What do I need? Amiga with 68030/50 and an FPU. 68020 will work, but I wouldn't recommend it. You need AHI and a sampler or sound card. Really, you have to have some kind of amplifier for your mike if you have a sampler. This has given me lots of trouble, so I can't vouch for the audio quality of AmigaSF. Please email me if you have any success with AmigaSF!!!

Will there ever be a GUI version of SpeakFreely? Probably not. SpeakFreely is such a complex program, and so deeply rooted in Unix, that it would be very difficult for me to make a GUI version. It will most likely need ixemul.library forever as well, because it's super-easy to port from the Unix source this way, rather that having to re-write the software for every new version.

How do I use this program? Read the manual!!! Well, okay, I'll go over the basics. SpeakFreely is made up of several programs:
SFSPEAKER is the 'daemon' process. You launch it in a shell and it intercepts calls from other people, processes the audio, plays it. The only option that's inportant here is the -a option. It prints how to return a call to someone, so you're rather stuck without it. I use -aRAM:REPLY, so all you have to do to return someone's call is type execute ram:reply

SFMIKE connects you to another SpeakFreely user. The options you can use are many, for instance sfmike -t 158.152.127.151 would connect you to me and you would be using GSM compression. There are many forms of compression with concessions to your connection speed and processor speed.

SFLWL Queries the Look Who's Listening server to see who is online. SFLWL -hLWL.FOURMILAB.CH Brian would query lwl.fourmilab.ch to see if I'm online.

SFLWLDThe Look Who's Listening daemon, if you want to run your own LWL server.

SFECHO is an echo server. It allows people to connect to it, and have the sound sent back to them for testing.

SFLAUNCH is not working yet. It's going to be a GUI for SF. I'll finish it someday. Meantime, there's an AREXX script in the archive that provides a minimal GUI.

What works and what doesn't: In the original port, speakfree_face didn't work. In Amiga version 1.1, it should launch Multiview. (Sorry it's untested, because I don't get my whole face image sent to me, maybe because I'm connecting to myself.)
The -a option of SFSPEAKER used to return a bunch of Unix junk (like /bin/sh), in 1.1 it's been taken out, so you can execute the reply file without having to wade through wierd Unix commands.
Audio Blocking has been enabled in 1.1, so it runs much faster. I therefore dropped the system requirements to 68020+FPU. The realistic minimum is a 68030/50 +FPU. It would work on an 030/25, but only using ADPCM compression. Try to express to Windoze Lusers that they need to "switch to ADPCM compression to talk to you". You might as well teach a monkey to recite Shakespere.
You need a 'termcap' file. It's a UNIX thing. You need to have ECGS system (Geek Gadgets) installed on your Amiga, but there's another way round. When you unpack the archive, there is a directory there called lib. This is where the termcap files live, so make an assign... assign GG: to your SpeakFreely directory. When SF launches, it will load GG:lib/terminfo/u/unknown.

Download:

SpeakFreely 7.2 (Amiga 1.1)

I hope you use and enjoy the only cross-platform Internet Telephony program in the world!

Streamer 1.2



  STREAMER! A Shoutcast player by yours truly! There are a few Shoutcast players out there, but none come close to my features! I guess that's why I made 3 on the Aminet charts...

REAL RealAudio? For Real?


  Of course, and I can't hide my frustration at this: Progressive Networks won't release any information to any developers on their RealMedia server. That's a shame because unlike the web, FTP, chat, or anything else you can think of, the only way to make a proper RealAudio client is to break the law and 'reverse engineer' the product. I can't stress that RealAudio is cool: It's a good, well-established product with a HUGE user base, but it's owned by a bunch of Microsoft wannabes. Fair enough, I wouldn't release information that may damage my company to a freeware programming slob like myself, but PLEASE PLEASE PLEASE can we work something out, guys?

  That said, let's discuss the Amiga implementation of RA. First of all, the CODEC (the program that actually plays the sound) was done by CISC from some freely-available source, and it only plays RA1,2,and 3, but does so BEAUTIFULLY. Second, the proprietary PNM protocol used to deliver RealAudio is the intellectual property of Progressive Networks, so even if I broke it, Progressive Networks thugs in satin jackets, calling me 'dude' all of the time, will break into my house with a team of ferocious lawyers and take everything I own, like they did to 2bsystems.

So here are some of the things I've tried in order to circumvent the fiasco:


  • I Tried using RTSP, an open standard, developed in part by Progressive just so they could jump in the standards bandwagon, that is supported by newer RealMedia servers. Unfortunately, RTSP is simply a control mechanism which is supported by an actual transport protocol. And guess what? None of the servers I've queried support HTTP or RTP. My guess is that they only support, um... PNM://? Back to square one there.
  • I heard talk of RealMedia servers going through firewalls and proxies, which means guess what? They MUST support HTTP! A glimmer of hope appeared and my pulse raced as I headed for the compiler. Here's what I found out by examining a proxy log:
  • The client makes a POST operation to the RealAudio URL, followed by a string: /SmpDsBhgRl IE:pnm://201.20.17.101/SmpDsBhgRl
  • The server returns a MIME header and 4 bytes of binary data (an encoded URL?)
  • The client connects to a URL with a wierd, seemingly random string like 201.20.17.101/SmpDsBhgRl889234b6-000432-bcd0032-66769
    The IP addresses are changed to protect the innocent. If anyone knows what's going on here, please email me!!!
    Let me state for the record that I'm up to some shady business, but as far as I know, playing around with HTTP is not illegal, and you'd have a hard time convincing me it is. Secondly, streaming RealAudio over HTTP is really ghetto compared to the real thing. You don't get all of the playing features you'd get with the RealPlayer. I hope that this little diatribe clears things up on the state of Streamer's RealAudio support, and maybe Progressive will realize that there is more out there than Windows and SmackNtoss and help me out before I really damage something. (Unintentionally, of course!)

    Streamer latest changes:


    Any bugs with or suggestions for Streamer are always welcome. Simply send an email.

    v 1.2 28-Mar-02 Where do I start? Icon colour mapping has been fixed by using penmap.image to do the dirty work. Added QUIT and ASKREC options. Fixed a problem with RECONLY so it works again. Streamer works with Genesis, but there's still one error on exit. Added a check to make sure that files don't get closed twice: once in Streamer Net Process and once in the main program. Streamer's timer is now a separate process, so it runs whether or not the window is active. It also stops if a "No more data from host" comes up. Fixed spelling error in prefs that was saving files to ENVRAC:.

    Try Streamer 1.2


    [email protected]