frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Show HN: MCP App to play backgammon with your LLM

https://github.com/sam-mfb/backgammon-mcp
2•sam256•23m ago•0 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
241•isitcontent•16h ago•26 comments

Show HN: I spent 4 years building a UI design tool with only the features I use

https://vecti.com
343•vecti•18h ago•153 comments

Show HN: If you lose your memory, how to regain access to your computer?

https://eljojo.github.io/rememory/
307•eljojo•19h ago•190 comments

Show HN: I'm 75, building an OSS Virtual Protest Protocol for digital activism

https://github.com/voice-of-japan/Virtual-Protest-Protocol/blob/main/README.md
5•sakanakana00•1h ago•1 comments

Show HN: I built Divvy to split restaurant bills from a photo

https://divvyai.app/
3•pieterdy•1h ago•0 comments

Show HN: R3forth, a ColorForth-inspired language with a tiny VM

https://github.com/phreda4/r3
77•phreda4•15h ago•14 comments

Show HN: Smooth CLI – Token-efficient browser for AI agents

https://docs.smooth.sh/cli/overview
93•antves•1d ago•69 comments

Show HN: ARM64 Android Dev Kit

https://github.com/denuoweb/ARM64-ADK
17•denuoweb•2d ago•2 comments

Show HN: BioTradingArena – Benchmark for LLMs to predict biotech stock movements

https://www.biotradingarena.com/hn
26•dchu17•20h ago•12 comments

Show HN: I Hacked My Family's Meal Planning with an App

https://mealjar.app
2•melvinzammit•3h ago•0 comments

Show HN: Artifact Keeper – Open-Source Artifactory/Nexus Alternative in Rust

https://github.com/artifact-keeper
152•bsgeraci•1d ago•64 comments

Show HN: Slack CLI for Agents

https://github.com/stablyai/agent-slack
47•nwparker•1d ago•11 comments

Show HN: I built a free UCP checker – see if AI agents can find your store

https://ucphub.ai/ucp-store-check/
2•vladeta•4h ago•2 comments

Show HN: Gigacode – Use OpenCode's UI with Claude Code/Codex/Amp

https://github.com/rivet-dev/sandbox-agent/tree/main/gigacode
18•NathanFlurry•1d ago•9 comments

Show HN: Compile-Time Vibe Coding

https://github.com/Michael-JB/vibecode
10•michaelchicory•5h ago•1 comments

Show HN: Slop News – HN front page now, but it's all slop

https://dosaygo-studio.github.io/hn-front-page-2035/slop-news
15•keepamovin•6h ago•5 comments

Show HN: Daily-updated database of malicious browser extensions

https://github.com/toborrm9/malicious_extension_sentry
14•toborrm9•21h ago•7 comments

Show HN: Horizons – OSS agent execution engine

https://github.com/synth-laboratories/Horizons
23•JoshPurtell•1d ago•5 comments

Show HN: Micropolis/SimCity Clone in Emacs Lisp

https://github.com/vkazanov/elcity
172•vkazanov•2d ago•49 comments

Show HN: Falcon's Eye (isometric NetHack) running in the browser via WebAssembly

https://rahuljaguste.github.io/Nethack_Falcons_Eye/
5•rahuljaguste•15h ago•1 comments

Show HN: Fitspire – a simple 5-minute workout app for busy people (iOS)

https://apps.apple.com/us/app/fitspire-5-minute-workout/id6758784938
2•devavinoth12•9h ago•0 comments

Show HN: I built a RAG engine to search Singaporean laws

https://github.com/adityaprasad-sudo/Explore-Singapore
4•ambitious_potat•9h ago•4 comments

Show HN: Local task classifier and dispatcher on RTX 3080

https://github.com/resilientworkflowsentinel/resilient-workflow-sentinel
25•Shubham_Amb•1d ago•2 comments

Show HN: Sem – Semantic diffs and patches for Git

https://ataraxy-labs.github.io/sem/
2•rs545837•10h ago•1 comments

Show HN: A password system with no database, no sync, and nothing to breach

https://bastion-enclave.vercel.app
12•KevinChasse•21h ago•16 comments

Show HN: FastLog: 1.4 GB/s text file analyzer with AVX2 SIMD

https://github.com/AGDNoob/FastLog
5•AGDNoob•12h ago•1 comments

Show HN: GitClaw – An AI assistant that runs in GitHub Actions

https://github.com/SawyerHood/gitclaw
9•sawyerjhood•21h ago•0 comments

Show HN: Gohpts tproxy with arp spoofing and sniffing got a new update

https://github.com/shadowy-pycoder/go-http-proxy-to-socks
2•shadowy-pycoder•13h ago•0 comments

Show HN: I built a directory of $1M+ in free credits for startups

https://startupperks.directory
4•osmansiddique•13h ago•0 comments
Open in hackernews

Show HN: MTXT – Music Text Format

https://github.com/Daninet/mtxt
124•daninet•2mo ago

Comments

yaoke259•2mo ago
pretty cool!
1313ed01•2mo ago
I like the idea overall. Looks like something that would be fun to combine with music programming languages (SuperCollider/Of etc).

