return to table of content

I need to grow away from these roots

semi-extrinsic
10 replies
20h26m

This person is also the creator of the marvellous "endless acid banger" which you can waste hours with in your browser, and which made me get my own physical 303 clone to start derping around with.

https://www.vitling.xyz/toys/acid-banger/

Also of note: all the demos open to a silent "click to start" screen, and all the autoplaying videos are muted by default even, like on TFA.

Tsiklon
5 replies
9h36m

This is a wonderful little toy. As an aside is it difficult to pick up and use a 303 with no prior synth experience?

bowsamic
3 replies
8h58m

I think the issue will be more the cost, they go for about 2500 to 3000 euros

But yes arguably synth experience won't even help, the 303 sequencer is very weird and unlike any other sequencer

speps
1 replies
8h10m

Behringer does really nice clones of these old synths, much more affordable (~120 EUR for this one): https://www.behringer.com/product.html?modelCode=P0DTD

semi-extrinsic
0 replies
2h23m

Yeah, I have a TD-3. It's by no means trivial to use for a novice, but there are some nice guides such as the one linked below. You have to get used to holding the internal state of the sequencer in your head during programming, as there is no display showing which step you are on etc.

And the time mode must be programmed separately, which on several occasions has left me scratching my head at why the thing makes no sound at all.

https://airainfo.org/files/TD-3-Programming.pdf

munificent
0 replies
8m

A new TB-03 from Roland, which is a digital clone but quite nice sounding, is only $400.

bloke_zero
0 replies
7h56m

If you're transcribing written music then it's fairly straight forward - you program the pitches in one round, press a button and input the note length values. If however you want to jam around like you might with any other seqencer driven synth I find it's too much to keep in your head so a pencil and paper with a 303 sequencer grid on it is pretty essential.

The Behringer lets you connect to an app via USB so you can program it that way too.

The sound engine is easy to use and the knobs encourage experimentation - the interaction of the filter, the envelope and the accent is where the fun is. And of course the slide!

Noumenon72
2 replies
14h20m

Neither of these pages show a "click to start" message for me, but they should. In TFA I had to hover over the "silent gif" to see a volume control, and in the acid banger I had written half of this comment before I figured out you could just click anywhere to unmute.

jacquesm
1 replies
12h43m

That's a browser thing. Thank the advertising industry with their auto-playing audio ads. To get rid of that browsers now require you to engage with a page before audio can be played.

lukan
0 replies
11h15m

"To get rid of that browsers now require you to engage with a page before audio can be played."

Where "engage" just means any UI event, so also a simple mousemove over the area.

joncrane
0 replies
2m

I love the key change button. What would make this a truly awesome DJ tool is if you could go BACK to some arbitrary pattern, rather than only going forward. Am I missing a button/option for that?

jameshart
9 replies
19h40m

Something fascinating about seeing a 'score' for generative music written out as a sort of specification like that.

There's enough detail there that you can take those instructions and reimplement your own version of it, and you'll end up with essentially the same 'piece of music', but certainly a different interpretation of it. Because while the score lays out some details precisely, it leaves other choices less clear. What does 'all inversions' really mean when enumerating chords? Does it include open, spread voicings? What durations should we choose from for our random waveforms? How short is 'short' when deciding to repeat? And of course, what wave synths should you use, and how should you modulate them?

All those are similar to the decisions a traditional instrumentalist makes when interpreting a sheet music score for performance - here, a generative music coder can follow this 'score' and produce a program that represents their own interpretation of the piece.

