elieserdejesus / JamTaba

Jamtaba is a software to play online music jam sessions.
http://www.jamtaba.com
245 stars 49 forks source link

[Looper] Record own or others single Track while jamming in Jamtaba #712

Closed MagnusDrumsTrumpet closed 7 years ago

MagnusDrumsTrumpet commented 7 years ago

Hey i had the idea for a Record Funktion on each Track individuali in Jamtabe while jamming to for instance loop it back to build up an jamm lets say i play drums hit the reck button it recs and if i am ok with it i press loop and it should place the last complete bpi drumtrack recorded in the jam the i could play some chords onthe fly and use them also in same way or i could loop chords fron the guitarist to loop them back that ge can improvise with it well i hope this is understandable maybe it is possible to save then on several register to hold them and choose what is needed in the jam so what do you think) greetings from Mag

qulf commented 7 years ago

very god work. :) looper worked with me. i dont need midi to operate :).

qulf commented 7 years ago

i liked layers but the best is play mode - random :).

qulf commented 7 years ago

Some idea, mayby layers can have some armed buttons like reaper. So if I want record just layer 2 I need arm that first and unarm rest of the layers. Or when I recorded 4 layers but I am unhapy with number 2 I need unarm 1,3,4 , and arm 2 and record again but just number 2

elieserdejesus commented 7 years ago

mayby layers can have some armed buttons like reaper

@qulf , Jon proposed a lock button in each layer to protect from accidental recording. In your example, if you are unhappy with layer 2 you can lock the other layers and re-record just the layer 2.

@qulf, @MagnusDrumsTrumpet and @jonjamcam , what you think? In my opinion we don't need two buttons: a lock button and an arm button. Is too much buttons, and is possible achieve the same results using arm or lock. What you think is more intuitive? Arm or lock?

qulf commented 7 years ago

Sorry I just missing that Jon idea. :) looks same. For me one will be ok.

jonjamcam commented 7 years ago

What you think is more intuitive? Arm or lock?

Personally I prefer a lock button because it's easier to distinguish at first sight "bad" takes and safer not to delete/overdub "good" takes by mistake. We have to consider at some point we can have two or even four looper windows open some playing and others overdubbing. So it's better to "secure" the good material as soon as possible.

qulf commented 7 years ago

For me name is not important. Lock is ok

jonjamcam commented 7 years ago

Guys, how about discussing key shorcuts options when a looper window is foused? Say REC, PLAY, layer select, etc.

1.- We have the SPACEBAR key for example that's big enough for a play/stop or record function.

2.- About shortcuts for individual loops @MagnusDrumsTrumpet posted here https://github.com/elieserdejesus/JamTaba/issues/712#issuecomment-279144982 :

Jamtaba could mark them as easyly loop 1 loop 2....... loop 7 if you press 5 the loop five will be hearable immediately on the point you let it be hearable cause all loops are constantly still running in behind in sync. so you can spring between the loops, bring variation or let the best loop roll or what ever. now you can improvise on your played loopvariation or switch to another variation or mute it to play live again.

3.- If you add M for mute and S for solo in each layer you got some quick way to choose and pick.

4.- I would also consider up/down arrow keys for fast layer navigation.

MagnusDrumsTrumpet commented 7 years ago

nice nice Jon ))) agree totally cool idea also wit 1 2 3 4 5 yeah just keeping care of what reaper is doing while we use spacebar for the loops is it possible to use the hotkeys only for the loopwindow aslong it is activated that should be checked not that reaper starts running also ohoho

MagnusDrumsTrumpet commented 7 years ago

what i realized during use the beta without using the Loops is that it seems to crackle soon like it would use more performance like if there are mane ppl in one roome and the Latency is going down, i changed teh Plugin to reaninjam and crackle was away dunno , just was an impression

elieserdejesus commented 7 years ago

Hi Guys , the shortcuts 1, 2, 3..etc are working in Standalone last time I tested. Shortcuts in the VST plugin are a pain because hosts are always stealing the keystrokes.

what i realized during use the beta without using the Loops is that it seems to crackle soon

I see some crackes too, I will try to improve the looper performance.

jonjamcam commented 7 years ago

the shortcuts 1, 2, 3..etc are working in Standalone last time I tested

yes. working fine in standalone.

EDIT: just noticed key shortcuts control is lost when focus changes, for example if you use the lock buttons or change to another play mode.

qulf commented 7 years ago

Hi guys. Maybe beta2 ?. I will be happy to test

elieserdejesus commented 7 years ago

shure @qulf , I'm just finishing some tasks to release a more stable and "almost finished" beta :)

elieserdejesus commented 7 years ago

