Please keep in mind that this is a"Super Simple Start" article. That means thattarget audience for this article is people who have experience with Remix andare curious about how the bits and pieces work without all the nice things Remixprovides for you out of the box. Because of that, this article might make itseem like Remix is harder to use than it really is. This is not a good articleto read if you're just getting started with Remix or want an introduction to it.
Remix has me more excited about building better websites than anything elsesince I started using React back in 2015. I have so much to say about it, butfor this blog post, we're going to remove as many distractions as possible andgive remix the "super simple start" treatment. So, even though Remix has a fancynpx create-remix@latest thing you can run (which is much easier than what I'mgoing to show you), we're going to skip that and build a simple remix app fromabsolutely nothing to running so we can inspect each bit required to get itgoing.
Note: Remix supports TypeScript out of the box, but we're keeping this simple.Also, because we plan to use JSX in these files, they need the .jsxextension. Remix uses esbuild which requires a .jsx or .tsx extension ifyou want to use JSX.
This one's pretty cool too. So we export a default function that acceptseverything we need, and we get to return the response. That Response objectis a real Response object (or, at least the node-equivalent of one).Learn more on freaking MDN!(Sorry, I just really love this part of Remix).
I really love how much control we get here. We are in charge of callingrenderToString and hydrate. That gives us a lot of power and it also meanswe don't need to learn extra special APIs Remix made for us and they don't needto make extra-special options to customize any of this, because the control isin our hands. Very cool.
For our simple app, we're going to use @remix-run/serve which is built on topof @remix-run/express which actually is built on top of @remix-run/node. Sothis can deploy anywhere you can deploy a node server. The cool thing is thatif you want to deploy anywhere else you totally can and you just need to swapout the adapter you're using in the package.json and so long as your own codeand other dependencies are supported by the platform, you should be good to go.
One other thing remix dev does is start a websocket with the browser tosupport live reload. Currently there's no support for "Hot Module Replacement"(HMR) and I know that for a lot of people that's a ship stopper, but I encourageyou to stick around. Eventually HMR will be supported. Personally, I'm actuallytotally cool with that. I never trusted HMR in apps anyway (though it's awesomein tools like storybook) and always did a full-page refresh even with HMR setup.Additionally, since a lot of the code you write with remix is server-side, youtypically want a full-page refresh anyway to get all the server-side code to runagain. Again, HMR will come in the future.
Notice anything missing? Oh yeah! No JavaScript! Yup, that's right, with Remixyou get to choose whether you load any JavaScript at all. And it's not aconfiguration thing. Remember how we are in charge of the entire documentstarting from ? Cool right? So let's update our app/root.jsx toinclude the script tag. Remix conveniently gives us a component we can render torender that script tag:
Just put that .ico file in the public directory. @remix-run/serve willautomatically serve files in that directory and the browser (which by looks forthat file by default) will be able to get it that way.
So that's neat. Not only does Remix add script tags, but it also preloads thingsfor us, so we don't have a waterfall (you'll notice the network tab has allresources starting to load at the same time). This gets even more interestingwhen we start routing, but we'll keep things simple.
One other thing we'll want to do is set the NODE_ENV to production so anydependencies we use that operate slightly differently in production mode willwork as expected, so let's add cross-env and set the NODE_ENV with that:
You have a lot of options for actually deploying your Remix app to productionand when you set up Remix the easy way (via npx create-remix@latest) it'll letyou choose which supported service you'd like to use and it'll spit out all theconfig and instructions to get started that you need, so I'm not going to coverthat here.
There is so much more to Remix, but this is a "super simple start" so I wantedto do as little as possible to show you where all the moving pieces are to getsomething up and running with Remix. Like I said, npx create-remix@latestmakes all this a snap, but hopefully this walkthrough helped you get an idea ofwhat parts of remix does what.
We think you'll find that all these improvements make the app a smoother and slicker experience than before. Also we wanted to mention that we're glad to be on here since you'll notice that many of these features have been at least in part shaped by user feedback from this forum so, thanks for helping us improve the app, and we hope you'll like what we have in store for the app now and in the future!
Also, since this is a two-app update palooza, you'll notice that the 3.1 update of Cross DJ Pro also includes some new features besides Ableton Link, not the least of which is Audiobus (input) and Inter-App Audio integration. Yep, we're bringing everything under the Audiobus tent.
That video did take quite a bit of effort to put together, as we wanted to do something kind of original and striking, at the very least sound-wise. Also, yes, the slower BPM was chosen specifically so it would be easier to understand what's going on in the video; plus what you hear in the video was recorded 100% live with the apps and the setup that you see.
but.... realtime recording of pad play into an audio slot that we decide/select on the fly would be awesome... all of this without stopping the music... always a seamless loop of a bar amount that we choose from like 1 bar to at least 8, but up to 32 would be super nice.
the current fx are ok but we need some frequency shifters, glitchers and others that are a little bit more creative in their expressivity with the option to be beat synced and non-synced. plus we need an side chain compression.
and if you could put a sample slicer in there that could take a loop and slice it up and put it on different pads for us so that we could beat juggle with it via the follow actions that would be incredible
and in app sample editing and ability to audition tracks from our iTunes library and load them up.... this way we could go through our samples , audition them, load them up , create loops, slice them into pad rows, perform and record those performances.
thanks for the response.... I didn't have cross dj but I just checked it out and I bought it because it looks good and you guys are building allot of good credit with your work here and I appreciate it.
the sample editing only needs to be good enough to make a clean loop, cause it would be wonderful to be able to browse our libraries like the browser in cross dj, and load up a track, edit a loop and truncate it destructively so we don't waste storage space.
re: the follow actions, it seems like most of what you need is already there, it seems like we only need the option to tell the pad in pad preferences to trigger the next pad when it's finished, and let us keep the quantize options or not use any....
thank you so much for the "delete' feature. and thank you for already considering the sample audition separate volume, it would really help cause you don't generally want to audition samples at the same volume as the rest of the music..... get some nasty surprises that way.
@djjuniorpops said:
@Remixlive thanks for the update , one request I have that should be to the top list is AudioCopy , AudioShare and Dropbox import of samples, I am quite surprising it's not in this update.
But.........Wondering which one(s) you may use, and think is most important to how you use remixlive. I have only scratched the surface air above the app. So.....How long can I record in the app? Without the IAP? Do I need this if I onlyl want to use it with IAA or AB. I think prob. Not? `
Great to see another DJ app besides DJDJ get link. It looks like only Soundcloud and files from Itunes sharing can be imported? I'll buy the first DJ app that allows files from cloud services and/or audioshare. Cheers
Whoa!!! Just woke up and read this! Thanks guys! This is great!! And what makes this really bad ass compared to your competitor, Novation, is that sample import is available on the iPhone remixlive whereas on Launchpad, it's a no go. For those of us who jam on the subway, this is IMPORTANT. Also @bounce, that is correct, DJDJ does have link but I like Cross DJ a lot better than DJDJ as one, it's available on iphone and two, just felt not as smooth as Cross DJ, for me at least. Oh, and how could I forget, we can also use this in conjunction WITH Blocs. To be fair to remixlive, I'll post their app in their thread as the two competitors actually can benefit from each other's hard work as I don't see how anyone who loves both apps would not want to use both together.
To answer what some of you have mentioned, indeed we know that DJDJ has Ableton Link, you'll notice however that we did not say "the first ever DJ app with Ableton Link" but "the first pro DJ app with Ableton Link".
@High5denied : Unlimited Record is somewhat clumsily named, it's not in relation to the recording of a larger track (there's no cap on that one) but in relation to the on-pad recording option. In the normal app you can only record on a pad five times and then it will ask you to buy the IAP. This feature has also been expanded in this latest version to record from any iOS-compatible microphone or sound card (as opposed to just the device's microphone previously).
Advanced Sample Editing allows you to access envelope controls for each sample, which are dynamic and non-destructive (we're looking at having the option of making it destructive in the future so that you can permanently shape samples as well).
d3342ee215