HNHacker News
TopNewBestAskShowJobs

TwistedWave

81 karma · joined October 2, 2010

thomas@[username].com

meet.hn/city/fr-Paris

Socials:

- linkedin.com/in/thomas-thiriez-438625

---

submissionscomments
TwistedWave··on Apple has not fixed the macOS audio left/right balance bug for nearly 10 years
The memory pressure is caused by other apps on the user's machine. My test program just increments a counter when there is a glitch, and requires a trivial amount of memory. Yet, it can see glitches when other apps run in the background allocating memory.
TwistedWave··on Apple has not fixed the macOS audio left/right balance bug for nearly 10 years
Why wouldn't it be possible to mlock all the memory pages used by the real-time thread?

I do my best to do it on the application side. It would be nice if Apple's CoreAudio did the same.

If you mean that it is difficult to identify the pages used, that is true, but I found a great way to do just that. I keep track of all the pages I mlock(), list all the remaining pages, and mprotect them to crash if I accidentally access memory that was not mlocked. That helped me identify a couple of pages I forgot, such as the one that contains the __stack_chk_guard

And regarding the code pages, for some reason I get a permission denied error if I try to mlock them. Not sure why.

There is no mlockall() on macOS, but if there was one, I could delegate the real-time audio handling code to a separate executable, and call mlockall(). I would be guaranteed all the pages used by the real-time thread would be mlocked.

And by the way if you are interested in the report I sent to Apple, you can find all the details with the sample code to reproduce the problem there:

https://twistedwave.com/AudioGlitches.zip

TwistedWave··on Apple has not fixed the macOS audio left/right balance bug for nearly 10 years
Here is the contents of the bug I have reported with all the details and sample code to reproduce the problem:

https://twistedwave.com/AudioGlitches.zip

It contains a program where the only thing I do in the real-time callback is to count the glitches, and I made sure to mlock() the memory used by the glitch counting code. When the memory pressure increases, it glitches.

TwistedWave··on Apple has not fixed the macOS audio left/right balance bug for nearly 10 years
I have just reported a bug where high memory pressure could cause memory pages from the real-time audio thread to get swapped out, causing audio glitches. I am not hopeful for a timely resolution now...
TwistedWave··on Ask HN: Who needs beta testers?
https://twistedwave.com/windows

TwistedWave, is an audio editor for macOS, iOS and Online, and I have almost finished porting it to Windows. I would appreciate any help in testing the Windows version before I release it officially.

Contact: beta-testing@domain or thomas@domain

TwistedWave··on Channel Swimming Association
From the association’s website, you can learn :

France/England swims are no longer permitted. When the French authorities permitted these they usually started from Cap Gris Nez.

TwistedWave··on Lost USB with 460k city residents’ personal data found
Amagasaki2022
TwistedWave··on Low-cost gel film can pluck drinking water from desert air
1,923m^3, not 1,923L
TwistedWave··on Show HN: Thruhikes – A list of long distance hikes around the world
I have suggested the trans Canada trail. 24000 km. https://en.m.wikipedia.org/wiki/Trans_Canada_Trail
TwistedWave··on How to publish Git repos that cannot be republished to GitHub
It's not just the decryption key. It is a gzip file containing the full source code of the decoder!
TwistedWave··on Mac keyboard shortcuts
I use an USB light sensor to automatically adjust the display brightness with ddcctl.

http://www.yoctopuce.com/EN/products/usb-environmental-senso...

TwistedWave··on A researcher on how to live a happy life
Very relevant on this topic, I loved Daniel Gilbert's book, Stumbling on Happiness.

https://www.goodreads.com/book/show/56627.Stumbling_on_Happi...

TwistedWave··on Show HN: Visualizing disk IO activity using log-scale banded graphs
I don't understand. In most of your samples, there is no bar in the first two bands. Does that mean that your samples are a multiple of 1 MB?

If your read/write rate is not constant, such as in the non-optimized file copy and you display the rate mod 1024 in the first band, I expect to see seemingly random bars that would not show any meaningful information. What am I missing?

TwistedWave··on Setting Emacs theme based on ambient light
I have a Dell P4317Q, a great 43 inch display, and control it from my Mac with ddcctl: https://github.com/kfix/ddcctl
TwistedWave··on Setting Emacs theme based on ambient light
It is possible to purchase a small USB lux meter:

http://www.yoctopuce.com/EN/products/usb-environmental-senso...

I use one to automatically adjust the brightness of my Dell display.

TwistedWave··on Wal-E: Continuous Archiving for Postgres
The video is online now.
TwistedWave··on Show HN: Sodaphonic – record and edit audio in the browser
Hey, I have also done an audio editor and recorder in the browser! All the audio is stored and processed on the server. You can Check it out there: https://twistedwave.com/online/
TwistedWave··on Show HN: TwistedWave, a Web-Based Audio Editor with an API
Hi HN,

After making an OS X and an iOS version of TwistedWave, I have now made an Online version that works in a web browser.

All the audio is stored and processed on the server.

There is a small flash module used to record audio, but I will be happy to get rid of it as soon as we have a browser with support for the AudioWorkerNode.

I have also made an API so you can integrate it with your own web site.

TwistedWave··on Clang is now feature complete for C++14
Having list iterators carry a field pointing to their container wouldn't help you determine the number of objects between two iterators when you splice, which is what you need in order to maintain the object count.

Storing an index in the iterator would not be a solution either. That would mean updating the index in all the existing iterators when you insert an object in the list.

TwistedWave··on Strange multiplication behavior in Guile Scheme interpreter
I could reproduce it in guile 2.0.6
TwistedWave··on Strange multiplication behavior in Guile Scheme interpreter
It boils down to:

> (* 4294967296 4294967296)

$1 = 0

My guess is that guile uses the native int type to store small numbers, and then switches to a bignums, backed by GNU MP when the native ints are too small. Maybe in that particular case, the check fails, and the computation overflows the native int.

TwistedWave··on Securing Ubuntu
I rely a lot on apparmor to secure an Ubuntu installation. It offers a very fine grained control on what processes are allowed to do, what files they can access. I find it more powerful and easier to setup than a chroot.
TwistedWave··on Startup School 2011 Live Stream
I found one here: http://startupschool.org/schedule.html [edit] this was indeed from last year. Here is the current one: http://pastie.org/2779036
TwistedWave··on Concurrent Data Structures
PDF version available here: http://www.cs.tau.ac.il/~afek/ConcurrentDS-MS04.pdf
TwistedWave··on How To Safely Store A Password
Indeed, thanks. I fixed it.
TwistedWave··on How To Safely Store A Password
The goal of hashing the passwords is to not store them in plaintext in the database, in case the server is compromised. In your case, an attacker doesn't need the password, the hash is enough to login.
TwistedWave··on Apple brings App Store to Mac OS X
That would be childal control, then :)