justin = { main feed , music , code , askjf , pubkey };
Ask Justin Frankel
No reasonable question unanswered since 2009!

Suggested topics: programming, music, sleep, coffee, etc.

Note: please do not ask questions about REAPER features, bugs or scheduling, use the forums instead.


Name: Ask: Human (enter yes):
[newer questions][unreplied] | [replied] | [recent comments] | [all]
[older questions]

Question: So if you could sit down and pick Abrash's brain, what's something you'd want him to explain to you that you never figured out on your own?
Asked by Will (70.173.150.x) on July 6 2013, 6:23pm
Reply on July 9 2013, 10:07pm:
    Probably would just want to shoot the shit, really. Talking about programming is like talking about masturbation, for the most part.
Comment...
Question: Can you explain the algorithm to HTML5 canvas/javascript fun #1?
Asked by Will (24.234.85.x) on July 5 2013, 7:35pm
Reply on July 5 2013, 10:42pm:
    It has two things:

    The first is what it draws in the center, which is a classic super-basic effect which is to draw each pixel as a bitwise combination of their coordinates, i.e. xor/or/and. In that case, it does something a little different for each color plane (back in the day we'd have a palette so we'd just typically make the palette index bitwise x/y).

    The second effect is blitter feedback; this is implemented by creating a second canvas, blitting a copy of the main canvas to it, and then blitting a portion of that copied canvas to the main canvas, with scaling. The scale applied is usually slightly different (i.e. zooming 1.05x or so), which wouldn't mean much, except the zooming accumulates each frame. It's a very common technique for visualizers (going back to Geiss, AVS, G-Force, etc).
Comment...
Question: You once posted a video of your rather large AZ home. In retrospect, is more space worth it, or have you come to appreciate smaller / more minimal spaces to live/work?
Asked by Will (24.234.85.x) on July 3 2013, 6:03pm
Reply on July 3 2013, 7:12pm:
    Hmm I don't think I did, maybe it was something else; at any rate I think for a couple of people anything more than 1500-1800 square feet is pretty much wasted... of course when you have hobbies/activities/jobs that require more space that goes out the window...
Comment...
Question: I know REAPER does most work in the FPU space and I was curious in the case of mixing with integers. Is that done in the FPU as well? or you have a build a total different execution path based on integers. I have a feeling that it's the first one but some clarification will solve the mystery. By the way thanks for update, it was sweet.
Asked by gio (94.66.27.x) on July 3 2013, 12:42am
Reply on July 3 2013, 1:57pm:
    The integer mixing mode that REAPER uses actually still uses the FPU for computation, it just models the computation on integer summing (meaning the results are the same as if it was done as integers.
Comment...
Question: Do you use Android? If not what OS does your phone run? And why not Android?
Asked by Bob (93.193.64.x) on July 2 2013, 4:49pm
Reply on July 3 2013, 1:58pm:
    iOS here, since the first iPhone. At the time the iPhone came out, I got one of those Nokia flip smart phone things that was technically superior in many ways, although not as nice to use.
Comment...
Question: do you use some kind of lock-free queue in reastream when sharing buffered audio data between threads?
Asked by olilarkin (81.100.230.x) on July 1 2013, 9:39pm
Reply on July 2 2013, 12:41am:
    No, we use normal mutexes/critical sections, but are careful not to keep them locked for too long etc.
Comment...
Question: How many mics do you use to record drums?
Asked by ees. (69.15.110.x) on July 1 2013, 1:59pm
Reply on July 1 2013, 3:37pm:
    Lately, due to laziness, 4. Used to bother with mics on the toms, hihat (8 total), sometimes snarebottom etc too, but drum sound is rarely a limiting factor now...
Comment...
Question: Think you could keep up with this girl? scanlime.org/
Asked by Will (70.173.150.x) on July 1 2013, 12:31am
Reply on July 1 2013, 2:24am (edited at July 1 2013, 2:31am):
    No idea, I mean it depends on how long we're talking (1 mile? 10k? 10 miles?), and she doesn't publish stats... Has more youth on her side, but odds are my legs are longer...

    In all seriousness though, there is a ton of stuff I don't know, and my multidimensional math skills are weak, but I do still like to learn new things.
Comment...
Question: Re: linked lists. Could you explain why the statement "you need...insertions will have problems" is false? If this is false then there is an assumption that arrays do better -- which isn't true if the insertions are not pushed at the back of the array. plus at every given time you might have a memcpy penalty if there isn't enough headroom, etc.
Asked by gio (94.66.83.x) on June 23 2013, 8:47am
Reply on June 23 2013, 10:27pm:
    I think his assertion that a doubly-linked list was necessary for random insertions was making a lot of assumptions, particularly that the random-insertion algorithm wasn't really aware of the structure of the list (basically, he's saying that you'd need the most general form of doubly-linked list to be used as-is for the algorithm, otherwise you have to actually write code that traverses the list to decide where to insert, etc).

    Regarding the performance penalties of having to shuffle the list around due to insertions, his point is that those penalties are actually relatively low (because of CPU caches etc) compared with having to traverse a list (which most of the time will thrash CPU caches and will in general touch a lot more memory due to overhead of the list structures).

    The real thing to take away from this, though, is that you should think about the data structures you are using, and think about how they will be used, before you decide which to use. Also, sometimes writing versions of algorithms that are optimized for a particular data structure (such as code that inserts at a random point in a singly-linked list, and does it with a single pass, vs a more braindead approach which would require a doubly-linked list), can have value. Having said that, though, linked lists can and do have plenty of uses where they DO perform well, even if they don't in this example.
Comment...
Question: What do you think about JUCE?
Asked by EvilDragon (88.207.58.x) on June 21 2013, 9:21am
Reply on June 21 2013, 11:48pm:
    Not much of an opinion at all, if it was BSD licensed I'd be more inclined to invest in it...
Comment...
Question: Have you found this to be true in practice, regarding linked lists? youtube.com/watch?v=YQs6IC-vgmo
Asked by will (70.173.150.x) on June 20 2013, 7:42am
Reply on June 21 2013, 11:49pm (edited at June 21 2013, 11:57pm):
    I think the benefit of linked lists depends heavily on use cases, so it really depends.

    The case for the problem being solved (random insertion/deletions), I don't disagree with, but he makes some bad arguments at times (paraphrasing): "you need to use a doubly-linked-list or the insertions will have problems" (false), "the data structures are always much larger for a list than for a vector" (true, they are always larger, but depending on the size of the underlying data they may not be *much* bigger), etc.

    Anyhoo... TBH the biggest thing is that vectors are generally less leak/error prone, which is a win (forget about performance, if you can't do it reliably then what's the point?).
Comment...
Question: re: ReaStream protocol: I reverse engineered what I needed for github.com/obijywk/footswitch so no rush :-)
Asked by matt (72.14.228.x) on June 18 2013, 3:07pm
Reply on June 18 2013, 3:13pm:
Comment...
Question: could you document the ReaStream UDP protocol (esp. midi)?
Asked by matt (108.182.51.x) on June 17 2013, 3:03pm
Reply on June 18 2013, 2:53pm:
    Yeah, I need to do that.
