I want to propose a feature request to play audio files by pressing one of the footswitches. Bear in mind that this is my first feature request here, so if I have format my request in a certain way, then please let me know.
I think there are two ways this could be implemented.
Implementation 1:
One adds a “playback” block somewhere in the signal chain. The settings for this playback block would be: (1) select a file [from a Cortex Cloud directory] and (2) a volume control knob.
One assigns a footswitch to the playback block in stomp mode to enable/disable it. When enabled, the audio file plays from the beginning. When disabled, the playback stops and enabling it again would simple play the audio from the beginning.
There are some more “advanced” things that could be implemented like pause and continue toggles, or save a recording from the looper to play back using the playback block.
Implementation 2
Speaking of the looper. This feature could also be implemented if the looper would be able to store the recording so it survives a power cycle. Then one can control playback using the existing looper controls.
I imagine implementing it this way would be simpler because the QC developers don’t have to build the bits in Cortex Cloud to upload files. One can just record it using one of the inputs on the QC. But this is just me speculating without knowing the engineering effort this would take.
If you like the general idea, but not either of my proposed ways of implementing it, then it would be worthwhile to discuss that too.
Some good ideas! One limitation is the QC has an internal 32G SD card. I don’t know what the available storage is but I like the idea of pulling available backing tracks from the cloud if at all possible!
My QC says it has 27.1G free space. That’s plenty of space to add 48Khz 24-bit WAV files.
So I believe it should go a long way.
Perhaps there is a memory (RAM) contraint that we haven’t really considered. The looper is limited to 4m44s. That’s about 42M to preload, or 84M when it uses two channels.
That’s a nice use-case @MP_Mod points out that I hadn’t considered: Backing tracks right from the QC.
My intended use-case is to use it for playing synth/piano recordings for song intros and outros, and “kicking off” some special effects in the middle of a song.
As for implementation details; I think then that Implementation 1 would work best for both use-cases:
A playback block that can be toggled on or off.
Unfortunately, it would require opening the unit and then somehow getting the SD formatted for the CoreOS integration. Both would likely void the warranty but that would be a good request for feature requests. I hope that sometime in the future, you will be able to use local PC / USB for storage needs.
I have a question about this. I connected my phone (Android), and I seem to only be able to find apps that send MIDI mesaages to the device instead of the other way around.
Can you point me to an app or a tutorial that allows me to trigger an action (play an audio file) when pressing a footswitch on the QC?
Alternatively, I could connect a Raspberry Pi and pre-program it, but it’d be great to do it using my phone.
I’m not an Android user but see if there is an app called Quantiloop Pro. I used it on my IPhone and or iPad connected directly to the QC for midi control and it worked nicely.
Alright, I couldn’t find such an app, but I managed to write a rudimentary app myself.
I can select an audio file in the app, connect it via USB-OTG, and press a footswitch on the QC to play the song. This is very cool!
If anyone is interested, I can release the source code and we can further work on the “QuadCortex Audio Playback app for Android”.
I’m using the default MediaPlayer in Android, and I seem to face the same problem as reported here.
There’s a disturbing bit-rate drop (for the lack of actually knowing what is happening) for about 20 seconds, and then audio playback returns to normal for another 20 seconds. This alternates for the remainder of the playback.
If it helps, I can record the headphones output so you can have a listen to the problem yourself.
That is phenomenal with what you have accomplished! As of current, I know that Android is not supported but you may want to email your findings and issues to support@neuraldsp.com and just see what they can do. I think many Android users will appreciate your efforts with the software development! I will definitely keep this post open for others to add input. Thanks!
I sent an e-mail to Neural DSP support regarding the USB audio issue and whether I can use QuadCortex in the name of the Android app that I will release the source code of.
@MP_Mod, thank you for keeping this thread open. I think the initial feature request still makes good sense, regardless of whether connecting a phone via USB and controlling it via MIDI is implemented.
I would propose the following “advanced features”:
A setting that allows fade in / fade out toggle, with a ramp time in seconds setting
When changing scenes or presets, trigger the fade out of the exiting track and a fade in of the new track, effectively creating a cross-fade
Track volume can be assigned to an expression pedal
The use case I’m specifically after is for playing ambient pads. I have 12 (one per key) that I tie to a specific song, and I normally arrange my presets or scenes one per song. Having the ability to load the preset and kick off the pad in one go would be awesome. I had planned on adding an external device and an external midi controller to accomplish the same. In my case, the Aerospace Audio Atmosphere V2 and a Morningstar controller were on my next to buy list.
Just a little update: I published the source code for the initial version of an Android app to use with the Quad Cortex: QCCompanion.
Here’s a screenshot of the app running on my phone:
There’s still quite a bit of work to do before it’s usable.
The idea is that the buttons A to H correspond to the footswitches A to H on the QC. You can assign audio tracks for each button and by setting up the Preset MIDI Out as outlined in the table in the link to Github, you can toggle playing the audio tracks.
If anyone cares to build and test the app, I’d like to know if you also get a strange noise after ~20 seconds of playing. I’m investigating this issue and I’m not sure what causes it.
Obviously, any help is welcome to continue improving this app.
Absolutely support this idea; in fact being able to store loops, and therefore have a sort of ‘song idea scrapbook’ on your modeller is one of the things that makes the Headrush units so great to use. Even they however haven’t yet added a function where you can assign a loop (or in other words an audio file) to a preset or even a footswitch. IMHO being able to do this with the QC would almost be on a par with the Neural Capture function!
I never got rid of the quality drop with my phone and the QC, and therefore, for me, the app is a dead-end until this is solved. As far as I know, the audio on the QC is proprietary, and I don’t have the necessary control over what Android sends out as audio either.
Good news! It seems I resolved the issue I have with a USB-C + 3.5mm jack.
I have to change a bit of code to ensure it works definitively.
Whoever is still interested in using a phone (or any android device), please let me know what your use-case is, then I will try to accomodate the user interface of the app.
I would really like an audio playback block! Loading audio files onto the QC via Cortex Cloud or Control in a similar way to presets/captures/IRs seems like it should reuse some existing functionality, making this simpler to implement.
I think this type of block would work best with momentary activation as on the Freeze effect. A variety of playback modes would seem to meet a range of different needs:
One-shot mono - play entire audio file when triggered and stop at end of file. If you trigger the block again during playback, playback starts again from the beginning of the file.
One-shot poly - play entire audio file when triggered and stop at end of file. If you trigger the block again during playback, a new playback of the audio file begins again layered over the previous playback. For example, if your sample has a reverb tail - you want to trigger the sample again without cutting off the previous reverb tail. Suggest a maximum number of polyphonic layers is enforced to keep life simpler.
Phrase - as #1 but triggering the block during playback interrupts playback. Option for interrupt to pause/resume (first trigger pauses, second trigger resumes from paused position) or stop playback.
Loop - as #3 but continuously loops the audio file until deactivated.
Fade in / fade out options for modes #3 + #4 with adjustable time (up to say, 10 seconds) would be nice for the folks wanting full backing tracks.
I’ve spent my vote on this version of the topic, but there seem to be a number of different feature requests asking for similar things to this. With the votes added up it seems to be quite a popular idea.