Coding it up in Sonic Pi (https://sonic-pi.net/) was a fun exercise, and I feel like I was able to produce something along the lines of what the composer intended. It carries the same kind of mood that the recording in the video has. But it's my own 'performance' of the work, if that makes sense (even if it's actually Sonic Pi 'performing' it at runtime...)

All of which got me thinking about the relationship more generally between specification, and implementation. Considering different programmers' implementations of algorithms as individual 'performances' of scores from the overall design - and then thinking about developers building elements of a larger system architecture as individual performers working to deliver their part of the performance as part of a band or orchestra. Some groups, maybe they're directed by a conductor-architect; others maybe are improvisers, riffing off one another and occasionally stepping up to deliver a solo. And some are maybe solid session performers, showing up and delivering strong but unflashy performances to a producer's specification.

So overall, a nice meditative coding exercise for a Sunday afternoon, and a shift in perspective. Thanks for sharing it.

sdenton4
3 replies
16h52m

A basic c maj chord is c4 f4 g4. Inversions move bottom notes to the top, like f4 g4 c5, or g4 c5 f5. They significantly change the flavor of the chord.

uwagar
0 replies
12h52m

i thot it was c4 e4 g4?

recursive
0 replies
13h47m

Pretty sure that's a C sus4

jameshart
0 replies
16h39m

Yes, those are 'closed' voicings of the basic inversions, though. What about f4 c5 g5? Still a C/F, but an open voicing.

I mentioned Sonic Pi in my post - it actually has a bunch of built in API support for this sort of thing.

Generating all the basic inversions of all those chords for all those root notes is as simple as:

    (note_range :A2, :D5).each { |root|
      [:major, :minor, :major7, :minor7].each { |chord|
        chord_size = chord(root, chord).to_a.length
      
        for i in 0..chord_size do
        
          the_chord = chord(root, chord, inversion: i)
        
        end
      }
    }
 
'the_chord' gets set to arrays of midi notes corresponding to every inversion of every chord.

jacquesm
1 replies
12h42m

It doesn't sound like there are open chords in there, just the ones where the notes follow each other immediately without any gaps.

jameshart
0 replies
4h8m

Right. But that's what you glean from listening to the performance. Not what you can gather from reading the 'score'.

xanderlewis
0 replies
18h30m

What does 'all inversions' really mean when enumerating chords? Does it include open, spread voicings?

I think it usually just means: take the chord in its ‘root position’, and take inversions (that is, sort of (up to octaves) cyclic permutations) of it. So it would be leaving out lots of those more open, sparse voicings.

vitling
0 replies
1h34m

I think you really picked up what I was trying to do with the score, glad it came through.

I had some feedback from a art curator about a previous piece of work that I was going to show (this one in fact https://www.vitling.xyz/welcome-to-tech-talk/ ), and she didn't really understand what was going on. After explaining what was happening and how it all works she told me "I love it now; but you're hiding all the interesting parts from the audience".

One of the interesting parts about generative art is that the "work" I do is really the ruleset/algorithm, rather than the audio or visuals that come out of it, so I always want to find a way to show what's happening 'inside the box' so to speak. Source code can be nice, but only for those who can read it, and the core idea often gets lost in boilerplate and technical weirdness. That's where I got to the idea of writing a score for it instead, which just lays out the basic premise of what's going on - enough to understand that what's being played is generative but not so much as to get lost in the detail.

joeblubaugh
0 replies
15h30m

One of my favorite procedural visual artists has a similar vagueness to his specifications that leads to a nice variation each time a piece is recreated: https://www.sfmoma.org/artist/sol_lewitt/ https://massmoca.org/event/walldrawing305/

krick
8 replies
14h47m

Can somebody recommend some music theory book/course for this algorithm or the one in https://www.vitling.xyz/toys/acid-banger/ to make sense? Obviously, there are some pretty simple rules to predict that something sounds alright, some more complicated ones, and baroque music is notoriously algorithmic. But I still have no clue.

I tried to research something across these lines before, and I cannot quite recollect what exactly was the problem with the books I came across on my own (I think it was mostly just too basic to be useful), but somehow I never got any "general" understanding of "how music works". Even though I've got some very basic solfeggio training long time ago (admittedly, I was too young to ask questions I now find interesting and understand what's the purpose of what we were doing there, but at least I can read the notation).

yobbo
2 replies
7h59m

If you don't play, I suspect it's like trying to explain Tetris to a blind person.

tazjin
1 replies
6h25m

Explaining Tetris to a blind person doesn't sound like an intractable problem?!

AlecSchueler
0 replies
4h23m

A better metaphor might be trying to explain to someone who can't hear why the word "barracks" sounds harsher to the ear than the word "mellifluous."

rogerclark
1 replies
12h40m

In order for it to fully make sense, you will need to study it from multiple angles. Hooktheory.com, books, and lots of YouTube videos will get you there over the course of 1-10 years. Ultimately, you won't understand music theory without trying to write a lot of your own music. It's like programming: you can read a book about JavaScript, but if you never wrote software and you never plan to, there's simply no way to actually understand the book.

An explanation of how this application might work (haven't verified from the source or letting it run long enough): let's say it chooses a subset of notes ("scale degrees") from a minor key, probably chosen at random. A subset of 5 or fewer notes from a scale (a pentatonic scale) will constrain the possible space of melodies so that most configurations will sound good. Even fewer and you get a more predictably pleasant (but perhaps less interesting) result. For instance, the notes that comprise the root chord will always sound good when played in any order. Acid lines typically suggest some kind of minor chord by playing an arpeggio (usually a repetitive melody consisting entirely of notes from a particular chord).

Also, a subset of notes from one scale are always going to be present in another scale. You can transition (modulate) from one scale to another by having a section use a shared subset of notes, then switching to the new one. In this manner, you can have a single piece of music traverse all possible scales (in acid techno, almost entirely minor scales).

jacquesm
0 replies
12h38m

Ultimately, you won't understand music theory without trying to write a lot of your own music. It's like programming: you can read a book about JavaScript, but if you never wrote software and you never plan to, there's simply no way to actually understand the book.

That's a great observation, thank you!

samvher
0 replies
4h36m

Yale has an online course "Listening to Music" that covers quite a bit of music theory. I quite enjoyed it: https://online.yale.edu/courses/listening-music

ghostpepper
0 replies
11h48m

It's not a typical intro to theory but the "pop psychology" book This Is Your Brain On Music by Daniel J. Levitin includes something like what you're asking for: What is pitch, why do our brains "like" certain combinations of pitches and dislike others, etc.

It's a fascinating book in its own right on a bunch of theories about the neurology of music but it includes a very basic introduction to theory at the beginning.

RugnirViking
0 replies
7h21m

Its very difficult to get into. I liken it most to maths, you simply cannot take something written for someone with a certain higher level of understanding than you currently have and expect to get much from it. You simply must go page by page slowly, deliberately, and humbly, taking the time to completely understand each term you come across (which will often require a several hour diversion, in which you come across more terms branching all the way down, etc). You can't skip over terms like "intervals", "locrian/lydian" and hope to understand them by osmosis.

blackqueeriroh
8 replies
22h16m

I need one of these now! How much to make me one?

hackernewds
4 replies
19h50m

money kills art

bickeringyokel
1 replies
17h43m

If only art killed money

jachee
0 replies
13h42m

Woodie Guthrie’s guitar was a machine that kills fascists.

uwagar
0 replies
13h3m

wish we cud do art in communist society

adzm
0 replies
15h13m

artists gotta eat

vitling
0 replies
1h50m

Not listed so far in replies to this question: "Contact the original artist and ask them if they'll sell it, or commission them to make another"

Hi, it's me, the original artist :-D and this thing is taking up a lot of space in my 1-room apartment.

I'm not sure if I would want to sell it or not, but I find it funny that the business bitches here are talking about costs to hire someone to clone it and/or set up a factory before suggesting to talk to the person who actually did it.

ulf-77723
0 replies
6h53m

I was also fascinated by the idea and thought to myself to build something similar.

I already got LEDs, except the wire and tubes. My LEDs are already in tubes (one can choose on Aliexpress).

I would take an esp32 and run WLED on it. LedFX also works with it, to illuminate according to sound. Not that fancy like addressing each pixel with your own rules, but nice enough to watch it for a while.

Without the pi but with the esp32 it’s about 70€ for the parts.

bigiain
0 replies
16h0m

Parts would be somewhere between $100 and $200.

Someone with the right hardware skillset could put one together in a weekend pretty easily, maybe 10-15 hours work or so. Skills include RaspberryPi experience, Arduino experience, integration between RasPi and Arduino, addressable LED strip driven by Arduino experience, assembly (both electronics/soldering and artistic construction/sourcing of an enclosure and the "pretty looking led strip in aquarium tube with wire stiffeners" bits).

Software is another skill required here, and for this you'll need both RasPi programming and Arduino programming, plus music specific knowledge and skills. That'll be a harder task to become or find someone with both skill sets. I'd expect top maybe be able to get the basic software for the RasPi/Arduino running in a weekend, but that iterating over configurations or "compositions" that look and sound interesting to be a long term ongoing project.

If you don't have all or some those skills, you may find people at a local hackerspace/makerspace who'll help you out with this things, but I'd expect it to take at least 5-10 times as long to build it yourself with volunteer help than it'd take someone who already has all those skills.

If you wanted to just commission someone to build/program one for you as a one off, I know a few people who do that kind of work, and I'd expect them to charge you $5k - $10k for it, if they're expected to provide some sort of warranty and ongoing support to you.

(If you wanted small run production of then, I'd guess at something like $100-250k setup for scrappy startup style hardware manufacturing design, or closer to $250-$500k for contracted industrial design from an experienced industrial design firm. Then you might be able to manufacture them in production runs of 500-1000 for somewhere around $100 each, and six months later there'd be ripoffs on AliExpress for $49 plus shipping.)

j1elo
4 replies
21h30m

Curious about one of the technical details, I'm only asking to learn more about the limits of the RPi:

couldn't this all be done only with the Raspberry Pi, using all those GPIO pins that it has? Feels like it is being underutilized and the project ought to be simplified to a single board (a single mains connection needed would be a very nice consequence too)

xyzzy123
1 replies
21h10m

I think yes, but the LED code is designed for arduino so from a code reuse / prototyping perspective it would be simpler to do initial build with 2 units.

vitling
0 replies
1h43m

Correct answer. Also the RPi is only just powerful enough to run all the synths (it's a 3rd gen) and the prototype was Mac + Arduino; so made a lot of sense to just move the synthesis program to the Pi to make it self-contained and leave the Arduino program as-is.

ryandrake
1 replies
21h2m

I was thinking the same thing except the Arduino instead of the Raspberry Pi. All the Pi is doing is "note selection and the synthesising of the audio buffers themselves." Surely the Arduino Uno can do that, too?

jacquesm
0 replies
15h24m

I think the Uno wouldn't have enough RAM for that, the Pi is a lot more powerful in that sense.

woliveirajr
3 replies
17h34m

Somehow reminded me of Jean Michel Jarre

jacquesm
2 replies
12h40m

The early days of synth, I would have picked Klaus Schulze as a close analogy, or maybe Brian Eno, The Pearl/Late October.

bigiain
1 replies
11h39m

My head went "Vangelis"

(And then it repeated "Albedo, zero point three nine"...)

jacquesm
0 replies
7h47m

Yes, I posted 'Soil Festivities' as well upthread.

whitepaint
2 replies
22h36m

This is really cool, would be nice to get detailed instructions how to build something like that.

rezmason
1 replies
22h26m

I think I now have to create an online version of it. Web Audio and CSS transforms should be more than up to the task.

rezonant
0 replies
22h12m

Best use audio worklets for best performance to avoid buffer underruns

uwagar
2 replies
13h24m

cheesy kitsch

dang
1 replies
12h32m

Ok, but could you please stop posting unsubstantive comments to HN? You've unfortunately been doing it repeatedly. It's not what this site is for, and destroys what it is for.

If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html and taking the intended spirit of the site more to heart, we'd be grateful.

uwagar
0 replies
10h23m

noted. just express myself for the record.

paraph1n
2 replies
11h57m

What do I search for to find music/audio like this? It sounds so beautiful.

martijnvds
0 replies
9h59m

It reminded me a bit of Plastikman, for example https://www.youtube.com/watch?v=oQduttGOQSE

Probably because it uses the same 303's and 909's :)

jacquesm
0 replies
11h42m
ehnto
2 replies
15h1m

I love nature, spend a lot of time in the forest. I find it all beautiful. Yet, sometimes, I am struck with disgust as somehow my image of trees swaps. Suddenly I imagine trees like an insidious growth on the surface of the planet. Like when you see fungi growing from a humans skin, I am involuntarily picturing trees through the same lens.

It is breif, but weird. Anyway, this is a really beautiful display, it's branches feel closer to tendrils, and I imagine if the music had picked minor chords predominantly this would be an experience closer to my negative view of trees. Thankfully the power of music prevails.

riverdweller
0 replies
2h40m

Perhaps think instead of human skin as a wretched slimy substrate on which poor, determined fungi have to somehow eke an existence.

bad_username
0 replies
14h55m

Imagine that trees sway on their own, rather than the wind moving them.

yobbo
1 replies
8h3m

  Find all the chords from the set that have all but one note in common with the playing chord.
  Choose one of these at random.
  Go back to 3 and repeat forever.
This means a fairly small group of chords. Not sure it covers more than one key.

vitling
0 replies
1h45m

Nope, it can get anywhere in the western musical system.

A triad 1 3 5 can become 7 3 5, then 7 2 5, which is a 5th. Once you can move a 5th you can move anywhere because it's a move of 7 in the integers modulo 12 (numbering all the notes chromatically) which will get you back round to 0 in 12 moves.

Maj -> Min is only one note change, as is moving inversions or adding or removing a 4th note.

psynister
1 replies
20h14m

Seems like they are being slashdotted or whatever it's called these days.

danwills
0 replies
8h38m

The "HackerNews Hug" I believe it's called.. indeed being on the frontpage and being (or just looking) interesting does direct a huge amount of traffic at servers!

I'm just so glad that HN seems not to be getting paid (or even influenced much?) to direct that fire-hose (as far as I know anyway!) Killer job dang! Can't believe you get so much done, kudos!

Lucasoato
1 replies
22h2m

That could be the intro for a Four Tet set :)

xanderlewis
0 replies
20h54m

Yes!

ruined
0 replies
20h13m

that's that shit i like

mrb
0 replies
18h1m

Tip for author: you can drastically reduce hardware & software complexity of this project by removing the Arduino and use this library which allows controlling WS281x strips directly from your Raspberry Pi: https://github.com/jgarff/rpi_ws281x

I use it myself on a Pi 4 to control a WS2815 strip of 466 pixels on the fascia of my house, for holiday decorations.

jacquesm
0 replies
15h20m

This is beautiful. Imagine an alien planet where the plants are like this. Maybe a forest of them can sync up the way metronomes and firebugs synchronize.

fb03
0 replies
22h9m

That was frigging awesome!!!

danwills
0 replies
8h45m

Awesome! reminds me of the tight-audiovisual sync style of the demoscene, but in hardware? Hope it gets explored some more!

crawsome
0 replies
21h50m

I love how they wrote it out in pseudocode for everyone to understand. I've worked on projects like this (just the music generation part) and I greatly appreciate how they presented it.

And for someone to have a video demo, it just makes it better. Lots of code projects die before they take off because the author only described it with a wall of text.

HansardExpert
0 replies
22h56m

Generative audio-visual ambient light sculpture

WS2812B / Arduino / Raspberry Pi / C++