HNHacker News
TopNewBestAskShowJobs

ddj231

206 karma · joined January 4, 2021

submissionscomments
ddj231··on What If Friendship, Not Marriage, Was at the Center of Life?
In the sense that there is no non-incestual physical relationship where a parent can generate new offspring with their own offspring
ddj231··on What If Friendship, Not Marriage, Was at the Center of Life?
well the parent to child relationship is not a procreative one. New family units have to form that are procreative or that society will eventually crumble. So it’s not simply subjective. The marriage relationship is procreative and a bedrock for society. I don’t think a society having greater / lesser deference to parents as authority figures takes away from that reality. The parents themselves are in a procreative relationship, and are matriarchs and patriarchs to their line. And clearly the cultures that demand “more” love to parents than a spouse, do not (cannot rightly) demand intimate love. So I would question what “more” love is.
ddj231··on Show HN: GoGoBrowse – A Peer to Peer Web Browser
With the current direction, I believe it would work as a browser extension.

At first I tried to send the whole dom from one user to another, so users would see the exact same thing (no personalization like some sites do) -- and that didn't work out. It was easy to stream the html from one user to another via webrtc but the styles and javascript seemed non trivial.

So I landed at this more simple version. I haven't experimented much with browser extensions but for that approach, I would just create the peer connection between users in the extension. And simulate a click whenever a leader changes urls. (that may actually be better than this current Chromium browser version)

ddj231··on Show HN: GoGoBrowse – A Peer to Peer Web Browser
I made the repo public and open source here: https://github.com/ddj231/GoGoBrowse-Client

(forgive the spaghetti code -- I treated this more like a hackathon to get a proof of concept working)

ddj231··on Show HN: GoGoBrowse – A Peer to Peer Web Browser
The difference would be that you and a friend are on the same web page, like a news article (the same location), but you still retain control of your page. Scrolling, etc.

Also you can sync YouTube videos, so you get better quality than you would via screen share.

ddj231··on Show HN: GoGoBrowse – A Peer to Peer Web Browser
Point taken. This is a side project to get conversations going on social browsing in general (not my full time gig) -- I think I may just open source the repo so people can build themselves
ddj231··on Show HN: GoGoBrowse – A Peer to Peer Web Browser
I've been working GoGoBrowse in the evenings on and off for the last couple of weeks. The audio chat is built with WebRTC, and a signaling server.

Users send each other urls in a peer to peer way, just like audio data (so no urls are sent to the server). The browser then navigates to the url received.

The browser itself is a Chromium Browser (the Electron BrowserView).

The website is built with Notion + Super.so.

Let me know if you have any questions :)

ddj231··on The man who didn’t invent Flamin’ Hot Cheetos (2021)
I guess the question is whether GPT is supposed to be an emulation of personhood or simply a software tool. Ex. I don’t think we’d want a software tool that lies, steals or cheats despite the fact that people do this
ddj231··on AI is coming for voice actors?
I think one thing that is missed is that we do live in a free society and so when you disincentivize something there is less reason to invest in it professionally. If there is no IP and we have a free for all, why should I invest time and effort in creating non-physical creative goods as work? (principally: "a laborer deserves his wages")
ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
I wanted to deviate from live coding, and make a language that targets songwriting/composition. I think the end goal of live coding is slightly different, and seems to target performance (though live coding DSLs and applications can be used to do the former)
ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
I added the loop customization to play commands in Handel v0.1.12.

So for repeating commands you can use this syntax:

play somenotelist for 1b loop for 5

Here is your code using the new feature: https://pastebin.com/bNwUHNaM

To make this more robust, I'll be looking to add looping constructs to allow more customized looping in the future.

ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
Love it!
ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
Thanks for the feedback!

Running two chunks in sequence is currently not supported, but I've been considering a separate block (or a customization of a run of a chunk) that could allow that behavior.

Adding looping functionality to play would also be a nice addition.

Future plans wise, in the short term I'm looking to address some bugs and proposed features. But generally want to get the interpreter to a stable state

ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
Thanks!
ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
There are no recreations of songs fully written as of yet (but I do think that is a good idea and something to add to the examples folder).

For now there are a couple examples in the examples folder here: https://github.com/ddj231/Handel/tree/master/Examples

that demo the current core language features.

ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
It isn't expected. But I have noticed the issue as well, and I'm looking to fix. I think it may have to do with how note lengths from beats are being calculated.

The Handel interpreter uses Tone.js for scheduling and playing notes. But because there is only one Tone.Transport per page, changing the bpm of the Transport would change it for all tracks.

So instead of using Tone.js for setting bpms, the note lengths are calculated based on the bpm and amount of beats, and scheduled in seconds. Which could lead to greater imprecision over time

ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
Nice one!

I agree, it is still in its early stages.

Looking at your code it seems it would be useful to have a way to repeat a play command without a chunk.

I think something like: " play E4 for 1b rep 5 "

As a way to repeat something 5 times for example (and reduce duplicates) could be a future solution.

ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
Currently all run chunks play at the same time. So 'run somechunk' will create a run of a chunk that begins at the same time as all other run chunks.

Your question does bring up an interesting idea, which would be to have a 'play somechunk' command that is blocking. But that does not exist at the moment

ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
That's an interesting use case -- though the language/interpreter is still in its early stages.

And nice catch on the scroll bars, will fix, thanks!

ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
Thanks!

So by procedural what is meant is that the there are chunks (which are Handel's procedures/functions).

Currently your code snippet can't be replicated in Handel. Looping is accomplished by telling a chunk to loop (giving it a number of times to loop). ex. run somechunk with loop for 100

But there is no arithmetic in the language. Adding arithmetic to playables like you mentioned could be a nice feature

ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
On a basic level the program below would accomplish that (can't promise this sounds pleasing to the ear ;) -

start

chunk lefthand

play C3, Eb3, G3 for 2b

rest for 2b

endchunk

chunk righthand

play C3 for 1b

play Gb3 for 1b

play Eb3 for 1b

play Db3 for 1b

endchunk

run lefthand with loop for 100

run righthand with loop for 100

finish

ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
Hi! Compiling to midi is also a great feature. I think having both the immediate feedback of hearing your compositions, and the ability to export to midi would be useful
ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
I think in 2 ways:

1. Readability:

Ex.

start

play E3, Ab3 for 1b

rest 5b

play E3, Ab3 for 1b

finish

It is somewhat intuitive to read the above without experience with the language (or with programming in general).

2. Procedures: You can create chunks (procedures), which are reusable. For example you can create a chunk which takes 3 chord playables as parameters and run that chunk with any arguments. And also stack those runs on top of each other (because all run chunks play at the same time).

ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
There's an examples folder here linked to from the documentation but having examples in editor would be intuitive as well. (here's the link to the folder if you were curious: https://github.com/ddj231/Handel/tree/master/Examples)

The editor is pretty barebones at the moment

ddj231··on Show HN: Handel – A procedural programming language for writing songs in browser
I started building Handel some weeks ago, as a simple way of writing music with code. While the livecoding movement focuses on providing solutions for performing music live with code, and making changes on the fly -- I focused on simple song writing (one reason why I wouldn't consider Handel an esoteric language).

One notable aspect of Handel is the behavior of its procedures, which are called chunks. Each chunk is conceptually a song track and all run chunks (from procedure calls) play at the same time. A run of a chunk can be customized by passing in arguments (ex. chords to use). The bpm, instrument, and loop amount of a run of a chunk can also be optionally set to further customize that run.

Open to questions and feedback!

← PreviousPage 3 of 3