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):
[unreplied] | [replied] | [recent comments] | [all]
[older questions]

Question: I don't want to put pressure but I'm curious, can you describe what kind of stuff makes open sourcing jsfx difficult?
Asked by wisho (31.37.8.x) on May 15 2025, 2:25pm
Reply on May 15 2025, 2:37pm:
    well internally it's a bit of a mess that has been gradually getting cleaned up, but the real thing is that I'd like it to be in a useful form when open sourcing it, e.g. a way that people can actually build it and use it, as opposed to just being "here's some code good luck." so I'm putting it off as that goes... but maybe someone else can make a CLAP wrapper for it, I guess...
Comment...
Question: It seems to me that the USA is the leading exporter of stories about people dying, seeing the afterlife, and then coming back to life. Do you believe in life after death? Do you think the way we live our lives now has any impact beyond this life?
Asked by Thinking? (102.176.65.x) on May 15 2025, 3:51am
Reply on May 15 2025, 2:38pm:
    I don't trust our brains to tell us what is real, they lie to us constantly! ;)
2 Comments...
Question: Is there one of the Fediverse protocols wich you would say meets the requirements you outlined in your idea for WATCH (we are the cloud hosts)?
Asked by SpoiledHobo (46.91.173.x) on May 14 2025, 6:25pm
Reply on May 14 2025, 7:17pm:
    haven't really looked
Comment...
Question: Hello, I recently found out about this site so I wanted to ask some programming related stuff. How can I go about making a digital audio work station like reaper? What data structures and algorithms do I need to know about and learn in order to create something almost as decent as reaper? Do you know of any online learning resources that can help me understand the process better or do I mainly have to figure it out on my own? I'm learning odinlang and a daw or synth is one of the projects I want to make.
Asked by Daniel Eccleston (208.163.50.x) on May 14 2025, 3:22pm
Reply on May 14 2025, 7:20pm:
    hah well, I'd approach it from a different place -- figure out some small parts of what you want to do, then do them, and figure out what's required in order to make that happen. then add on to it. before I made REAPER, I made an mp3 player, so I got a little bit of a feel for media playback. Then I made Jesusonic for processing audio, which had different requirements (realtime, no media), and gradually extended it to have multiple layers ("tracks", effectively), and did NINJAM too which was streaming media from other places.. so making REAPER after that was kind of the logical next step (but still a crazy amount of work, and here we are approaching 20 years later)
Comment...
Question: Hi Justin, how to add a link to WHUMP correctly, for streaming playback of your tracks in the AIMP audio player and any other? I like your work, I find myself in it, although I do not understand at all what these songs are about, since I am a native speaker of another language. With respect, a fan from Russia!
Asked by Aidy (85.140.25.x) on May 13 2025, 3:03pm
Reply on May 14 2025, 12:07am:
    dunno! what formats does it read, m3u or something?
1 Comment...
Question: hi Justin, I just discovered your existence on wikipedia, and you seem like a great person. How do you keep being so based ? Thank you for Reaper, genuinely an insane tool
Asked by Romain (194.2.155.x) on May 12 2025, 11:32am
Reply on May 14 2025, 12:08am:
    hah thanks, I think most people are good people.
Comment...
Question: imagine producing songs this way by writing prompts xd youtu.be/fn0ln5HUzvA
Asked by Jake (187.201.254.x) on May 10 2025, 6:57am
Reply on May 10 2025, 1:48pm:
    Songs are good because of the connection with the human that made them, imo.
1 Comment...
Question: Did you ever hang with Jamie Zawinski back in your SF days?
Asked by Will (99.100.219.x) on May 9 2025, 10:33pm
Reply on May 10 2025, 12:34am:
    Nope but funnily enough I just sent him an email the other day...
Comment...
Question: Do you have ideas for Reaper 8 and are you working on them?
Asked by Chris (95.90.212.x) on May 9 2025, 9:50pm
Reply on May 10 2025, 12:35am:
    not exactly but we're always working on stuff regardless of the version numbers involved
Comment...
Question: trans rights?
Asked by kaitlyn (92.21.21.x) on May 9 2025, 6:20pm
Reply on May 10 2025, 12:35am:
    yes definitely
Comment...
Question: are you a human
Asked by skibidi (195.234.156.x) on May 8 2025, 7:49am
Reply on May 8 2025, 7:31pm:
    most days I feel like one
Comment...
Question: How would one play items from REAPER's arrange view in non linear fashion? Basically using tracks and their fx as mixer, but triggering sources programatically from multiple different tracks at the same time, using exising project item sources, or creating them from HDD)
Asked by nikolalkc (80.216.15.x) on May 7 2025, 11:36pm
Reply on May 8 2025, 7:31pm:
    use playtime?
4 Comments...
Question: Hi :-) I have a question about r8brain being used in Reaper. From what I understand, r8brain doesn't operate in real-time. In cases where we're doing playback, whether for listening, recording, or even playback for outboard gear, how does Reaper handle this? Does the playback have additional latency from r8brain? And does r8brain perform fully without being adjusted to reduce its effectiveness?
Asked by tar tar tar (223.206.51.x) on May 7 2025, 7:27pm
Reply on May 7 2025, 7:32pm:
    "operate in real-time" is a bit ambiguous. It has some latency. Which is fine when reading media, because disks have (a different kind of) latency too... :) the only time it would matter is if you're converting a signal that is being monitored, which doesn't really happen unless you're trying to realtime oversample, in which case, well, you have to deal with the latency.

    The main thing we have to do some fanciness around is changing the resample rates on the fly, which r8brain-free isn't really designed for. REAPER only really does that if you use the playspeed envelope, or stretch marker tempo ramps without preserving pitch.
