Has anyone ever played a plugin in realtime ( live )...
...and I don't mean a one-finger melody, but a mutli-polyphonic piano piece,
eventually with sustain held down, which resulted in about 20 to 40
simultaneusly processed voices.
I just realized, that I've never been able to do that. Neither almost.
Frustration.
But on my digital piano, I can to it.
That thing is some years old and definitely doesn't have 2 x 2 GHz
processors available.
Anyway.
The answer so far has been: That system is more dedicated, thus it
can, while my PC cannot.
The conclusion:
I'm working with a wrong system ! - It doesn't allow me to work the
way I intend.
Damn. What did I buy this system for ? I don't need those 2 x 2GHz for
word processing - right ??
This makes me wonder:
Which one is the system for my requirements ?
Which one is able to make some softsynths / samplers
process 30 voices in less than 9 milliseconds ?
Could my system be extended or modified in order to suit ?
How then ?
We have dedicated hardware for graphics, why not for audio ?
Sincerely
--
E.R.
All,
We are continuing to encounter issues with our server and will have to take the system offline for a couple of hours until we figure out what is exactly going on. We'll keep you posted as soon as we know more.
Best wishes,
Ivica Ico Bukvic, D.M.A.
Composition, Music Technology
Director, DISIS Interactive Sound & Intermedia Studio
Director, L2Ork Linux Laptop Orchestra
Assistant Co-Director, CCTAD
CHCI, CS, and Art (by courtesy)
Virginia Tech
Dept. of Music - 0240
Blacksburg, VA 24061
(540) 231-6139
(540) 231-5034 (fax)
ico(a)vt.edu
http://www.music.vt.edu/faculty/bukvic/
Hi, for the timebeing mp3 support is broken is sndfile doesn't actually
support it. You'll have to use wav files.
What do you mean by "It won't connect to Jack"? You dont see the
Terminator outputin qjackctl? Or you cant connect them?
Check the prefs if you've enabled Jack as the output.
Gerald
On Sun, 2010-01-31 at 17:09 -0500, Dave Phillips wrote:
> Dave Phillips wrote:
> > gerald mwangi wrote:
> >
> >> Has anyone tested TerminatorX 3.83pre?
> >>
> >>
> >
> >
> > Hi Gerald,
> >
> > I tried to build it on an Ubuntu Jaunty system, 32-bit. The configure
> > script ran without complaint, but make produced this error :
> > [snip]
> >
>
>
> Solved. I corrected the link for depcomp, tX compiled and installed cleanly.
>
> It won't connect to Jack, and loading an MP3 crashes it. I'm sorry, I
> have some other work to do before I can test any further, but I will try
> to test it again later.
>
> Best,
>
> dp
I'm pleased to announce the release of Non-DAW and Non-Mixer version
1.0.0. Some version numbers have been skipped, as a lot time as gone
without an official release. Those who have followed Non-DAW via git
will only notice a few changes, most of them pushed very recently.
The chief advancement provided by this release is the long overdue
inclusion of the Non-Mixer. This completes the Non triad and should
cover the needs of many, some in ways I haven't yet imagined (it
covers my needs almost completely).
Non-Mixer is a stand-alone modular mixer application for JACK. It
hosts several internal modules, one of which hosts LADSPA plugins. All
parameters can be controlled through the GUI or externally via Control
Voltage signals [the native control sequence output of Non-DAW] (but a
MIDI<->CV gateway program exists, for other uses). It has the unique
feature of each strip having its own JACK client, which has promising
implications for parallel processing. Non Mixer also has a fast, light
FLTK GUI, which finds no problem in rendering hundreds of strips. I
have plans to add support for DSSI plugins.
Currently, Non-DAW and Non-Mixer are kept in the same repository, even
though they are entirely independent applications. I have already
begun to restructure the repository and build system and I plan to
split the repositories for the two projects out completely, as time
allows.
This release is dedicated to Deanna, whose untimely demise, in
addition to the rumors of my own death, has reminded me of my
mortality and the necessity of realizing my dreams while I still have
the opportunity. I will not be discouraged, so don't bother trying. I
will resist blind adherence to the status quo, as I always have--but
now even more fiercely. Progress will not happen on its own. It must
be forced along by individuals of power, wisdom, and vision; which we
should all aspire to become. But I digress.
Non-DAW and Non-Mixer (and Non-Sequencer) can be acquired via git from
the URLs listed on the Non website:
http://non.tuxfamily.org
A shortlog from v0.5.0 to v1.0.0 follows:
Jonathan Moore Liles (224):
Remove dependence on FLTK >= 1.1.8.
Make mute and solo buttons more colorful.
Fix offset error in selection rectangle.
Don't lose track of timeline focus when window loses focus.
Provide a keybinding/menu entry for track renaming.
Add action to set range from region position and length.
Handle very long port names.
Make normalization work properly with looped regions.
Improve the appearance of rec/mute/solo buttons.
Add solo and record blinkers to TLE.
Oops. Fix order of reference in track destructor.
Use exact JACK client name in LASH initialization.
Add module information to debugging output.
Don't quit on escape key.
Show disk usage in TLE.
Take fades into consideration when splitting regions.
Formally disconnect from JACK at exit.
Properly handle removal of a track's active sequence.
Add option to remove all but the current take.
Remove extraneous inclusions of const.h
Oops. Write journal entries in proper order when generating snapshot.
Set value of 'show all takes' toggle correctly when updating menus.
Fix log entry parser for values containing ":" (colons).
Use timestamps (of creation) for take names instead of sequential numbers.
Add total MB free'd to output of 'remove-unused-sources' script.
Oops. Remove debugging noise from console output.
remove-unused-sources: Include peak files in deletion and size calculation.
Draw inactive takes in a darker hue.
remove-unused-sources: Fix source detection regex and add -m (move) option (now the default)
Fix occasional segfault upon loading snapshots.
Clean up sequence widget label drawing behavior.
Don't make an assertion when drawing empty regions.
Add 'Denormalize' to Audio_Region context menu.
Disable some Audio_Region context menu items when appropriate.
Display Y-axis value for control points on mouse over.
Fix selection bug for Control Points.
Cleanup capture code and eliminate off-by-one-buffer bug when bouncing tracks.
Clean up signedness problems in Loggable ID treatment.
Add LASH connection indicator to GUI along with --no-lash command line option.
Implement storage and loading of unjournaled state for Loggable objects.
Use a hash instead of an array for indexing loggables.
Add some error checking to unjournaled state save/load.
Remove unnecessary code from unjournaled state loader.
Use a single hash table for storing loggables and unjournaled state.
Remove unnecessary debugging output.
Don't leak memory in handling of unjournaled state.
Implement capture-offset latency compensation.
Give newly created track the focus.
Save unjournaled state on LASH save file event.
Don't lose timeline settings on LASH save event...
Clean up region trimming code.
Clean up region splitting code.
Clean up journal transaction buffer code to avoid overflow.
Assert whenever an invalid journal entry is encountered.
Don't allow transport relocation while recording.
Check for makedepend command in configure script.
Add 'ar' to required commands in configure script.
Fl_Arc_Dial: Don't forget to execute callback for mousewheel events
Soften the glare effect in FL_BURNISHED_OVAL_BOX
Fl_Arc_Dial: Draw value over face of dial
Implement Fl_Flowpack.
Implement Fl_Labelpad_Group
Fl_Sometimes_Input: Draw a box.
Refactor common components of Timeline and Mixer into nonlib/
Makefile: disable function inlining when building for debugging.
Timeline: Try to make the window fill the screen at startup.
Make boxtype drawn on Fl_Sometimes_Input's up mode configurable.
Configure: Don't forget to eval result of 'ask' function.
Make optimized drawing of timeline canvas a compile-time option.
Make doublebuffering of the timeline sub-window a compile-time option.
Make use of a sub-window for the timeline a compile-time option.
Update some copyright years.
LASH_Engine: Add missing include.
Timeline: Add blinker to indicate that one or more sequence widgets is selected.
Timeline: Don't forget to journal edits to time and tempo points!
Fl_Sometimes_Input: Add omitted include.
Fl_Labelpad_Group: Measure using actual font of widget instead of always FL_HELVETICA.
Timeline: Always resize tracks Fl_Pack.
Don't die if user picks a popup menu item with no callback set (e.g. a submenu node).
Timeline: Don't die if the user cancels a Track's manual channels set dialog.
Add some profiling output for project loading.
Attempt to fix sign error in declicking logic for 64-bit systems.
Timeline: Attempt to constrain main window to size of screen, but don't automatically fill the screen.
Don't allow process callback to be invoked between Engine and JACK::Client destruction.
Control Sequences should output control voltage values between 0.0 and 1.0, not -1.0 and 1.0.
Allow the removal of annotation sequences via a context menu.
User can temporarily disable snapping by holding down 's'.
Make it optional (Options/Behavior/...) wether or not stopping the transport disables global record.
Ignore events with modifiers in Timeline::handle() to avoid eating keyboard event for global rec enable.
Add context menu entries (with keybindings) to Track for record, mute, and solo.
Add FL_Menu keybinding to popup Track context menu.
Assign a shortcut to 'Transport' submenu.
Add entries (with keybindings) for size to Track context menu.
Properly set default color scheme.
Remove (deprecated) LASH support.
Implement Mixer.
Mixer: Fix memory error and fill newly allocated chain buffers with silence.
Mixer: Properly handle multiple plugin instances in one Plugin module..
Mixer: Fix orientation of vertical sliders in Module_Parameter_Editor
Mixer: Make main scrollbar work again.
Mixer: Hide panner widget until it's ready to be connected to something...
Mixer: Teach modules how to serializer their input port settings.
Mixer: Share (reuse) buffers between all chains.
Mixer: Fix optimized meter drawing.
Mixer: Don't redraw mixer strips unnecessarily.
Mixer: Clean up some compiler warnings.
Mixer: Allow peaks to be reset on mouse click in Meter_Module
Mixer: Improve the mousewheel behavior of Fl_Arc_Dial and add Fl_Value_SliderX.
Mixer: Don't forget to remove timeouts in destructors!
Mixer: Changes to support project saving/loading.
Split New_Project_Dialog out into FL/ to share with mixer.
JACK_Module: Don't forget to shutdown input ports in destructor.
Mixer: Add menubar.
Mixer: GUI Cleanups. Also, permit moving of strips to the left/right.
Mixer: Implement "quit" command.
Mixer: Gain_Module now accepts gain in dB.
Timeline: Add blinker to indicate that one or more sequence widgets is selected.
Mixer: Fix one-off in vertical position of DPM.
Mixer: Clip module labels.
Module_Parameter_Editor: Use Fl_Menu_Button instead of Fl_Choice to improve layout.
Mixer/Module: Save/restore 'active' state.
Mixer_Strip: Don't forget strip's color.
Mixer: Don't forget to save and load controllers.
Module_Parameter_Editor: Hide the module name label because it rarely fits in the window.
Mixer: Fix race condition causing invalid read in process thread of Meter_Indicator_Module.
Mixer/Plugin_Module: Properly manage number of plugin instances.
Mixer: Rearrange so that each mixer strip runs as its own JACK client.
Add hack to support 'renaming' of JACK::Client.
Mixer: Fix plugin loading chicken/egg problem.
Mixer/Plugin_Module: Don't die because user picks a category instead of a plugin.
Fix bug in plugin input configuration.
When recreating ports after 'renaming' a jack client, sort by mode, then alpha.
Cleanup.
Timeline: Always resize tracks Fl_Pack.
Mixer: Add a Mono Panner module.
Silence warnings about asprintf return value.
Mixer: Allow user to add internal modules as well as plugins to a chain.
Mixer: Improve chain insert debugging messages.
Mixer/Chain: Avoid renaming JACK clients unnecessarily.
Mixer: Fix invalid read in module picker.
Mixer: GUI Tweaks.
Mixer: Use doublebuffering for main window.
Mixer: Fix box type of strip name widgets.
Mixer: Draw inactive modules in darker colors.
Mixer: Don't require a connected control input for processing audio in Gain_Module.
Make the interval of Fl_Blinker configurable.
JACK doesn't like it if you set a slow-sync callback and don't act like a slow-sync client...
Timeline: Add a blinker for pending seek.
Mixer: Put chian modules inside an Fl_Scroll.
Mixer: Decrease the default height of Plugin_Module's.
Add option to tile mixer strips into 1, 2, or 3 rows.
Mixer: Scan for plugins in a background thread.
Mixer: Add context menu for Controllers. Save/load control mode.
Mixer: Make chain background color match mixer strip.
Mixer: Explicitly destroy chian when tearing down mixer strip.
Mixer: Show peak value in tooltip on DPMs.
Disable mouse-over highlighting of mixer strip name fields.
Implement Fl_Packscroller, an alternative to Fl_Scroll better suited to containing vertical Fl_Packs.
Use Fl_Packscroller for modules in Chain.
Don't bother drawing a DPM if it's clipped.
Mixer: Define minimum height for mixer strips.
Mixer: Make spatialization control visible again (but it's still not connected to anything)
Mixer: Add some stuff to the menubar.
Mixer: Implement Project/Open menu option.
Mixer: Add stuff to Options/ menu. Save and load options.
Mixer: Apply appropriate change required by 66daa1.
Split About Dialog off into FL/
Fix the new project dialog.
Mixer: Make sure process queue is rebuilt upon binding of controls.
Mixer: Add Help/Manual option to menubar.
Mixer: Make insert-before work for meter indicator module.
Mixer: Cleanup.
Mixer: Allow the WM to kill the mixer window.
Mixer: Attempt to improve the behavior of single-row display mode.
Prevent Timeline and Mixer from attempting to open each other's project formats.
Mixer: Add context menu to mixer strips.
Fl_Packscroller: Let children have a go at events...
FL/menu_popup: Call menu's callback if menu item lacks one.
Mixer: Add context menus for modules.
Mixer: Clean up event handling.
Mixer: Respond appropriately to JACK buffer size callback.
Attempt to cope with failure to create JACK clients and ports.
Add documentation for mixer and restructure supporting tree.
Mixer: Add color chooser to mixer strip context menu.
Add section on control voltages to mixer doc.
Centralize color schemes.
Mixer: Middle click toggles module activation state.
Mixer: Add click-to-focus for mixer strips.
Mixer: Fix restrip rename menu option.
Update mixer documentation.
Enforce JACK client name length restrictions.
Mixer: Separate out public project commands.
Mixer: Don't allow any strips to be created without an open projcet.
Make logo used in About_Dialog an option.
Makefile: Remove some noise from dependency generation output
Fix syntax error in TLE.fl
Mixer: Implement cut/copy/paste for modules.
Mixer: Improve keyboard focus.
Mixer: Add more keybindings to modules.
Mixer: Use a toggle in module context menu for bypass instead of separate activate/deactivate items.
Update mixer documentation.
Mixer: Make chains look better in the Light scheme.
Fl_Flowpack: Flow mode should default to on!
Mixer: tweak the size of GUI elements.
Mixer: Don't show mixer strip label.
Mixer: Show project name on menubar.
Mixer: Set X class of main window.
Mixer: Warn if user attempts to quit without saving.
Mixer: Don't show label for Meter module...
Mixer: Fix "Help" menu item.
Update mixer screenshots.
Mixer: Support specifying an instance name on the command line (--instance)
Prefix main window titles with "Non DAW : "
Mixer: Clean up some compiler warnings.
Massively reoganize tree.
Timeline: Hide seek blinker, which may not be particularly useful.
Mixer: Don't show module context menu for Meter_Indicator_Module.
Fl_Packscroller: Don't eat unwanted FL_PUSH events.
Bump version.
Tweak build system.
New logo for Non-DAW.
Improve logo for Non-Mixer.
FL: Make About_Dialog more dynamic.
Last minute documentation updates.
Peter Nelson (1):
Don't silence input ports.
--
Feb 01 2010,
Jonathan Moore Liles
hi everyone!
here's a question for sysadmin type low-latency adepts:
i have a general-purpose notebook that doubles as a lean and mean
recording machine. it's opensuse, which means it works nicely with most
bells and whistles, but it also has an awful lot of questionable stuff
running that interferes with stable low-latency performance.
so i usually boot into a ll kernel and kill everything i don't need for
the duration of a session.
to ease that job, i have put the (unused) runlevel 4 back to work:
basically i copied rc5.d into rc4.d and ruthlessly deleted everything i
don't want. now "sudo telinit 4" will slim down my process list.
since the runlevel corresponds with the need for a ll kernel, i wonder:
is there any way to tell the kernel (via grub) to tell init to ignore
the initdefault in /etc/inittab and go directly to runlevel $FOO?
and while we're there, doing a kexec instead of a warm reboot would be
so sexy - has anyone played with that yet?
tia,
jörn
Greetings,
I'm testing the Linuxsampler plugin with Ardour3 SVN. The plugin loads
correctly, and when I launch the Fantasia GUI it identifies itself
correctly in the interface. I can load a MIDI file in A3 and watch it
play the keyboard on the LS plugin. Everything looks good, but there's
no sound. There's also no instance of Linuxsampler in QJackCtl.
When I run LS + Fantasia standalone I noticed that it doesn't
autoconnect to JACK. Perhaps this is the problem, but I can't find where
to configure LS to autoconnect.
Any suggestions ? This is a low-priority issue for me, but it'd be nice
to figure out what's happening.
Best,
dp
Hi guys, I looking at reworking the mixer in a medium/large
C++ application. Any pointer/opinions/theories on how this
should be approached? (I know many of you have encountered
the problem.)
In particular, I'm thinking about having a central Mixer
object that the other parts of the application interface
with. This Mixer object would own, maintain, send, return,
and mix the buffers for everybody.
For those wanting/needing more details... read on.
APPLICATION
-----------
The application is Composite (http://gabe.is-a-geek.org/composite/).
It is intended to have DAW-like attributes... but is more
along the lines of a sequencer. Mixing is currently
implemented directly in the process() callback and inside
the sampler.[1]
RATIONALE
---------
The Sampler currently has a pointer to a parent class Engine
so that it can have access to the output buffers (currently
tied to AudioOutput 'drivers'). I would like to make
Sampler a more self-contained class.
APPROACHES I'M CONSIDERING
--------------------------
A. Create an abstract Mixer class. This class will manage
the audio buffers, their connects, send/return, etc.
The sampler class would, for instance, request from the
Mixer a buffer allocation. On every process cycle, the
Sampler would get a fresh copy of the buffer pointer.
In this way, the Mixer could, if it wanted to, serve up
the exact same pointer that jack_get_buffer() returns.
B. Have Sampler own all its output buffers. Force other
applications to query or connect to them in order to do
mixing. An example of this approach would be the LV2 amp
example.[2] However, with this approach I'm concerned
that I won't be able to avoid buffer thrashing.
THINGS I'VE SEEN ELSEWHERE
--------------------------
Most applications I've looked at have a very de-centralized
approch. If you are the author of one of these -- forgive
me if I've failed to grok your code! :-)
* Ingen handles mixing as a feature of a "connection."
It also appears that gain has to be handled elsewhere
(like an amplifier insert.) However, in Composite
I'd like to avoid setting up an arb. connection
framework at this stage.
* Ardour appears to handle channel gain internal to
each channel/buffer object. The output mix-downs
are more or less handled directly in the process()
callback.[3]
* Non-daw appears to handle it similar to Ardour.
* All of them, at the core, implement the mixing as
some manner of basic function... like a specialized
memcpy().
* All of them implement SSE optimizations in mixing, or
at least have them on their TO-DO list.
Any thoughts or comments are appreciated!
Thanks,
Gabriel
[1] If digging in the code, it's roughly at:
src/Tritium/src/EnginePrivate.cpp:438
src/Tritium/src/Sampler.cpp:419
src/Tritium/src/Sampler.cpp:598
Current git revision cfebf2058...
[2] http://lv2plug.in/plugins/Amp-example.lv2/
[3] See, e.g. AudioTrack::roll() in libs/ardour/audio_track.cc
Hi guys, I looking at reworking the mixer in a medium/large
C++ application. Any pointer/opinions/theories on how this
should be approached? (I know many of you have encountered
the problem.)
In particular, I'm thinking about having a central Mixer
object that the other parts of the application interface
with. This Mixer object would own, maintain, send, return,
and mix the buffers for everybody.
For those wanting/needing more details... read on.
APPLICATION
-----------
The application is Composite (http://gabe.is-a-geek.org/composite/).
It is intended to have DAW-like attributes... but is more
along the lines of a sequencer. Mixing is currently
implemented directly in the process() callback and inside
the sampler.[1]
RATIONALE
---------
The Sampler currently has a pointer to a parent class Engine
so that it can have access to the output buffers (currently
tied to AudioOutput 'drivers'). I would like to make
Sampler a more self-contained class.
APPROACHES I'M CONSIDERING
--------------------------
A. Create an abstract Mixer class. This class will manage
the audio buffers, their connects, send/return, etc.
The sampler class would, for instance, request from the
Mixer a buffer allocation. On every process cycle, the
Sampler would get a fresh copy of the buffer pointer.
In this way, the Mixer could, if it wanted to, serve up
the exact same pointer that jack_get_buffer() returns.
B. Have Sampler own all its output buffers. Force other
applications to query or connect to them in order to do
mixing. An example of this approach would be the LV2 amp
example.[2] However, with this approach I'm concerned
that I won't be able to avoid buffer thrashing.
THINGS I'VE SEEN ELSEWHERE
--------------------------
Most applications I've looked at have a very de-centralized
approch. If you are the author of one of these -- forgive
me if I've failed to grok your code! :-)
* Ingen handles mixing as a feature of a "connection."
It also appears that gain has to be handled elsewhere
(like an amplifier insert.) However, in Composite
I'd like to avoid setting up an arb. connection
framework at this stage.
* Ardour appears to handle channel gain internal to
each channel/buffer object. The output mix-downs
are more or less handled directly in the process()
callback.[3]
* Non-daw appears to handle it similar to Ardour.
* All of them, at the core, implement the mixing as
some manner of basic function... like a specialized
memcpy().
* All of them implement SSE optimizations in mixing, or
at least have them on their TO-DO list.
Any thoughts or comments are appreciated!
Thanks,
Gabriel
[1] If digging in the code, it's roughly at:
src/Tritium/src/EnginePrivate.cpp:438
src/Tritium/src/Sampler.cpp:419
src/Tritium/src/Sampler.cpp:598
Current git revision cfebf2058...
[2] http://lv2plug.in/plugins/Amp-example.lv2/
[3] See, e.g. AudioTrack::roll() in libs/ardour/audio_track.cc