Not so sure how human-friendly the fractional beats are? Is that something that people more into music than I am are comfortable with? I would have expected something like MIDIs "24 ticks per quarter note" instead. And a format like bar.beat.tick. Maybe just because that is what I am used to.

bonzini•2mo ago
It should be fine, but fractions (or both fractions and decimals) would be preferable in order to express triplets (3 over 2, effectively a duration of 0.3333...)
daninet•2mo ago
The library has MIT license, I would be more than happy to see people use it in different synths.

I'm planning to add support for math formulas in beat numbers, something like: "15+/3+/4" = 15.58333

soperj•2mo ago
> "15+/3+/4"

Can you explain how to read that? 15 plus divided by 3 plus divided by 4?

daninet•2mo ago
It's a shorthand for 15 + (1/3) + (1/4), but I'm still not settled on the syntax.
rock_artist•2mo ago
Hey, the idea is nice, It would be great to know what pushed you to start this format.

Also, any apps that uses it would benefit from being add to the repo assuring usability in addition to readibility.

daninet•2mo ago
My initial goal was to fix some mistakes in the MIDI files I recorded from my keyboard. I was also interested in making dynamic tempo and expression changes without dealing with complicated DAW GUIs.

Now I'm working on a synth that uses MTXT as its first-class recording format, and it's also pushing me to fine-tune a language model on it.

giladvdn•2mo ago
Probably stating the obvious here, but this would be a good way for an LLM to attempt to write or modify music.
gilrain•2mo ago
How does this compare to standard ABC? More capable, presumably, but a comparison would be useful.

https://en.wikipedia.org/wiki/ABC_notation https://abcnotation.com/

daninet•2mo ago
ABC notation is more oriented towards traditional sheet music, with regular note lengths, standard Western tuning and a simple, readable syntax. It isn't meant for playing back music that sounds good to the ear. It's hard to catch the nuances of a real human performance with it, but it works well as a lead sheet for musicians. Its expressive marking are relatively limited and interpreted subjectively.

MTXT focuses on editable recordings of live performances, preserving all of those tiny irregularities that make the music human. It can represent arbitrary timings, subtle expressive variations and even arbitrary tuning systems. MTXT can also capture transitions like crescendos and accelerandos exactly as they happened.

intrasight•2mo ago
I think that for completeness it needs looping and conditional constructs
dghf•2mo ago
Similar things:

* Perl MIDI::Score -- https://metacpan.org/pod/MIDI::Score

* Csound standard numeric scores -- https://csound.com/docs/manual/ScoreTop.html

* CsBeats (alternative score language for Csound) -- https://csound.com/docs/manual/CsBeats.html

bonzini•2mo ago
Lilypond, too. Though it needs a full scheme interpreter to evaluate macros (provided by both the system and the user), it can emit midi files.
ramses0•2mo ago
Lilypond isn't well-known enough!

https://en.wikipedia.org/wiki/LilyPond#Integration_into_Medi...

https://www.mutopiaproject.org

https://lilypond.org/text-input.html

     \relative c' { 
        \key d
        \major
        fis4 fis g a
        a g fis e
        d d e fis
        fis4. e8 e2
     }
...but why is it so complicated? A novice interpretation of "music" is "a bunch of notes!" ... my amateur interpretation of "music" is "layers of notes".

You can either spam 100 notes in a row, or you effectively end up with:

    melody   = [ a, b, [c+d], e, ... ]
    bassline = [ b, _, b,     _, ... ]
    music = melody + bassline
    score = [
       "a bunch of helper text",
       + melody,
       + bassline,
       + page_size, etc...
    ]
...so Lilypond basically made "Tex4Music", and the format serves a few dual purposes:

Engraving! Basically "typesetting" the music for human eyeballs (ie: `*.ly` => `*.pdf`).

Rendering! Basically "playing" the music for human ears (ie: `*.ly` => `*.mid`)

Librarification! Basically, if your music format has "variables" and "for-loops", you can end up with an end score that's something like: `song = [ intro + chorus + bridge + chorus + outro ]`, and then not have to chase down and modify all the places you use `chorus` when you modify it. (See this answer for more precision: https://music.stackexchange.com/a/130894 )

...now imagine doing all of the above for multiple instruments and parceling out `guitar.pdf`, `bass.pdf`, `drums.pdf` and `whole-song.pdf`

TL;DR: Music is haaard, and a lot closer to programming than you think!

sporkl•2mo ago
Lilypond is the only music engraving system I'm aware of that can handle polytempo scores. The TEX-ness really comes in handy.
vessenes•2mo ago
Cool. My one concern with this is that it has no horizontally scannable note/chord mode. It’s super common for humans to read a sequence of notes left to right, or write it that way, but it’s also just more efficient in terms of scanning / reading.

Can I suggest a guarded mode that specifies how far apart each given note/chord is by the count, e.g.

  #1.0:verse1 
  Am - C - G - E - F F F F
  #
You could then repeat this or overlay a melody line like

  #0.25:melody1
  C4 - C4 - C4 D4 C4 - D4 - D4 - D4 E4 D4 -
  #