2 Comments...
Question: Hey Justin! How do you weigh implementing code design that is much faster to implement (hacky) vs design that is more robust but will take much longer to implement, is it just down to importance of the system/how hot the path is? Any times you regretfully implemented the former, lessons learned? Thank you!
Asked by Jack (194.110.115.x) on May 6 2025, 8:16pm
Reply on May 6 2025, 8:23pm (edited at May 6 2025, 8:25pm):
    there are a lot of other factors, but the biggest is probably the certainty of the design: if the elegant solution is fully understood and I have a great degree of confidence in it being the correct solution, then go that route even if it's a ton of extra work. if the problem isn't sufficiently understood such that an elegant solution is not unlikely to end up being the wrong solution, then definitely go hacky until you figure out what the elegant solution is. for things in between, interpolate...

    the biggest thing, though, is don't be afraid to rewrite _small_ subsystems in a larger project. that is a great thing to be able to do, once you've seen how they've been used for a long time. because at that point you should understand the elegant solution.
Comment...
Question: Hey, look hyperland creator is using a familiar daw. x.com/vaxryy/status/19191547007854...
Asked by Rano (27.131.211.x) on May 5 2025, 6:29pm
Reply on May 6 2025, 8:23pm:
    nice
1 Comment...
Question: I've started writing a Winamp DSP plugin (not released anywhere and I got carried away realizing they're also perfect for visualization), and during some debugging I found out that it always returns 576 samples (except mp3s, where it gives back twice that), and in my head it seems crazy to me that a small buffer is seemingly enough for stuff like time stretch engines to work, which, they do get fed enough data... but still. And so I wonder, why only 576 samples by default?
Asked by Eris Lund (80.228.64.x) on May 5 2025, 11:47am
Reply on May 5 2025, 1:55pm:
    it was linked into the mp3 decoding originally which produces 1152/576 samples depending on whether it was MPEG-1 or MPEG-2.
1 Comment...
Question: This suggestion you gave has really helped me fix a glitching problem in my jsfx plugin: "also, for JSFX in particular, variables (e.g. x) are a lot faster than memory (e.g. x[1]), and variables and constants are roughly similar in speed (e.g. using some_global_scale = 2.0 vs 2.0 directly in the code, no real difference)." Pls, I need another tip, lol, especially for reducing cpu usage or any other you deem very important?
Asked by Deeee (197.251.240.x) on May 5 2025, 7:25am
Reply on May 5 2025, 1:57pm:
    unrolling short loops is also a good idea:
      ptr[0] *= 2.0;
      ptr[1] *= 2.0;
      ptr += 2;
    
    is faster than:
      loop(2, ptr[0] *= 2.0; ptr+=1; );
    
    Also avoid unnecessary stores:
       foo = (x*y+z)*3.0;
    
    is faster than:
       tmp = x*y+z;
       foo = tmp * 3.0;
    
    (within single statements, EEL2 does a decent job of optimizing, but it doesn't do much inter-statement optimization).
1 Comment...
Question: Greetings from Germany , we are using Ninjam a lot with different continents and play in front of (small) audiences , with video using the VDO NInja protocol ... Tom Benoist tried to come up with a VDO sync on the ninbot.com servers, but it did not work so far : Is there a way to sync external Video to the beautiful Ninjam algorithm , so the people can see the players when you hear them ? ... and could there be a multi output routing , so tha t can have a single player on a dedicated fader in the Reaper ?
Asked by Bernd Keul (89.0.39.x) on April 30 2025, 4:41pm
Reply on April 30 2025, 6:49pm:
    Re: VDO, no idea sorry. ReaNINJAM supports multi-out and you can route each player to a discrete output.
4 Comments...
Question: In a few words how will advise someone getting started with JSFX coding, for example, is the advice don't calculate too much at the @slider a good advice?
Asked by Deeee (197.251.240.x) on April 28 2025, 7:01pm
Reply on April 28 2025, 9:48pm:
    depends on what the goals are, but in general make things simple and readable and don't prematurely try to optimize.

    also, for JSFX in particular, variables (e.g. x) are a lot faster than memory (e.g. x[1]), and variables and constants are roughly similar in speed (e.g. using some_global_scale = 2.0 vs 2.0 directly in the code, no real difference).
1 Comment...
Question: Have you ever used foobar? Is it true that I saw in the encyclopedia that the developers of Foobar are related to Winamp?
Asked by nvnv (129.153.24.x) on April 27 2025, 10:22am
Reply on April 28 2025, 1:35pm:
    Yeah PP did some Winamp plug-in work back in the day. Never cared much for fb2k though, lacked a certain something for my taste...
Comment...
[unreplied] | [replied] | [recent comments] | [all]
[older questions]
Copyright 2025 Justin Frankel. | RSS