@jonjamcam , @MagnusDrumsTrumpet , @qulf , a new beta is available: https://github.com/elieserdejesus/JamTaba/releases

jonjamcam commented 7 years ago

@elieserdejesus I have an idea for improving the looper position in the audio signal path:

image

It's not perfect, but I think it's much better than it is now. The reason is:

Now all audio from the looper AND from the input is managed by the local track controls at the same time. This is inconvenient and because the looper has it's own fader, pan controls, the idea is to allow local pan, fader, stinv button, etc to control ONLY the input signal that feeds the looper. This way both the looper and the input signal get different controls.

Additionally you could add global MUTE and SOLO buttons for the looper so you have independent input and looper control:

image

Does it make sense?

elieserdejesus commented 7 years ago

I agree @jonjamcam , keep looper and local input independent make more sense.

MagnusDrumsTrumpet commented 7 years ago

hey super version thy ) a dream come true ) i have still some craclöe soon in performance but have to test longer sadly i am to stupid to understand last flowchart somehow( what is stinv buttom omg

elieserdejesus commented 7 years ago

i have still some craclöe soon in performance but have to test longer @MagnusDrumsTrumpet , are you observing some pattern in these cracles? JamTaba is always cracling in interval first beat?

qulf commented 7 years ago

What means "Cracles"? That is like "tap" or "knocking"?

elieserdejesus commented 7 years ago

@qulf , cracles are audible noises, like when listening old vinyl discs.

qulf commented 7 years ago

Mayby when looper cut sound for layers that can make some random knocking.

qulf commented 7 years ago

Fade in and fade out can help

qulf commented 7 years ago

https://help.ableton.com/hc/en-us/articles/209069969-Resolving-clicks-on-clips-edges

qulf commented 7 years ago

Look for that

jonjamcam commented 7 years ago

I tested the looper today in a 3-4 player session using the beta2 vst plugin version. I use a vst plugin (kontakt) for my drum sounds and CPU uses roughly 20-30%(reaper RT measure) depending how much users are connected. To my surprise the looper didn't use much CPU (well I'm cheating here, because when you use loopers for drums, you stop playing, so the VST engine was not using CPU at that point :D).

I didn't hear any crackle at all and the jam was about 1 hour long. I keep paying attention to the issue.

MagnusDrumsTrumpet commented 7 years ago

yes it is more like what you have when to much ppl are in the room then you have dropouts or crackles if i use old ninjam vst then it is away i looped one loopy only in my feel it hasent to do something with looping but i have to test it more very cool solution till now

MagnusDrumsTrumpet commented 7 years ago

an erase button for all loops in the active loopwindow maybe a default setting button to get all in standard again in the loopwindow vol pan..... at moment the loop vol regulates my outgoing vol on that channel or mayby only the rec level so when i vol down my recorded drum loop and i record again the vol is also lowerd on the live drum actual playing

MagnusDrumsTrumpet commented 7 years ago

another thing is that in chat window when i write and try to correct before sending by click in the text with curser the witten line dissapears

elieserdejesus commented 7 years ago

at moment the loop vol regulates my outgoing vol on that channel or mayby only the rec level so when i vol down my recorded drum loop and i record again the vol is also lowerd on the live drum actual playing

@MagnusDrumsTrumpet , I think this is solved in the last version, but it's not released yet as a beta.

MagnusDrumsTrumpet commented 7 years ago

another request would be to select more than one loop by maybe holding shift to handle multivoice or choosed loops in seuence by selected only

jonjamcam commented 7 years ago

select more than one loop by maybe holding shift to handle multivoice or choosed loops in seuence by selected only

@MagnusDrumsTrumpet You can select several loops using the lock button and then select the "locked" checkbox under "play" (at the bottom). The good thing is that these locked loops are read-only. Press the lock again to unlock.

MagnusDrumsTrumpet commented 7 years ago

ok ) thy jon

jonjamcam commented 7 years ago

an erase button for all loops in the active loopwindow maybe a default setting button to get all in standard again in the loopwindow vol pan.....

I add my vote to these. It's important to have some kind of quick "reset" button to clear everything (even locked layers)

One more thing I think it's missing. In sequence/all layers mode it's not possible to choose which layer to record/overdub while playing. If you could set some kind of "focus" during play so when you press record you know exactly which layer is going to be overdubbed/replaced.

elieserdejesus commented 7 years ago

Hello @jonjamcam , @MagnusDrumsTrumpet , @qulf , a new beta (v3) is available. The changes are: 1 - A 'reset' button in top right corner 2- Remembering looper preffered mode and layers count 3 - Improvements in focused layer 4 - Improvements in audio processing performance (I hope no more crackles) 5 - Fixing the audio signal path. Now the input controls are totally independent from looper controls (pan and gain slider)