Comment...
Question: Is it okay, when it's in a threeway? www.youtube.com/watch?v=Pi7gwX7rjOw
Asked by Will (70.173.150.x) on June 16 2013, 6:54pm
Reply on July 3 2013, 7:27pm:
    Har.
Comment...
Question: Have you looked at StartMail (startmail.com)? Do you think privacy applications both via the internet and on your PC like TrueCrypt will be more popular now that the NSA PRISM program has been exposed?
Asked by Jason (71.196.32.x) on June 15 2013, 3:00pm
Reply on June 18 2013, 2:52pm:
    I haven't.
Comment...
Question: Best drug/high you've ever experienced?
Asked by Mick (101.165.16.x) on June 15 2013, 7:42am
Reply on June 18 2013, 2:53pm:
    Hmm I think being about 7 miles into a 10 mile run feels pretty good... but also the stuff they gave me when they removed my wisdom teeth was pretty awesome.
Comment...
Question: What do you use for regex in Win32 (if any)?
Asked by Rodrigo (177.96.51.x) on June 14 2013, 10:59pm
Reply on June 14 2013, 11:51pm:
    vim/bash/perl/etc, but if you mean in Win32 programs, errr, well, yeah nothing.
Comment...
Question: when are you going to rocks some new tools? make some new stuff...itching to use some new stuff from you!!!! please?.
Asked by poop (75.119.11.x) on June 14 2013, 9:32pm
Reply on June 14 2013, 11:51pm:
    such as? :)
Comment...
Question: Any thoughts on the new Macs?
Asked by Will (24.234.85.x) on June 14 2013, 4:43pm
Reply on June 14 2013, 5:59pm:
    Reminded of the G4 cube, hah. Some neat things in there, but will probably be overly expensive.
Comment...
Question: how did you learn the asm techniques to speed up nitrane? did you read intel manuals on the chips/mmx?
Asked by Will (70.173.150.x) on June 14 2013, 2:12am
Reply on June 14 2013, 5:58pm:
    For MMX specifically I read the Intel docs, but also I had read a bunch of other books on assembly stuff. Michael Abrash's graphics programming book was a good read too.
Comment...
[newer questions][unreplied] | [replied] | [recent comments] | [all]
[older questions]
Copyright 2025 Justin Frankel. | RSS