rhizome
mb-sound
Our great sponsors
rhizome | mb-sound | |
---|---|---|
8 | 5 | |
814 | 17 | |
- | - | |
1.8 | 5.6 | |
almost 3 years ago | 9 months ago | |
Ruby | Ruby | |
MIT License | BSD 2-clause "Simplified" License |
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.
rhizome
-
YJIT: Building a New JIT Compiler for CRuby
https://github.com/chrisseaton/rhizome. Relevant demo is https://github.com/chrisseaton/rhizome/blob/main/experiments/assembler.rb.
-
Tenderjit – A JIT for Ruby Written in Ruby
There was actually an existing, similar in concept, Ruby JIT, Rhyzome: https://github.com/chrisseaton/rhizome.
It's good to see (IMO) the development of a JIT in a strict sense. I'm personally skeptical about the current approach (invoking a compiler separately).
On the other hand, it's important to know that JITs may take a long development time to be performant, and that they also complicate the performance profile of a virtual machine.
-
Let's write a compiler, part 5: A code generator
Lots of compiler tutorials are like this - there's very little out there to explain how compilers really work.
This is my effort - trying to show genuine data structures and processes.
- Thoughts about Intermediate representations
mb-sound
-
Why Can’t You Design Noise in Frequency Space?
You can try the synthesizer and other audio code if you're using Linux.
Here's an earlier version of the synthesizer (licensed under AGPL3). The MIDI CCs for controlling different parameters are listed in the source code. You'd want to clone the repo, run through the installation instructions in the mb-sound repo, do a bundle update mb-sound, then run bundle exec bin/complex_synth.rb. https://github.com/mike-bourgeous/mb-surround/blob/3823de44a...
Here's the core sound repo (licensed under BSD) with some examples for getting started: https://github.com/mike-bourgeous/mb-sound
I don't plan on making the visualizations available, in part because the system is too convoluted and they probably only work in my specific environment.
-
Tenderjit – A JIT for Ruby Written in Ruby
Yeah, here's my main sound repo: https://github.com/mike-bourgeous/mb-sound
There's also an FFI wrapper for jackd: https://github.com/mike-bourgeous/mb-sound-jackffi
I'm certain there are still improvements that could be made to the APIs and to performance, so I'm not currently releasing these on rubygems.
-
Ask HN: How to get started with audio programming?
Edit: My goal is to make a mini-synth which takes input from the computer keyboard.
If you are a Ruby programmer, you could use this rubygem I wrote: https://github.com/mike-bourgeous/mb-sound
A video about using that gem to make a synthesizer: https://m.youtube.com/watch?v=aS43s6TWnIY&feature=youtu.be
Part of a long-running experiment of mine to make educational videos about sound, which I hope might help you on your audio programming journey: https://www.youtube.com/playlist?list=PLpRqC8LaADXnwve3e8gI2...
There have been recent posts to HN about the difficulty of reading key-up events from the terminal. I used MIDI and a separate MIDI keyboard app for my video demo.
What are some alternatives?
yjit - Optimizing JIT compiler built inside CRuby
zetasql - ZetaSQL - Analyzer Framework for SQL
sqlite-parser - JavaScript implentation of SQLite 3 query parser
grammars-v4 - Grammars written for ANTLR v4; expectation that the grammars are free of actions.
langjam
helm - Helm - a free polyphonic synth with lots of modulation
swifties - a custom language construction kit
tenderjit - JIT for Ruby that is written in Ruby
go-mysql-server - A MySQL-compatible relational database with a storage agnostic query engine. Implemented in pure Go.
JSqlParser - JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes. The generated hierarchy can be navigated using the Visitor Pattern
mb-sound-jackffi - An unstable Ruby FFI interface for the JACK Audio Connection Kit
sqlparse - A non-validating SQL parser module for Python