Skip to content

Instantly share code, notes, and snippets.

Peer-Reviewed Listening Tests That Include Uncompressed (WAV/CD) Versus 320 kb/s MP3

1. Amandine Pras et al., "Subjective Evaluation of MP3 Compression for Different Musical Genres" (Audio Engineering Society 127th Convention, 2009) [^1]

  • Design – 13 trained listeners (9 recording engineers, 4 professional musicians) took double-blind A/B preference tests. Each excerpt (pop, metal-rock, contemporary classical, orchestra, opera) was presented in the uncompressed 44.1 kHz/16-bit version and five MP3 bit-rates: 96, 128, 192, 256 and 320 kb/s (LAME encoder).
  • Key 320 kb/s result – For 256 kb/s and 320 kb/s the panel showed no statistically significant preference for the WAV over the MP3. Only the most experienced engineers (≥7 years studio work) could sometimes identify the 320 kb/s file, and even they performed just above chance.
  • Take-away – In controlled ITU-style tests even trained ears could not reliably distinguish 320 kb/s MP3 from uncompressed audio across all five ge
@realies
realies / hdtunepro-trial-reset.cmd
Created August 13, 2024 14:53
hd tune pro trial reset
@echo off
setlocal enabledelayedexpansion
set "regKey=HKEY_CURRENT_USER\Software\EFD Software\HDTunePro"
set "valueName1=Test Parameters 1"
set "valueName6=Test Parameters 6"
:: Read the value of "Test Parameters 1"
for /f "skip=2 tokens=4*" %%A in ('reg query "%regKey%" /v "%valueName1%"') do set "value1=%%B"
const fs = require('fs');
const { exec, execSync } = require('child_process');
const getStartTime = (fileName) => {
const ffprobeOutput = execSync(`ffprobe -v quiet -print_format json -show_entries format=start_time ${fileName}`).toString();
const ffprobeJSON = JSON.parse(ffprobeOutput);
return parseFloat(ffprobeJSON.format.start_time) * 1000;
};
const mixAudioTracks = (audioFiles) => {
@realies
realies / samsung-uk-student.user.js
Created May 10, 2023 15:50
tamper monkey script to register as a uk student with any email
// ==UserScript==
// @name smsng-uk-student-any-mail
// @namespace http://tampermonkey.net/
// @version 0.1
// @match https://shop.samsung.com/uk/multistore/ukepp/uk_student/registration
// @icon https://www.google.com/s2/favicons?sz=64&domain=samsung.com
// @grant GM_addStyle
// @run-at document-start
// ==/UserScript==
Nginx Proxy Manager
Proxy Host
[X] Block Common Exploits
[X] Websockets Support
[X] Force SSL
[X] HTTP/2 Support
[X] HSTS Enabled
[X] HSTS Subdomains
#!/bin/bash
set -e
{
docker exec --user www-data nextcloud php cron.php
docker exec --user www-data nextcloud php /var/www/html/occ db:add-missing-columns --no-interaction
docker exec --user www-data nextcloud php /var/www/html/occ db:add-missing-primary-keys --no-interaction
docker exec --user www-data nextcloud php /var/www/html/occ db:add-missing-indices --no-interaction
docker exec --user www-data nextcloud php /var/www/html/occ db:convert-filecache-bigint --no-interaction
docker exec --user www-data nextcloud php /var/www/html/occ maintenance:mimetype:update-db --no-interaction
#include <iostream>
#include <chrono>
#include <cstdint>
#include <unistd.h>
#include <sys/sysctl.h>
#include <mach/mach_host.h>
const int64_t REPETITIONS = 5;
inline void flush_cache() {
@realies
realies / memory_speeds2.cpp
Created April 11, 2023 18:42
m1 mem speedtest
#include <iostream>
#include <chrono>
#include <cstdint>
#include <unistd.h> // for sysctl
const int64_t ARRAY_SIZE = 1024 * 1024 * 1024; // 1024 MB
const int64_t REPETITIONS = 1000;
inline void flush_cache() {
__builtin_arm_dsb(0b1111);
@realies
realies / memtest.rs
Created April 11, 2023 17:19
asking chatgpt 4 to >write a rust application that will circumvent L1, L2, and L3 and test memory latency, read and write speeds
#![feature(asm)]
use std::time::Instant;
const BUFFER_SIZE: usize = 1024 * 1024 * 128; // 128 MB
fn main() {
let mut buffer = vec![0u8; BUFFER_SIZE];
let start_time = Instant::now();
unsafe { write_memory_avx(&mut buffer); }
@realies
realies / upgrade.sh
Last active September 16, 2021 18:01
posix compliant script to upgrade all subfolder docker compose services
#!/bin/bash
set -ex
if [ -z "$1" ]; then
for dir in */; do [ -e "$dir" ] || continue; ./upgrade.sh "$dir"; done
exit 0
fi
cwd="$(pwd)"
cd "$1"
if [ -f Dockerfile ]; then
image=$(cat Dockerfile | awk 'tolower($1) == "from" { print $2 }')