tone
Smalltalk
tone | Smalltalk | |
---|---|---|
15 | 24 | |
380 | 260 | |
- | - | |
4.2 | 0.0 | |
13 days ago | almost 3 years ago | |
C# | C++ | |
Apache License 2.0 | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tone
- Tone: Cross platform audio tagger and metadata editor
- BATCH Merging and converting solution for 3.5 TerraByte Audiobook Library?
-
File tagging and encoding
Have you tried using ABP's own metadata tool and then using that to embed the metadata? They use tone. Not sure if it will help you with the m4bs containing mp4 streams - I've never tried dealing with that.
-
Show HN: Tone 0.1.2 – hackable cross platform audio tagger
[2]: https://github.com/sandreas/tone#custom-scripted-taggers-experimental
- Ask HN: What interesting problems are you working on? ( 2022 Edition)
- Tone v0.0.9 – hackable audio tagger with script engine
-
Show HN: Tone v0.0.8 – hackable console audio tagger – feedback for new version?
Feedback is highly appreciated.
[1]: https://github.com/sandreas/tone
-
Ask HN: How do you search for products / apps given a list of requirements?
- LG G5 H850 (optional with Bang & Olufsen Hifi-Plus module) + Audiobookshelf + Substreamer
Let me cite my comment from https://news.ycombinator.com/item?id=32042780:
I use m4b-tool[1], tone[2] and audiobookshelf[3] together with an LG G5 H850 smartphone[8] with Bang & Olufsen Hifi-Plus Module for Audio Only and I am pretty happy with this config. For Music I use Navidrome[5] and Substreamer App[7]. Maybe I'll try out Jellyfin[4] or maybe Plex[6], but I really don't wanna go closed source.
I also thought about writing something self hosted in C# to have ONE solution for audiobooks, podcasts and music and started a small private project, but this will take a while until it is ready to release something...
You may ask: Why an LG G5 H850? Well, its relatively small and cheap (about 50 - 80 bucks used) it has an audio Jack, USB-C, you can change the battery, it can hold up to 2TB microSD storage, has an HiFi Plus module for audio enthusiasts and a descent screen. Besides that it can run lineage os...
Note: I'm the author of the first two projects :-)
[1]: https://github.com/sandreas/m4b-tool
[2]: https://github.com/sandreas/tone
[3]: https://github.com/advplyr/audiobookshelf
[4]: https://jellyfin.org/
[5]: https://www.navidrome.org/
[6]: https://www.plex.tv
[7]: https://substreamerapp.com/
[8]: https://en.wikipedia.org/wiki/LG_G5
- Ask HN: Is there a Calibre equivalent for Audio books?
-
Show HN: Tone v0.0.4 – hackable command line audio tagger – any feedback?
> Very neat, I love it, I used to have a tool to do this but it's been ages and is now unmaintained.
Thank you :-) Glad to hear that.
> Just be sure to do input santization, since if someone else uses your code it could go from a very cool project to a backdoor that ends up on the front page for all the wrong reasons :-)
Good point. I think that the "scriptable" part needs special care regarding security issues, as well as the metadata-readers and JSON parsers. I don't want that to bite me in the neck because of a "malicious" file. Maybe it is worth to provide a responsible disclosure email and make a plan for security issues.
See https://github.com/sandreas/tone/issues/12
Smalltalk
-
The Xerox Smalltalk-80 GUI Was Weird
> * I'm assuming the "by the Bluebook" implementation they're referring to is this: *
Or this: https://github.com/rochus-keller/Smalltalk/
-
The seven programming ur-languages
> message passing and late binding combined. "Duck typing" is seriously diminishing it
Actually even ST-72 made synchronous calls, but at least with a token stream interpreted by the receiving object (thus at least a bit of "message passing"). In ST-76 and later versions "message passing" is just nomenclature used by the ST folks for something that is just ordinary method dispatch and call (if you have doubts, you can analyze the innards of the ST-80 VM yourself e.g. with these tools: https://github.com/rochus-keller/Smalltalk ). The major difference is the dispatch based on signature hash (similar to e.g. Java interface method calls) instead of static positions, which enables late binding (at the expense of performance); and since everything including ordinary integers derive from Object, all values and objects are subject to dynamic method dispatch; it's no coincidence that Smalltalk was the first language to allow real duck typing. The unification of scalar values and references, dynamic typing, and likewise the minimal syntax where control structures are implemented by means of runtime constructs were already known from Lisp; also closures (i.e. ST blocks) were already known before they were added to ST.
-
my programming language
Here is one even in Lua: https://github.com/rochus-keller/Smalltalk/
-
LeanQt – GUI is here, Widgets are near
> 10kSLOC for the entire universe
It is the nature of idealists that they see the world idealized. Smalltalk-80 itself has nearly 30 kSLOC; it's just more difficult to count, but I wrote tools which can do it (https://github.com/rochus-keller/Smalltalk/).
-
50 years Smalltalk anniversary celebration at Computer History Museum
Why should "perform" be a message? It's just a method of the Object class, which is the superclass of Integer. You can use my St80ClassBrowser and St80ImageViewer (see https://github.com/rochus-keller/Smalltalk/) to check the ST-80 source code and image if you want; there is a list of all selectors and the classes which implement them. Going up the class hierarchy when doing virtual method dispatch is a fundamental concept of all object-oriented implementations; in contrast to e.g. C++ this can be done dynamically at runtime in Smalltalk or Java (which is also called late binding). In contrast to Smalltalk in Java the class loader verifies that a method for the referenced signature actually exists; in Smalltalk you can try to dispatch any signature which can result in a call to the doesNotUnderstand method of the Object class.
-
A History of Lua
> a large lua game code base, over 4000 files, 1.5 million lines of code
Interesting; how do you manage to keep consistency? Do you have special tools to e.g. detect inadvertent global variables? I once wrote a Smalltalk VM in Lua (https://github.com/rochus-keller/Smalltalk/blob/master/Inter...) which is a much smaller code base but even with this size I quickly would have lost track of e.g. scopes and names without tools I had to write myself (https://github.com/rochus-keller/LJTools).
-
Smalltalk Squeak 6.0
It is true, that there is uncollected garbage in the original Xerox ST80 image. I've built some tools to analyze the image and also a VM which can be interrupted at any time to analyze the current state of the image (see https://github.com/rochus-keller/Smalltalk).
There are two zombie processes (OID 6662 and 19ba). There are also a couple of BlockContext and MethodContext which have a nil sender and a reference to an unknown method, but which are still referenced from somewhere (i.e. the collection is prevented even if it is not implemented by reference counting. E.g. OID 79a2 of class BinaryChoice. I have a full list if anybody is interested.
-
Celebrating 50 Years of Smalltalk
Integers are actually directly stored, i.e. without boxing/indirection by a pointer. The Smalltalk object memory doesn't have pointers in the C sense, but rather indices into the object table. If you're interested I've implemented a couple of tools to study the original Smalltalk-80 VM, see https://github.com/rochus-keller/Smalltalk/.
-
Ask HN: Admittedly Useless Side Projects?
- https://github.com/rochus-keller/Smalltalk/ Parser, code model, interpreter and navigable browser for the original Xerox Smalltalk-80 v2 sources and virtual image file
- https://github.com/rochus-keller/Som/ Parser, code model, navigable browser and VM for the SOM Smalltalk dialect
- https://github.com/rochus-keller/Simula A Simula 67 parser written in C++ and Qt
> do you regret those endeavours?
No, not in any way; the projects were very entertaining and gave me interesting insights.
- Minimalism in Programming Language Design
What are some alternatives?
m4b-tool - m4b-tool is a command line utility to merge, split and chapterize audiobook files such as mp3, ogg, flac, m4a or m4b
Oberon - Oberon parser, code model & browser, compiler and IDE with debugger
pegao - Pegao is a community about lists of links on topics of interest.
Lua - Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.
audiobookshelf - Self-hosted audiobook and podcast server
Som - Parser, code model, navigable browser and VM for the SOM Smalltalk dialect
atldotnet - Fully managed, portable and easy-to-use C# library to read and edit audio data and metadata (tags) from various audio formats, playlists and CUE sheets
are-we-fast-yet - Are We Fast Yet? Comparing Language Implementations with Objects, Closures, and Arrays
Simula - A Simula 67 parser written in C++ and Qt
squeak.org - Squeak/Smalltalk Website
Jellyfin - The Free Software Media System
zigbee-lua - Zigbee coordinator and tools for LuaJIT