Etc. I think this would be easier to parse and produce for an LLM, and it’s would compile back to the original spec easily as well.
daninet•2mo ago
I considered it but decided against it in the first version, because specifying note durations is too tricky. It was more important to get the .mid -> MTXT conversion and live-performance recording working, where notes usually have irregular note lengths. Representations like "C4 0.333 D4 0.333 E4 0.25" feel too hard to read.
Grom_PE•2mo ago
This made me remember old set of tools called mtx2midi and midi2mtx, I used them to edit some midi files while making sure I'm not introducing any unwanted changes. While roundtrip output was not binary identical, it still sounded the same.

Looks like MTXT tool here does not quite work for this use case, the result of the roundtrip of a midi I tried has a segment folded over, making two separate segments play at the same time while the total duration got shorter.

https://files.catbox.moe/5q44q0.zip (buggy output starts at 42 seconds)

daninet•2mo ago
Thank you, I will have a look. I consider it important to have the round trip conversion working seamlessly.

I created an issue here: https://github.com/Daninet/mtxt/issues/1

cestith•2mo ago
It reminded me of ABC and the tools abc2midi and midi2abc.
lokar•2mo ago
I have been using:

https://www.vexflow.com/

Which has a text format, and typesets it for you nicely.

xrd•2mo ago
I've been spending the last week casually looking at strudel.cc.

They have a notation that looks similar (basically a JavaScript port of the Haskell version).

I like this, but I'm curious why I would want to use this over strudel. Strudel blends the language with a js runtime and that's really powerful and fun.

throw7•2mo ago
It makes no sense to design for llm's. Do what makes sense for the reader and forget that llm's exist at all.
amingilani•2mo ago
What prompted this and why does it not?
badlibrarian•2mo ago
It's not the 19th Century. You don't need to punch holes in cards to help the machine "think" any more.
otabdeveloper4•2mo ago
> You don't need to punch holes in cards to help the machine "think" any more.

That's literally what "prompt engineering" is, though.

badlibrarian•2mo ago
"Transpose this MIDI file down a third" requires neither a specialized data format nor fancy prompt engineering. ChatGPT asked: "A) Major third up (+4 semitones) or B) Minor third up (+3 semitones)" then did it.
squeaky-clean•2mo ago
I still don't understand how this or the top level comment are related to the post.

I also don't get how you can claim we don't have to 'punch holes in cards to help the machine "think"', and also mention a MIDI file in your next comment. MIDI is much closer to punch cards than the proposed file format in the post.

jan_Sate•2mo ago
Obligatory xkcd: https://xkcd.com/927/
matheusmoreira•2mo ago
To me it seems like files could get hard to understand if events that happen simultaneously aren't horizontally lined up like this:

  2.0 voice1 | voice2 | ...
Like a text version of old school tracker interfaces:

https://youtu.be/eclMFa0mD1c

  POS | TRACK #1 | TRACK #2 | ...
HelloNurse•2mo ago
Aren't the notes adjacent enough on consecutive lines?

  2.0 note Cmaj7 ch=1 
  2.0 note D ch=1 
  2.0 note C dur=0.15 ch=2
  2.1 note C ch=2
  2.1 note Cmaj ch=1
matheusmoreira•2mo ago
Imagine there are four, eight, maybe dozens of voices being mixed together in a track. Could get unwieldly.
daninet•2mo ago
That's why I decided to allow arbitrary order within the file. In this way you can group notes by instruments and the parser will deal with reordering them.

I also plan to create a flag for the CLI tool that reorders the lines within the mtxt file in such way, that notes are grouped by instruments.

jasonjmcghee•2mo ago
This would lend itself well to a live-coding/live-music experience.

I played around with a similar idea on my own (very simple / poor) text music environment:

https://github.com/jasonjmcghee/vscode-extension-playground?...

in the middle of making an extension to allow making vs code extensions live because I wanted a faster development feedback loop.

chaosprint•2mo ago
Some simple thoughts:

I feel that one challenge of programming languages is how to remember these rules, formats, and keywords. Even if you're using familiar formats like YAML or JSON, how do you match keywords?

When developing Glicol (http://glicol.org/), I found that if it's based on an audio graph, all node inputs and outputs are all signals, which at least reduces the matching problems. The remaining challenge is ensuring that reference documentation is available at the minimal cost.

formula1•2mo ago
This is pretty neat

I'm wondering if it can be used alongside strudal https://strudel.cc/ Either mtxt => strudal or strudal => mtxt

Heres strudal in action https://www.youtube.com/shorts/YFQm8Hk73ug

usrusr•2mo ago
Count me in as another one with a longstanding mostly dream project aiming for human enjoyable notation grammar.

For me it was coming from tracker notation (buzz), where i was wildly underwhelmed by all that whitespace for timing (well, empty cells for timing) and the lack of parameterizable macros. A seriously underexplored field, perhaps because almost everybody who ever started got pulled in by the lure of textually defined synthesis.

chrisjj•2mo ago
Solved 40yrs ago. AMPLE.

http://www.colinfraser.com/m5000/ample-nucleus-pg.pdf

For macros, see:

https://www.retro-kit.co.uk/user/custom/Acorn/3rdParty/Hybri...