HN user

cannam

1,867 karma

Audio and music software developer.

https://all-day-breakfast.com/cannam/

Occasional blog at https://thebreakfastpost.com/

Posts14
Comments453
View on HN
Fleurs du Mal 1 year ago

In 1968 a British newspaper ran a competition for English translations of "Spleen - Je suis comme le roi..." The poet Nicholas Moore - motivated by a belief that translating poetry was impossible and the project futile - sent in 31 different entries, by post, under false names and with varying levels of absurdity. He didn't win.

You can find them at https://www.ubu.com/ubu/pdf/moore_spleen.pdf, or in his published Selected Poems, along with an essay (written afterwards) about translation. Worth looking out.

(I particularly admire the sarcastic one that begins "I'm like The Winner of The Competition / The one who wrote the strong, rewarding phrase...")

I'm just about old enough to remember (in the UK) foolscap paper, an imperial size also a bit longer than A4. You never see it any more (at least I don't) but foolscap sized box-files are still readily available. I guess a slightly bigger box than you need is not usually a problem.

There's a link to the Perl code hidden in the third para of text ("The [Perl source] for this script is available...") Of course a big reason it still works is that it was written for Perl 5, which is still current!

What that link doesn't give you is the dictionary files I used as input for the preprocessing step - which of course were also 1998 vintage. There are copies on the server (https://all-day-breakfast.com/chinese/cedict.b5_saved, https://all-day-breakfast.com/chinese/big5-PY.tit)

My Chinese got somewhat better, then a lot worse, then a little bit better again - obviously mostly to do with whether I was actually using it, which on the whole I haven't been. But back then I was really working on it and I just wanted something to help - there were a few useful resources I knew of (CEDICT obviously, and Rick Harbaugh's zhongwen.com was mindblowing at the time) and this seemed like a way to glue them together that I actually knew how to do.

Writing learning tools is obviously not the same thing as learning though.

This was my attempt at doing something a little bit like it, 27 years ago. It's mostly interesting as a historical artifact - certainly yours is a lot more sophisticated and much much prettier! This one just does greedy matching against CEDICT.

https://all-day-breakfast.com/chinese/

What is kind of interesting is that the script itself (a single Perl CGI script) has survived the passage of time better than the text documenting it.

Besides all the broken links, the text refers throughout to Big-5 encoding, and the form at https://all-day-breakfast.com/chinese/big5-simple.html has a warning that the popups only work in Netscape or MSIE 4. You can now ignore all of that because browsers are more encoding aware (it still uses Big-5 internally but you can paste in Unicode) and the popups work anywhere.

Oh this is very nice, I hadn't seen it before. A few random thoughts:

- The Vamp Plugin Pack for Mac finally got an ARM/Intel universal build in its 2.0 release last year, so hopefully the caveat mentioned about the M1 Mac should no longer apply

- Most of the Vamp plugins in the Pack pre-date the pervasive use of deep learning in academia, and use classic AI or machine-learning methods with custom feature design and filtering/clustering/state models etc. (The associated papers can be an interesting read, because the methods are so explicitly tailored to the domain)

- Audacity as host only supports plugins that emit time labels as output - this obviously includes beats and chords, but there are other forms of analysis plugins can do if the host (e.g. Sonic Visualiser) supports them

