[HN Gopher] How to Synthesize a House Loop
___________________________________________________________________
How to Synthesize a House Loop
Author : stagas
Score : 145 points
Date : 2025-11-27 19:04 UTC (6 days ago)
(HTM) web link (loopmaster.xyz)
(TXT) w3m dump (loopmaster.xyz)
| xnx wrote:
| Very cool. https://loopmaster.xyz/generate is super fun also.
| stagas wrote:
| Thanks! For anyone trying this, it's being HN crushed right now
| and hitting rate-limits, you should try again in a bit if you
| see an error.
|
| Also, there is an AI DJ mode[0] where you set the mood/genre
| and the AI generates and plays music for you infinitely.
|
| [0]: https://loopmaster.xyz/editor?aidj
| jnsaff2 wrote:
| If you like this then check out Oxygene pt4 in JS[0].
|
| [0] https://dittytoy.net/ditty/59b8a8d54d
| mstngl wrote:
| What's going on with all these code-2-music tools these days? See
| other front page discussion about strudel.cc [1]. Did I enter an
| established bubble or is there a rising trend? It's incredible,
| though, what people are able to obtain with it, especially when
| built-up during a live session [2].
|
| [1] https://news.ycombinator.com/item?id=46052478 [2] Nice
| example: https://m.youtube.com/watch?v=GWXCCBsOMSg
| hecanjog wrote:
| Computer music is as old as computers, live coding is pretty
| old too. (I posted this in the strudel discussion too:
| https://toplap.org/wiki/HistoricalPerformances) Maybe everyone
| doing live streams during the pandemic helped get visibility
| for live coding? It's interesting to see it kind of becoming
| popular now.
| baq wrote:
| classic overnight success 20 years in the making. many such
| cases.
|
| I must say the narrated trance piece by switch angel blew me
| socks right off, to me feels like this should be a genre in
| itself.
| c22 wrote:
| Often an article posted to hn will cause a mini-trend as users
| who are engaging with the subject discover and share more
| related resources.
| SmirkingRevenge wrote:
| CSOUND is the oldest code-2-music framework I know of, and
| that's been here since the 80's, so the concept is not new
|
| The tools/frameworks have become more plentiful, approachable,
| and mature over the past 10-15 years, to the point where you
| can just go to strudel.cc and start coding music right from
| your browser.
| cdr6934 wrote:
| My guess is we are either at the top or rising to the top of
| cyclical curve of the trend.
| 999900000999 wrote:
| I really want something like this as a VST plugin.
|
| I don't imagine making a full song out of this, but it would be a
| great instrument to have.
| stagas wrote:
| I'm considering a VST version but for now there is an Export
| Audio feature you can use to get a perfect audio loop to use
| with Ableton (or any other DAW) with oversampling up to 8x for
| great quality.
| 999900000999 wrote:
| How much do you need in donations to make it happen.
|
| I'll put 50$ down right now.
| stagas wrote:
| Click Export Audio next to the title here[0], there is a
| buymeacoffee button :) tysm
|
| [0]: https://loopmaster.xyz/loop/75a00008-2788-44a5-8f82-ae
| 854e87...
| 999900000999 wrote:
| I meant for the VST plugin.
|
| The janky way to do this would be to run it locally, and
| setup a watch job to reload the audio file into a vst
| plugin every time the file changes.
| stagas wrote:
| The backend now is in WASM. I have a plan on how do this
| in a VST, I had done a version with a Rust+WASM backend
| in the past. My main concern is getting a Webview working
| for the editor, which is custom made, but I think that's
| also solved by now. The goal would be exactly the Web
| version working as a VST plugin with its real-time audio
| engine.
| duped wrote:
| Shoutout to PACE who banned scripting in the JUCE 8 license
| terms so if you wanted to make this using the leading
| framework, you can't.
| 999900000999 wrote:
| Define scripting.
|
| I'm not going to test it, but couldn't you just load a json
| file with all params.
|
| Various instructions, etc.
|
| I can't believe it's not code!
| duped wrote:
| The definition is up to them. They don't want to play
| around with loopholes since the whole point of the license
| change was to force more people to buy license seats.
| StableAlkyne wrote:
| Do you have a source for this? I don't see any indication
| from a quick Google other than this thread as the second
| result.
|
| The license at: https://github.com/juce-
| framework/JUCE/blob/master/LICENSE.m...
|
| indicates you can just license any module under agpl and
| avoid the JUCE 8 license (which to be fair, I'm not bothering
| to read)
| duped wrote:
| https://forum.juce.com/t/archived-juce-8-eula/60947/149
|
| And sure you can license under APGL. It should be obvious
| that's undesirable.
| tscherno wrote:
| I route midi generated by strudel.cc in to my DAW.
| Slow_Hand wrote:
| I've watched a lot of live coding tools out of interest for the
| last few years, and as much as I'd like to adopt them in my music
| making it's not clear to me what they can add to my production
| repertoire compared to the existing tools (DAWs, hardware
| instruments, playing by hand, etc).
|
| The coding aspect is novel I'll admit, and something an audience
| may find interesting, but I've yet to hear any examples of live
| coded music (or even coded music) that I'd actually want to
| listen to. They almost always take the form of some bog-standard
| house music or techno, which I don't find that enjoyable.
|
| Additionally, the technique is fun for demonstrating how sound
| synthesis works (like in the OP article), but anything more
| complex or nuanced is never explored or attempted. Sequencing a
| nuanced instrumental part (or multiple) requires a lot of moment-
| to-moment detail, dynamics, and variation. Something that is
| tedious to sequence and simply doesn't play to this formats'
| strengths.
|
| So again, I want to integrate this skill into my music production
| tool set, but aside from the novelty of coding live, it doesn't
| appear well-suited to making interesting music in real time. And
| for offline sequencing there are better, more sophisticated
| tools, like DAWs or trackers.
| stagas wrote:
| Fair point, and that's the challenge in both the software's
| abilities and the creator's skills.
|
| If you see it as yet another instrument you have to master,
| then you can go pretty far. I'm finding myself exploring
| rhythms and sounds in ways I could never do in a DAW so fast,
| but at the same time I do find limiting a lot of factors,
| especially sequencing.
|
| So far I haven't gotten beyond a good sounding loop, hence the
| name "loopmaster", and maybe that's the limit, which is why I
| made a 2 deck "dual" mode in the editor, so that it can be
| played as a DJ set where you don't really need that much
| progression.
|
| That said, it's quite fun to play with it and experiment with
| sounds, and whenever you make something you enjoy, you can
| export a certain length and use it as a track in your mix.
|
| My goal is certainly to be able to create full length tracks
| with nuances and variations as you say, just not entirely sure
| how to integrate this into the format right now.
|
| Feedback[0] is appreciated!
|
| [0]: https://loopmaster.featurebase.app/
| H1Supreme wrote:
| Look into the JUCE framework for building your own tools. I was
| using MaxMsp for a while, but would always think to myself
| "This would be so much easier to accomplish in pure code". So,
| I started building some bespoke VST's.
|
| There's a learning curve for sure, but it's not too bad once
| you learn the basics of how audio and MIDI are handled +
| general JUCE application structure.
|
| Two tips:
|
| Don't bother with the Projucer, use the CMAke example to get
| going. Especially if you don't use XCode or Visual Studio.
|
| If your on a Mac, you might need to self-sign the VST. I don't
| remember the exact process, but it's something I had to do once
| I got an M4 Mac.
| wahnfrieden wrote:
| AudioKit for iOS/Mac is also interesting and easy to work
| with.
| solomonb wrote:
| 100% agree.
|
| I think this format of composition is going to encourage a
| highly repetitive structure to your music. Good programming
| languages constrain and prevent the construction of bad
| programs. Applying that to music is effectively going to give
| you quantization of every dimension of composition.
|
| I'm sure its possible to break out of that but you are fighting
| an uphill battle.
| cdr6934 wrote:
| The ease of quantization in the DAW is pretty easy to do as
| well. So I am not sure that would be unique to music / live
| coding sessions.
| tarentel wrote:
| It is unique because everything is quantized. I've never
| used these tools but I am assuming you could give it some
| level of randomness but as someone who has performed and
| recorded a non-quantized performance is not random. So
| sure, it's super easy to quantize in your daw but it is a
| tool to be applied when needed, not something that is on
| all the time by default.
| solomonb wrote:
| yes exactly, and when I say "quantization of every
| dimension of composition" I mean an application of
| quantization to every aspect of composition not just
| pitch and rhythm.
| stagas wrote:
| Quantization and repetition are what some genres depend
| on. It won't be the right instrument for a Rock ballad,
| but for a Techno track you need this kind of "everything
| being quantized". That said, in loopmaster you can add
| swing and noise to the note offsets to humanize a
| sequence, a lot is left to the imagination and ability of
| the creator.
| solomonb wrote:
| No one in this thread is saying quantization is never
| appropriate.
| rbn3 wrote:
| Quite the opposite actually. certain live coding languages
| give you the tools to create _extremely_ complex patterns in
| a very controlled manner, in ways you simply wouldn 't be
| able to do via any other method. the most popular artist
| exploring these ideas is Kindohm, who is sort of an
| ambassador figure for the TidalCycles language. Having used
| TidalCycles myself, the language lends itself particularly
| well to this kind of stuff as opposed to more traditional
| song/track structures. And yet it also constrains and
| prevents the construction of bad programs in a very strict
| manner via its type system and compiler.
|
| It's also notable for being probably the only Haskell library
| used almost exclusively by people with no prior knowledge of
| Haskell, which is an insane feat in itself.
| bigiain wrote:
| Some of us enjoy highly repetitive music, at least some of
| the time.
|
| "Computer games don't affect kids. If Pac Man affected us as
| kids, we'd all be running around in darkened rooms, munching
| pills and listening to repetitive music." -- Marcus
| Brigstocke (probably?)
|
| Also, related but not - YouTube's algorithm gave me this the
| other day - showing how to reconstruct the beat of Blue
| Monday by New Order:
|
| https://www.youtube.com/watch?v=msZCv0_rBO4
| solomonb wrote:
| I'm not saying anything negative about repetitive music.
| I'm saying that tools like live coding are going to
| constrain the kind of music you can produce reasonably.
| filoleg wrote:
| > I've watched a lot of live coding tools out of interest for
| the last few years, and as much as I'd like to adopt them in my
| music making it's not clear to me what they can add to my
| production repertoire compared to the existing tools (DAWs,
| hardware instruments, playing by hand, etc).
|
| Aside from the novelty factor (due to very different UI/UX) and
| the idea that you can use generative code to make music (which
| became an even more interesting factor in the age of LLMs), I
| agree.
|
| And even the generative code part I mentioned is a novelty
| factor as well, and isn't really practical for someone who
| actually makes music as their end-goal (and not someone who is
| just experimenting around with tech or how far one can get with
| music-as-code UIUX).
| karlshea wrote:
| I've seen a couple of TikToks with someone doing live coding
| with this same tool and it was really cool to watch because
| they really knew it well, but like you said it was bog-standard
| house/techno.
| fasterik wrote:
| Procedural generation can be useful for finding new musical
| ideas. It's also essential in specific genres like ambient and
| experimental music, where the whole point is to break out of
| the traditional structures of rhythm and melody. Imagine using
| cellular automata or physics simulations to trigger notes, key
| changes, etc. Turing completeness means there are no limits on
| what you can generate. Some DAWs and VSTs give you a Turing
| complete environment, e.g. Bitwig's grid or Max/MSP. But for
| someone with a programming background those kinds of visual
| editors are less intuitive and less productive than writing
| code.
|
| Of course, often creativity comes from limitations. I would
| agree that it's usually not desirable to go full procedural
| generation, especially when you want to wrangle something into
| the structure of a song. I think the best approach is a hybrid
| one, where procedural generation is used to generate certain
| ideas and sounds, and then those are brought into a more
| traditional DAW-like environment.
| MomsAVoxell wrote:
| Every generation of musicians for the past 8 decades has had
| the same thoughts. What live coding tools for synthesis offers
| you is an understanding of the nature of generational
| technology.
|
| Consider this: there are teenagers today, out there somewhere,
| learning to code music. Remember when synthesisers were young
| and cool and there was an explosion of different engines and
| implementations?
|
| This is happening for the kids, again.
|
| Try to use this new technology to replicate the modern, and
| then the old sound, and then discover new sounds. Like we synth
| nerds have been doing for decades.
| anigbrowl wrote:
| Music coding technology has been around a _long time_ - think
| of tools like csound and pd and Max /MSP. They're great for
| coding synthesizers. Nobody uses them to do songs. Even
| Strudel has tools for basic GUI components because once you
| get past the novelty of 'this line of code is _modulating the
| filter wowow_ ' typing in numeric values for frequency or
| note duration is the least efficient way to interact with the
| machine.
|
| Pro developers who really care about the sound variously
| write in C/C++ or use cross compilers for pd or Max. High
| quality oscillators, filters, reverb etc are hard work,
| although you can certainly get very good results with basic
| ones given today's fast processors.
|
| Live coding is better for conditionals like 'every time
| [note] is played increment [counter], when [counter] > 15
| reset [counter] to 0 and trigger [something else]'. But
| people who are focused on the result rather than the live
| coding performance tend to either make their own custom
| tooling (Autechre) or programmable Eurorack modules that
| integrate into a larger setup, eg
| https://www.perfectcircuit.com/signal/the-programmable-
| euror...
|
| It's not that you can't get great musical results via coding,
| of course you can. But coding as performance is a celebration
| of the repl, not of the music per se.
| pierrec wrote:
| The language certainly looks nice! Is it open source? I think it
| makes sense for this kind of tool, since it's inherently
| "hackery". I mean people who want to write music with code also
| probably want the ability to understand and modify any part of
| the stack, it's the nature of the audience.
|
| I'll shamelessly plug my weirdo version in a Forth variant, also
| a house loop running in the browser:
| https://audiomasher.org/patch/WRZXQH
|
| Well, maybe it's closer to trance than house. It's also
| considerably more esoteric _and_ less commented! Win-win?
| stagas wrote:
| Thanks! I tried to make it as familiar as possible, inspired by
| JS. It's not yet open-source, mainly because the source is a
| bit of a mess, but it will be once I tidy things up. Follow me
| on GitHub[0] for updates. Also that sounds to me like Tech-
| House/Electro-House :D Very nice!
|
| [0]: https://github.com/stagas
| joemi wrote:
| It strikes me as kind of weird (or maybe a red flag?) that
| there's no landing page nor an About page.
| input_sh wrote:
| I think it's more of a red flag that they chose a name that's
| one letter away from a well-known site that sells music
| samples: https://www.loopmasters.com/
|
| Not like a fringe unknown one, but one with over 20 years of
| history and now-owned by Beatport.
| dylan604 wrote:
| meh, if they were that worried about their brand, they should
| have bought up the variants of their domain plus TLDs.
| otherwise, they can't possibly be that concerned about their
| trademark.
| panic wrote:
| I was surprised at the audible difference it made to reset the
| RNG seed for the hi-hat noise function every time it triggered.
| I'm curious what the justification for doing this is--does the
| randomness arise from the geometry of the hi-hat itself and not
| the way you hit it? Is the idea to imitate the sound of sample-
| based percussion?
| stagas wrote:
| My understanding is that because it's a very small sample, it's
| basically a combination of a subset of sine waves, and because
| we're very sensitive to the nuances of high-pitched sounds,
| even small changes in that space make a lot of difference.
| Every RNG seed produces a different sounding hihat, and if you
| don't reset it, it continues producing different hihats, which
| is unnatural. Another explanation is also to resemble sample-
| based audio, but perhaps it's all of these things combined.
| ElijahLynn wrote:
| SO fun!!!
|
| fun experiment to get you tinkerers started, skip to the bottom
| play The Complete Loop - https://loopmaster.xyz/tutorials/how-to-
| synthesize-a-house-l...
|
| Then, on line 21, with `pat('[~
| e3a3c4]*4',(trig,velocity,pitches)->`.
|
| Change *4 to *2 and back to *4, to reduce the interval that the
| "Chords" play. If you do it real fast with your backspace + 2 or
| backspace + 4 key, you can change the chords in realtime, and
| kinda vibe with the beat a little bit.
|
| Definitely recommend wearing headphones to hear the entire audio
| spectrum (aka bass).*
| ElijahLynn wrote:
| So many tweaks but here is another:
|
| change line 12 from 8000 to 800
| ElijahLynn wrote:
| you can also highlight one or multiple lines and press (cmd +
| /) to toggle if it is commented out or not to turn off a layer!
___________________________________________________________________
(page generated 2025-12-03 23:00 UTC)