https://github.com/elieserdejesus/JamTaba/releases/

EDIT: I think now it's just one task missing: save and load the "loop set".

jonjamcam commented 7 years ago

Amazing! Sure it's very much as I thought it would be when we started. About performance, reaper RT measure dropped from 20-30% to 10-20% CPU usage. That's pretty incredible considering the tons of added features.

Thankyou @elieserdejesus. Hats off to you for the superb coding!

MagnusDrumsTrumpet commented 7 years ago

wonderful thank you so much) a star on onlinejamming your jamtaba) in this version and before i didnt find to add subchannel? or do i something wrong also wasnt it possible to choose the channel like 12 34 56
i tryed to change my Name but even it shos other name i am still online as Mag )

elieserdejesus commented 7 years ago

reaper RT measure dropped from 20-30% to 10-20% CPU usage

Very good news @jonjamcam, this it really good. I see the same results measuring the performance in Linux using a magic tool called Valgrind.


@MagnusDrumsTrumpet

in this version and before i didnt find to add subchannel? also wasnt it possible to choose the channel like 12 34 56

Subchanels and stereo/mono input selection are available in Standalone only.


i tryed to change my Name but even it shos other name i am still online as Mag )

Pipaxis reported the same problem using the AU Plugin. Can you add a new issue for this, please? As a quick and dirty solution try connect in ninbot.com using the menu "Ninjam -> Private Server". You can input your name in the Private Server dialog and this will be your new preferred name.

jonjamcam commented 7 years ago

Guys, how about increasing the max layers to 8? This looper thing is kind of addictive :D

MagnusDrumsTrumpet commented 7 years ago

agree, i thought we would have it after testing)

elieserdejesus commented 7 years ago

@jonjamcam and @MagnusDrumsTrumpet , what you think about keep the default max layers as 4, but allow a configurable value (up to 8, or 16 if you prefer) in json config file?

In future (soon) I think is interesting put the looper options in a new tab in preferences window. But for now I think is enough allow bigger values in json file.

jonjamcam commented 7 years ago

keep the default max layers as 4, but allow a configurable value (up to 8, or 16 if you prefer) in json config file?

It's ok for me.

@elieserdejesus Is it technically possible to allow max layer number modification while the looper is playing? I mean for quick add/remove

MagnusDrumsTrumpet commented 7 years ago

yes my wish toooo)

elieserdejesus commented 7 years ago

Is it technically possible to allow max layer number modification while the looper is playing? I mean for quick add/remove

It's possible @jonjamcam. I will take note of these 2 tasks: allow up to 8 layers (maybe layers will be vertically very small?) and allow max layers change while playing.

jonjamcam commented 7 years ago

maybe layers will be vertically very small?

I think 6 is a good number too in case 8 is too much. What do you think @MagnusDrumsTrumpet ?

MagnusDrumsTrumpet commented 7 years ago

did i understand it right that as VST then i have max two loop windows? so up to 8 layers will be cool)

elieserdejesus commented 7 years ago

VST then i have max two loop windows?

This is true @MagnusDrumsTrumpet , in VST/AU there are only 2 channels, no subchannels, and just 2 loopers.

I think adding some pixels in looper window height will solve the possible too small layers.

MagnusDrumsTrumpet commented 7 years ago

there is no way to make a second loopwindow for the same track ?

elieserdejesus commented 7 years ago

there is no way to make a second loopwindow for the same track ?

unfortunally there is no way @MagnusDrumsTrumpet , this is a limitation in current looper code design. After work to separate local track and looper controls (pan and fader) I realized loopers can be totally independent from tracks. We need just one more input field in looper window to select the "recording source" (what jamtaba channel looper will record). This "recording source" is the only relation between looper and an input track , so it's too limiting keep the looper and the input tracks strongly coupled (the current implementation). After decoupling looper from input tracks we can, for example, work with 8 loopers, every looper recording from same channel/"samples source".

But to change the current approach we need rethink some important and a bit difficult things: 1 - In programming: how looper will get the (any) input track samples? 2 - In the user interface: How users will manage the loopers? If the looper is not related with the local track the current looper button will be removed, we need another approach in the user interface to create new looper, delete a looper.

I think this model (decouple loopers from input tracks) is the best, but is not 100% clear in my mind at moment. Any ideas are welcome, and off course, this will delay the official release a lot :) Possible we will see a beta.19 version, kkk

MagnusDrumsTrumpet commented 7 years ago

so anywa all very cool ))) lets choose up to 8 layer or takes as i call them) so we have enough by far ) i can lock for example the first four and use if needed another four thats ok much more i ever thought.