- Besides the simple host in the Vamp SDK, there is another command-line Vamp host called Sonic Annotator (https://vamp-plugins.org/sonic-annotator/) which is even harder to use, equally poorly documented, and even more poorly maintained, but capable of some quite powerful batch analysis and supporting a wider range of audio file formats. Worth checking out if you're curious

(I'm the main author of the Vamp SDK and wrote bits of some of the plugins, so if you have other questions I may be able to help)

No-one ever called a real program an "app" before that, did they?

Yes. Apple called them apps in the 80s, at least on the Mac - this is Apple II but it's plausible they were also referred to as apps there?

For my part I read the title as "Taking over a wall changed my direction as a programmer" which had me really confused for a while. I'd like to read that article, I think.

The April 1984 issue of the British magazine "What Micro?" (70p from all good newsagents) contained a spoof review of a revolutionary new PC, the "Victori XZ64/4A".

A paragraph in praise of its display reads:

"Now lets move on to the display - and what a display it is. No less than 30 colours are available from Basic: white, off-white, cream, dark cream, light tan, light brown, bamboo, medium tan, medium brown, wood brown, sepia, burnt umber, oxtail, mustard (both French and English), khaki, off-brown, chocolate, dark tan, dark brown, dark burnt umber, burnt chocolate, drinking chocolate, ovaltine, light black, medium black, dark black, brown with a hint of green, brown with a hint of red, and brown with a hint of reddy-green. On some televisions these colours tend to look a little muddy, but with a little hunting around compatible sets can be found. For the purpose of this review I am using a VictoriVision Super Compatible available at most good electrical shops in Taiwan."

imagine if McLaren did this

In some sense car manufacturers do do this - their designs are famous for being full of functionally empty retro cues that customers nonetheless go for.

(Amateur cellist)

Instinctively I find this absurd too. I always thought it was funny that, at least at the level of student instruments, the more you spend, the more beaten-up your new instrument looks. Basic ones have an even spray varnish (which I generally quite like). My slightly better* Chinese factory instrument is antiqued to the extent of having a more worn-looking patch where the hand rests when playing in higher positions, as if to suggest decades of performance as a soloist. It's nonsense.

But plainly people do like this and makers do make it. See e.g. the instruments at https://www.myluthier.co/category/violins (I can't afford to shop there, I just picked it because they have pretty preview images) which stand as quite good evidence against any suggestion that "reputable luthiers would never". Yes at some point you just have to make a living, but there's enough skill put into it to suggest there might be something more artistically interesting going on as well. The results are certainly quite personal.

There are practical arguments for antiquing. It's kind of handy when you're playing in an ensemble: from a distance my cello looks basically the same as the others around me in the orchestra even though some of them are a century older and genuinely quite harshly used. And you never have the pain of getting the first obvious scratch or chip in a pristine instrument.

Curiously this doesn't seem to be a very new practice either - I think even 150 years ago, new instruments were being turned out designed to look like much older ones.

* Sounds and plays better, not just cost a bit more. I didn't choose it for the antiquing!

Tom's Essay (2008) 2 years ago

She's still playing and touring and if you get a chance to hear her, she's an absolute delight.

My greatest "unnecessary Firefox UI change gripe" is the removal of browser.urlbar.clickSelectsAll 4 years ago

Totally agree. Four years on, and it still trips me up daily.

Ironically, the usual failure mode for me is actually the one this change was supposed to help with - I want to select the whole URL, so I instinctively double-click it. This has the effect of selecting everything on the first click, then reducing the selection to a single word on the second. I am momentarily perplexed, then I recover and start clicking again, but now it takes three more clicks to get the whole URL selected.

It's surprising how annoying this is!

The explanation given in the tracker seems to amount to "at some point in the future, we might do something else that justifies this". Four years later and I'm not seeing it?

It's nice this works fine on your white-on-black terminal

I was curious about this as well, as I found the images in the README a bit hard to read. In fact the program itself seems to use quite sensible colours in my white-background terminal, and it also respects the NO_COLOR environment variable.

Same here, I had it checked out from the library continuously for a couple of years and referred to it constantly. A terrific explanation of a super cool piece of work, full of insights. I later bought another ex-library copy that I still have.

That library was so good to me! (In Crook, County Durham in north-east England) As well as providing what was probably, if I'm really honest, the most fascinating technical book of my programming career, it also had a load of LP records I wouldn't have heard anywhere else - the Go-Betweens and Peter Murphy's "Deep" I remember particularly.

With CPU, totally.

As an example I can look at my own Sonic Visualiser application, largely written 15-18 years ago and entirely CPU-driven. Relative to then, it's now horrible on contemporary Macs for example - it feels far slower than it did a decade ago. It just isn't what the hardware expects.

(There may be an element of toolkit-platform impedance and simple poor design on my part - it uses Qt and feels quicker on other platforms - and I don't want to argue the details here, but I think the basic principle that you really want to avoid CPU in the frame update is sound. Preparing things on a non-time-critical path via CPU should be another matter however, there's quite a lot of capacity there.)

It's not too hard to get an AppKit/Cocoa project from the early 2000s compiling on modern macOS, but Cocoa had already accrued 20 years of age by 2005

That's a mindboggling thought. How much did 2005 Cocoa have in common with 1985 Cocoa? (That's a real question, I have no idea)

Qt and GTK were released (or first labelled stable) in 1995 and 98 respectively, so 20 years gives us 2015 and 2018 which is well within the Qt5 and GTK3 era.

For Qt, I would say Qt4 in 2005 marks a point of maturity, if not terminal stability. Ten years. After that there have been whole substructures and programming idioms added and removed and all sorts of things tidied up, but anything you wrote directly to Qt4 is going to be conceptually similar in current Qt versions.

The Qt2 to Qt3 and Qt3 to Qt4 transitions (I never used Qt 1) broke almost every line of Qt code, but from 4 to 6 is a different prospect. It's a question of updating some details and seeking replacements for specific APIs that haven't been carried across. That can be difficult or totally blocking but it's quite different from having to rewrite everything.

Very nice! For other readers, the link is a lot more relevant to HN than you might guess if you are just skimming by.

There is the slightly awkwardly-named idagio (https://www.idagio.com/), which has been doing the same kind of thing for a while.

(I'm not well placed to compare them, since I let my own idagio subscription lapse a couple of years ago due to lack of income, I never tried Primephonic before Apple bought it, and I don't have an iPhone so can't try the Apple service... aside from all that, I'm right in the target market!)

I was once on a London bus that got stopped by the police for jumping a red light.

It was at Hyde Park Corner, heading north toward Park Lane - the light guarding the intersection with Knightsbridge turned red, the bus sailed through, and I think a nearby police car just happened to notice. Pulled the bus over and had a word with the driver, nothing more I think, but it was curiously reassuring.

I agree with you (as a former cycle commuter too) that drivers in London jump the lights far more than most people realise. If you go out for a half-hour walk and pay attention, you're highly likely to see it at least once.

Source-code freedom is user freedom. It's effectively a sort of guarantee.

The additional freedom that BSD licences provide is freedom for developers to do what they like, not anything to do with users.

(The biggest practical advantage of a BSD licence for most developers is that if you use one when publishing your code while you work for a company, you yourself will still be able to reuse that code after you leave.)

I don't know about NY or Paris, but the comparison against London seems fair enough. They seem to be using a Tokyo metropolitan area of about 2000 km^2, and comparing it with Greater London at 1572 km^2.

And indeed, people throughout Greater London are entirely used to living in small, damp, shared boxes.

I thought high humidity made it feel colder, when the temperature was relatively low?

Hot damp air feels hotter than hot dry air, but I've had the idea that cold damp air feels colder than cold dry air. Is that a misconception?

Unless you're promising them a long-term commitment (and at that point are you really freelancing?) they might be hesitant to invest

I think this aspect can be overstated, or at least it varies a lot depending on type of project.

A while ago I was hired by a small client to fix a serious and tricky bug in an iOS app. I have never written an iOS app, I use neither ObjC nor Swift regularly, and at the time I had never compiled an iOS app and didn't even own an iOS device (though I did have a Mac to hand). But the bug was in audio processing code and I know that field quite well. They gave me access to their code repo, I bought a cheap iPad, I spent a few billable hours getting the app running, fixed the problem, a couple of rounds back and forth with the client to establish that they were happy with it, and done. It genuinely wasn't a trivial bug, but the investment in time on the client's part was perhaps one person-day and the entire exchange was over in a week.

Had the client been a bigger company and not just another indie, in theory I could have charged an arbitrary amount, as this was a revenue-threatening bug. But a bigger company surely wouldn't have hired an outsider to do it. An example like this suggests to me only that the problem is commercial or organisational rather than technical.

What an interesting article!

It seems as if the idea is quite literal - that attention may become what you need in order to support yourself, a currency, not just something you can exchange for money somehow if you're lucky. Unless I'm missing something, there's no physical mechanism suggested by which this could work - who maintains you, who feeds you, who feeds them, etc. I wonder what the author imagined?

That is curious, I'd glanced at the iPad announcement but hadn't noticed the big price increase. I wonder what the cause is. Are any of the components radically more expensive? Is this the general trend of costs and the previous model was beginning to become uneconomic? Or is it purely a decision about margins?

Sound 4 years ago

"Step 1: Process this artificially created periodic signal by multiplying it by sine waves of frequencies from from 1 to N. There are our bins! Step 2: OK, for real world signals we need phase, so now let's talk about complex numbers."

Maybe the latter part could be prepped by resynthesising the time-domain signal by summing the sines, and seeing that it doesn't match the original. And it can't, not least because all of the sines start at 0. But if you have cosines as well, it can. Then refer to the geometrical relationship between sine/cosine and phase.

A preliminary to the earlier part might be to multiply a single long sinusoid by another one, and see what happens when their frequencies do or don't match. (But there is a whole well here about what it means for frequencies to "match", which in the discrete world has to do with how long the relevant part of the signal is.)