What I really miss in DAWs is a drum arranging tool that goes beyond scores or xoxo grids. Those are good for editing patterns in atomic ways, but I'd love something to quickly record new patterns played on drum pads on the fly, with arbitrary duration, create a new pattern that inherits parts of the one I just recorded (to make variations and fills) just by hitting one key and/or sending a MIDI note from a controller, etc. Then after having a good number of patterns, I'd like something that shows them as nodes on screen so that they can be connected dynamically according to a predefined flow with possible variations triggered by MIDI notes (pedal switches) during live performances so that the flow can be altered either by prolonging/shortening a series of patterns, jumping here and there based on conditions, but the visual node representation would be vital to have a quick feedback that shows what is going to happen say 5 measures from now, for example by highlighting the nodes and flow that will be followed under the present conditions.
In the mid-late 2000's, Ardour (and a couple of other DAWs) had support for branching undo/redo histories.
We (Ardour) abandoned it, because the universal experience of non-programmers was that they had no idea how to even begin to use this sort of feature. The majority of DAW users don't come ready to deal with the complexities of a branching workflow, or even a desire to learn it.
There is at least one band out of Madison, WI that uses/used git with Ardour during the height of the pandemic to facilitate remote collaboration on new pieces. They gave a talk (and played) at the Ubuntu Summit in Prague last year.
Logic Pro X is the DAW I'm most familiar with and while not "AI", it's "Drummer" plug-in is uncannily good. So good it's indistinguishable from AI. I want more of that. Give me "Bass Player" and "Keyboardist" and "Guitarist", etc, with all the options that "Drummer" currently has, to select style/genre, kit sound, etc.
Another wish list item: Let me point the DAW to a 4/8/16 bar section of multitrack original music I've created, and suggest n number of directions to take it, spitting out each of the individual instruments on their own tracks, so I can mix/match/edit. My imagination is limited; that's where I'd like AI to help.
I'd be happy too,it's mostly templates: project templates, individual fx presets, fx chain templates for corrections, sweetening and mastering, export/render prsets, filename templates, And lots of keystroke macros that help me speed up my work. Things like specific keystrokes for punch and roll, quick edits and ripple delete. It's an amalgamation of lots of small optimizations. Reaper is also really good at UI customization, so you can hide grids, measures ,snapping, and really optimize things. ChatGPT is also reasonably good at writing Lua scripts for reaper called ReaScript that can leverage the API for automations more complex than what you can do with SWS additions to the immense actions list. If you have something specific, feel free to reach out directly. I love this stuff.
Maybe, but "photographers" aren't really a collective... or too loose a collective to have foresight, interests and such.
The credit industry, traditionally, has a cascade of debt collection tiers. Once one tier fails to collect, they'll sell on the debt. The value of the debt (asset, to the collector) decreases drastically as we travel down the tiers. The "quality" of collectors also decreases. Business models that depend on illegal practices, betting on inadequate enforcement. Trial preparations that depend on 99% certainty of defendant not showing up. Most of the debt might be arbitrarily imposed interest and fines to nonresponsive "clients." The lawyer present may not have paperwork, or even know the companies' originally owed.
Financial assets like bad debt portfolios scale and bundle wonderfully, so there's no floor. There are multi-million dollar packages out there selling for $1000. An enterprising individual might take a blind chance. Apply creative means of collecting 1.3% of total debt. Maybe you offer 90% settlements. Maybe impose 500% fees and sell on. Maybe you specialise in deceased estates, acquire high morbidity debtor lists, and use systemic timing to advantge. Maybe you rebunde such that specialists can have a crack.
Anyway... At the copyright trolling end of this game, I'd make a distinction between "photographers," "rights holders" and the "copyright biz." What some shady lawtech startup does to monetize a copyright portfolio owned by their pay-per-performance client... "Photographer" is not really an active category within this structure.
I spent long enough getting tired of routing low impact traces that I actually learned to use the autorouter.
And I mean *learned* because it was not as simple as clicking a button.
Using it right means dropping down keepouts over sensitive areas so that the autorouter knows to stay away -- you know it, but it has no way to. It means placing vias to a ground plane next to every ground pin so that it doesn't try to deal with top layer ground planes breaking. It means telling it how much to penalize a trace for being routed on the power plane layer or the ground plane layer. [and on]
It's a super useful tool -- if you are careful with it like you should be with, well, chatgpt. Give it all the information you know it needs to know, patiently and quantitatively, and sure it'll find a reasonably optimal solution. You just have to tune it as well as you tuned yourself.
[edit: and you can do it in the reverse order for nasty piles of spaghetti nets that you can't smooth out with part placement, to get hints on where you'll have to run busses later so that you leave room -- but always route the sensitive traces first]
Its not the connection of pins that makes PCBs so hard.
Its the random creation of antenna that suddenly throws your electrons off the board and suddenly causing nearby traces (to also turn into antenna) to get crosstalk leading to failure. Or throwing your electrons off the board and failing EMI regulations.
With 1ns rise/fall times on typical microcontrollers (even a 4MHz ATMega328 / Arduino), an antenna can be inadvertently created with just a 75mm trace. With a faster chip, you could have antenna at 25mm or even shorter traces.
-----------
PCB board design today is about understanding the physical attributes of the PCB: how the stackup causes your board to act like a capacitor (and therefore a source of voltage when the bulk / decoupling capacitors run out of energy). Seriously, this is called "PDN" or power-distribution network. You turn Layer2 into a ground-plane and add a plane to Layer3, calculate the dielectric thickness and estimate the amount of latent capacitance you get between a 30mm^2 ground vs power plane seperated by 0.1mm of dielectric.
And not only do you calculate this, you *take advantage of it* to reduce high-frequency (ie: 1GHz+) power-delivery issues.
Which could happen as low as ~100MHz in practice, because its more about rise/fall times than it is about the actual clock speeds.
--------
There are two kinds of PCB designers. Those who know that they're designing an antenna... and those who do not know they're designing an antenna. The PCB itself is an antenna and you need to design it in a very peculiar manner to minimize radiation. You can't just guess-and-check this (I mean, I guess with enough time/money you can guess/check... but ideally you lay things out with a mental simulation of inductances, eddy currents, an idea of electric fields and return paths of your signals across low-through-high frequencies)
For those who enjoy reading sf short stories and wonder about the implications of recording one's entire life, I can recommend the remarkable short story 'The Truth of Fact, the Truth of Feeling' by Ted Chiang.
I wonder if one could just replace the LED with a UV one, depending on the tolerances this kind of detection may still work while being visibly "off". :/
LEDs can effectively be used as light sensors when wired in reverse - About a decade ago there was a post where someone turned an 8x8 LED matrix into a touch sensor.
I work in the optical industry. I do R&D/quality control for a lens manufacturer and agree Luxottica is an awful company, but your comment is way off base. It's actually quite wrong.
Your "zyl" acetate frames aren't higher quality. Modern acetate is stronger, lighter, less brittle, less subject to warping from temperature change, and more resistant to UV damage which impacts brittleness and color. 40 years of material science progress. No one in the industry would say older acetate is better. It's worse in every way especially because yours are old. They're breaking down.
People don't wear glass lenses anymore for a reason. They are heavy and the only advantage over plastic is less chromatic aberration which is a non issue unless you are comparing to an extreme prescription using high-index plastic. They are also fairly dangerous compared to plastic due to the way they shatter. They fog up more easily. Again, 40 years of material science.
Additionally, there are no low optical-quality plastic lens blanks. This is a solved problem. The only defects you'll get in lens blanks are bubbles and these won't make it through production. What happens after a manufacturer grinds the lens out is a different story but I can also tell you that their lens surfacing is not low quality by any means.
Your hinges aren't any better and get loose over time. You can't actually use these for 40 years, they will wear out too and are harder to replace. Spring loaded hinges are lighter and reduce strain on both the frames and the wearer. I know what they use, they aren't cheap, and are high quality.
I do agree with your point on the branding.
The optimization for optics is all about weight. Your old frames and lenses aren't better because they're heavier, they're worse. As well as being more brittle and shatterable. It's like pining for the old heavy golf clubs made of wood and iron or all steel cars with V8 engines. Yeah, they're heavier! But they're worse in every way.
I will also say that you should buy frames because you like the frames. If you want great lenses, you just get them made. You shouldn't expect high-quality prescription lenses from a frame manufacturer, that's what your optometrist is for. I buy cheap frames all the time and pop in whatever I want.
You may have a bit of a point if you are talking moderate to high prescription ordered from Ray-Ban, but if you are talking about their non-prescriptive sunglasses, you're just yelling about all the wrong things.
Edit: typo and swapped in "surfacing" rather than "production" for clarity.
Something cool however is you can actually build the open-source WebKit browser engine yourself and make closed-source Safari use your locally built version.
Yeah, it even goes down to the physics of harmonics.
There's this absolutely wild video by Adam nealy about how polyrhythms are actually cords. (It's very approachable if you know just a smidgeon of music theory). Highly recommend Adam's channel if you're interested in music/music theory.
https://youtu.be/JiNKlhspdKg?si=J7eaB1xH4Eo27cC9
I found that statement to be the most informative part of the document. It made me stop and consider it as, yes, I wouldn't have believed it until it was so explicitly pointed out.
Science is full of authors supposing what other people believe and then surprising them with their findings.
"Remarkably", "perhaps unintuitively", "convention states", "a striking consequence", "a surprising result", …
You may not believe this, but here's Feynman making assumptions about what other people think:
Because atomic behavior is so unlike ordinary experience, it is very difficult to get used to, and it appears peculiar and mysterious to everyone—both to the novice and to the experienced physicist. Even the experts do not understand it the way they would like to, and it is perfectly reasonable that they should not, because all of direct, human experience and of human intuition applies to large objects.
Here's Newton using "which is an erroneous Supposition", his version of "you may not believe this":
Are not all Hypotheses erroneous, in which Light is supposed to consist in Pression or Motion, propagated through a fluid Medium? For in all these Hypotheses the Phaenomena of Light have been hitherto explain'd by supposing that they arise from new Modifications of the Rays; which is an erroneous Supposition.
As Albert Einstein wrote:
The whole of science is nothing more than a refinement of everyday
thinking. It is for this reason that the critical thinking of the physicist cannot
possibly be restricted to the examination of the concepts of his own specific
field. He cannot proceed without considering critically a much more difficult
problem, the problem of analyzing the nature of everyday thinking.
How can you do that without making assumptions about what other people think?
The other comments are talking about just Prolog in general, but I have to say, The Power of Prolog is a rather excellent series of tutorials. The videos are worth watching too, Markus does a great job of capturing the viewer's/reader's interest.
> "The Art of Prolog" and "The Craft of Prolog" were also two of the better programming books I have read in my life.
IMHO, The Art of Prolog is along with Concepts, Techniques, and Models of Computer Programming, Paradigms of AI Programming, and Structure and Interpretation of Computer Programs the canon of dynamically typed programming. The Craft of Prolog is also exceptional but has some chapters that are too specific to programming in old Prolog systems and thus outdated.
Lots of Prolog ideas live in answer set programming and Datalog. The latter is fantastic to build state-of-the-art static analyzers [1].
There's nothing that offers all these features and is free. But if you'd like to try Orion browser by Kagi [1], you can install uBlock Origin and many other web extensions for it on Mac, iOS and iPadOS. A paid alternative that is similar (at least for blocking specific elements) is AdGuard [2].
Has anyone figured out how to pair magit with git-sim (https://github.com/initialcommit-com/git-sim) so that you can use magit's controls but then get a picture of what you're about to do before you do it?
Daniel Mendler (minad on GitHub) et al. have some seriously awesome packages. The latest one I’ve fallen in love with that I haven’t yet added to bedrock is Jinx [1]: a fast spell-checker that supports multiple languages in the same buffer, checks spelling of words based off of font-lock class (read: spell checking in doc strings and comments but not in actual code) and a slick interface that makes correcting words a breeze.
I’m so happy to hear you’ve found some helpful things from bedrock! Happy hacking!
This will underline syntax errors for you. (It'll use the language server as a backend once lsp-mode runs.)
Next we install and set up "company-mode" for simple autocompletion. Basically, it starts the (minor) company mode after starting "lsp-mode", sets up key bindings and reduces the delay to zero:
This stuff is for basic JSX/TSX support you'll need to work on React projects. "web-mode" is old-school but it still works for me quite well. Since Emacs 29 you can use "typescript-ts-mode" instead but I haven't tried it out yet:
(use-package web-mode
:config
;; plain HTML may also contain JS
(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))
;; JSX
(add-to-list 'auto-mode-alist '("\\.jsx\\'" . web-mode))
; TSX
(add-to-list 'auto-mode-alist '("\\.tsx\\'" . web-mode))
;; web-mode overrides these key strokes with "link" and "reload"
;; which I *never* needed. But I love compile mode:
:bind (:map web-mode-map
("C-c C-l" . 'compile)
("C-c C-r" . 'recompile)))
The next stuff is for setting up lsp mode integrating the various language modes and company mode in a single user experience:
(defun gernoti/lsp-mode-setup ()
"Gernot's Emacs: My personal modifications to lsp mode."
(setq lsp-headerline-breadcrumb-segments '(path-up-to-project file symbols))
(lsp-headerline-breadcrumb-mode)
(lsp-treemacs-sync-mode 1))
;; I am still using "web-mode" for react projects. The function
;; activates lsp mode only if the file actually contains
;; javascript/typescript (IIRC it'll also work for TSX):
(defun gernoti/lsp-deferred-maybe-jsx ()
(if (string= web-mode-content-type "jsx")
(lsp-deferred)))
(use-package lsp-mode
:commands (lsp lsp-deferred)
:hook
(lsp-mode . gernoti/lsp-mode-setup)
(js-mode . lsp-deferred)
(typescript-mode . lsp-deferred)
;; We only turn lsp-mode on if web-mode runs in JSX or TSX mode.
(web-mode . gernoti/lsp-deferred-maybe-jsx)
:init
(setq lsp-keymap-prefix "C-c l") ;; Or 'C-l', 's-l'
:config
;; You want this if you want to discover all lsp mode's goodies.
;; Though I found I actually don't use many features, really.
(lsp-enable-which-key-integration t))
At first startup it'll download and run the default js/ts language server. It seems to be working well for me.
You definitely want the "lsp-ui" extensions for jumping around in definitions, too:
(use-package lsp-ui
:after lsp-mode
:hook (lsp-mode . lsp-ui-mode)
:custom
(lsp-ui-doc-position 'bottom)
;; remap "M-." and "M-?" to point to the nice looking lsp-ui
;; replacements
:config
(define-key lsp-ui-mode-map [remap xref-find-definitions] #'lsp-ui-peek-find-definitions)
(define-key lsp-ui-mode-map [remap xref-find-references] #'lsp-ui-peek-find-references))
You might enjoy my project called sndkit [0]. It's a collection of DSP algorithms implemented in C, written in a literate programming style, and presented inside of a static wiki. There's also a tiny TCL-like scripting language included that allows one to build up patches. This track [1] was made entirely using sndkit.
If you compare codebases, SuperCollider is definitely the more "modern" of the 2. SC is written in a reasonably modern version of C++, and over the years has gone through significant refactoring. Csound is mostly implemented in C, with some of the newer bits written in C++. Many parts of Csound have been virtually untouched since the 90s.
Syntax-wise, Csound very closely resembles the MUSIC-N language used by early computer musicians in the 60s. "Trapped in Convert" by Richard Boulanger was written in Csound in 1979, and to this day is able to run on the latest version of Csound.
Both Csound and SC are both very capable DSP engines, with a good core set of DSP algorithms. You can get a "good" sound out of both if you know what you are doing.
I find people who are more CS-inclined tend to prefer SuperCollider over Csound because it's actually a programming language you can be expressive in. While there have been significant syntax improvements in Csound 6, I'd still call Csound a "text-based synthesizer" rather than a "programming language".
That being said, I also think Csound lends itself to those who have more of a formal background in music. Making an instrument in an Orchestra is just like making a synthesizer patch, and creating events in a Csound score is just like composing notes for an instrument to play.
FWIW, I've never managed to get SuperCollider to stick for me. The orchestra/score paradigm of Csound just seems to fit better with how I think about music. It's also easier to offline render WAV files in Csound, which was quite helpful for me.
See how DMARC, SPF, and DKIM work interactively - https://news.ycombinator.com/item?id=29869266 - Jan 2022 (108 comments)