-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Additional jack channels audio output #524
Comments
+1 |
Implemented |
What is this request about? How was it implemented? |
Darnit, I think I'll head off to bed now, I read "per instrument audio export". |
I still don't know what's this issue about, is it solo mode? Because solo mode was indeed implemented. |
It is about sending signals from LMMS to other programs. |
Oh, so this issue is about showing output jack channels for each instrument. This issue need better title and description if this is the case. |
@badosu : Okay, updated title and description. How about now => fine or still confusing ? |
@DoosC Yes, thanks! |
What about the FX-mixer outputs?
|
This is not my area of expertise, it's probably viable but we need to consider 3 things:
There are some solutions for all these issues:
|
As the typical use case would be to send specific audio streams out of LMMS for further processing I have zero doubt that this should not automatically be activated by default. |
@DoosC A per mixer action looks like the best proposal for me. |
If I remember correctly, it was implemented very long time ago but disabled for some reason. One can enable that by defining diff --git a/src/core/audio/AudioJack.cpp b/src/core/audio/AudioJack.cpp
index bca41356b..5dd2a8512 100644
--- a/src/core/audio/AudioJack.cpp
+++ b/src/core/audio/AudioJack.cpp
@@ -328,8 +328,12 @@ void AudioJack::renamePort( AudioPort * _port )
_port->name() + " R" };
for( ch_cnt_t ch = 0; ch < DEFAULT_CHANNELS; ++ch )
{
+ // FIXME: jack_port_set_name is deprecated in favor of jack_port_rename
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
jack_port_set_name( m_portMap[_port].ports[ch],
name[ch].toLatin1().constData() );
+#pragma GCC diagnostic pop
}
}
#endif
@@ -358,22 +362,22 @@ int AudioJack::processCallback( jack_nframes_t _nframes, void * _udata )
#ifdef AUDIO_PORT_SUPPORT
const int frames = qMin<int>( _nframes, mixer()->framesPerPeriod() );
- for( jackPortMap::iterator it = m_portMap.begin();
+ for( JackPortMap::iterator it = m_portMap.begin();
it != m_portMap.end(); ++it )
{
for( ch_cnt_t ch = 0; ch < channels(); ++ch )
{
- if( it.data().ports[ch] == NULL )
+ if( it.value().ports[ch] == NULL )
{
continue;
}
jack_default_audio_sample_t * buf =
(jack_default_audio_sample_t *) jack_port_get_buffer(
- it.data().ports[ch],
+ it.value().ports[ch],
_nframes );
for( int frame = 0; frame < frames; ++frame )
{
- buf[frame] = it.key()->firstBuffer()[frame][ch];
+ buf[frame] = it.key()->buffer()[frame][ch];
}
}
} |
I opened #5841 which fixes the compilation issue based upon the above patch. |
What's the status of this ticket ? |
I just came across the same issue(LMMS 1.2.2/Fedora 39) - i wanted to get every instrument as seperate tracks in ardour (and edit/effects there with calf plugins). Otherwise, LMMS seems to not have JACK master support so it doesn't start to play remotly with ardour(like hydrogen does). |
It would be nice to have a possiblity to add jack channels output in LMMS (as it exists in Hydrogen), this would allow for routing audio to external mixer (like non-mixer which has ambisonics) or effects (like rakarrack) to further expand LMMS capabilities and modularities. This would take the form of additional jack channels audio output. A typical implementation would for example consist in adding a checkbox labelled "jack send" on each mixer strip (off by default) that would activate two additional (stereo) jack channels output for the current channel mixer (each L/R channel would be prefixed with the related mixer strip label, those which are by default "FX 1", "FX 2",etc).
The text was updated successfully, but these errors were encountered: