Hi,
after a somewhat productive weekend I'm happy to announce some alpha
quality software (i.e. bug ridden, not feature complete) for your
consideration and feedback :)
But: release early, release often XD
I went a little overboard with modularization and separation of
concerns, so in the end it became four packages (with possibly one more
in the future - a LV2 plugin to load the synths/instruments).
Documentation is also very much lacking, but each package contains at
lease a single example file to illustrate the usage.
* ladspa.m - https://github.com/fps/ladspa.m
ladspa.m is a header only c++ library to build and run general synthesis
graphs made up out of LADSPA plugins. The interface is kept deliberately
kept simple and unsafe, as it is expected that one uses higher level
tools to build these synthesis graphs (e.g. using a library on top op
ladspa.m.swig or ladspa.m.proto).
* ladspa.m.swig - https://github.com/fps/ladspa.m.swig
ladspa.m.swig are SWIG generated python bindings for ladspa.m. This
allows building and running general synthesis graphs made up of LADSPA
plugins from within python. This requires ladspa.m. NOTE: I just saw
that the swig interface definition lacks the ability to connect outside
buffers onto plugin ports. This will be fixed in the next few days..
* ladspa.m.proto - https://github.com/fps/ladspa.m.proto
ladspa.m.proto contains google protobuf definitions for general
synthesis graphs made up of LADSPA plugins. It also contains a
definition for an instrument file format. This library does not depend
on either of the two above. It becomes useful with the last package
(ladspa.m.jack) and possibly in the future with an LV2 plugin to load
and run these (to be announced when done). The python bindings generated
for ladspa.m.proto can be used to generate synth and instrument files
that can be loaded by ladspa.m.jack. The instrument file definition
allows for polyphony while at the same time putting no constraints on
the inner structure of the instrument (each voice is made up out of
plugins, they can be identical or not between all voices)..
An example is included which defines a simple sawtooth instrument with
exponential envelopes and with 5 identical voices except for a different
delay setting on each voice.
https://github.com/fps/ladspa.m.proto/blob/master/example_instrument.py
Pipe its output into a file called e.g. instrument.pb. This you can then
load into ladspa.m.jack.instrument.
Here's a little example of the generated instrument file loaded into
ladspa.m.jack.instrument and playing a little 120bpm loop (from ardour3)
with it:
https://soundcloud.com/fps-2/t-m
This also highlights the need for a higher level interface on top of it
to ease the process..
* ladspa.m.jack - https://github.com/fps/ladspa.m.jack
ladspa.m.jack is a library which allows loading ladspa.m.proto synth and
instrument definition files into jack hosts that are provided as example
clients.
ladspa.m.jack.synth allows loading a synth definition file and run it in
the jack graph.
ladspa.m.jack.instrument allows loading an instrument definition file
and provides a midi in port which allows playing the synth.
But like I said this is all ALPHA software and I just announce it
because someone else might have fun with it. Please report all issues
that you find either per email to me, on LAD or LAU or on the issue
trackers of the github projects..
Have fun,
Flo
--
Florian Paul Schmidt
http://fps.io
Last time i tried to make a roll with G-Town Church Bassdrum, but it
appears ugly. Did not try to humanize timing, but expecting it much
better with interpolation. May be, it is some hidden feature, which is
not used in most freeware gig and sfz banks?
I've been working with large lscp files, over a hundred .idfs for muse 2,
etc, for sometime now, and i'm pretty well knackered from manually creating
large monolithic instrument config files of some sort or another, for the
same sample library set, across apps.
I propose the following, and i'm wiling to put some money in someone's
pocket for this:
A simple app (CLI is ok but GUI based preferred) that:
1) automatically converts lscp files containing single or multiple midi
instrument maps into individual midnam files.
2) automatically converts muse2 .idf files into midnam files.
3) converts midnam files into muse2 .idf files
Obviously needs to work properly, and create correct ( auto app checked)
midnam and .idf files.
App needs to be opensource (obviously), and public, for those other poor
souls who have to struggle with large instrument files, particularly those
using large sample libs with copious articulations per instrument, and for
whom automation of these excruciating data processing tasks would save
massive amounts of time and effort.
Thanks, and if you're interested, contact me privately,
Alex Stone.
Hi all,
Time for another update for general consumption, minor changes done but
quite a few of them!
Nearly arbitrary list of changes from the changelog:
- Allow reading old drummaps for new style drumtracks
- Added metronome icon in main window
- Fixed moving events with keyboard in Drum editor
- Added theme support, Light, Dark and Ardour so far
- Added missing line draw shortcut (F) to drum editor.
- Added new french translation from Yann Collette
- Added: Pan and Zoom tools to editors. P + Z shortcuts. Added a Settings
item for alternate behaviour.
- Fixed: Pianoroll and Drum Editor 'Snap' boxes not remembering 1st or 3rd
columns.
- Fixed: Arranger 'Snap' was not stored or remembered.
- Fixed: Accelerator buttons shift/ctrl/alt for moving/copying/cloning /
restricting movement.
- Fixed: Shift key restricting movement: Ignore snap setting now.
- Fixed: Resize shift key ignore snap setting now.
- Fixed: Draw new item shift key ignore snap setting now.
- Fixed: Shift key was not snapping to vertical.
- Fixed: ALL 'Speaker' related playing of notes. Works with new notes,
moving notes, piano press etc.
- Fixed: ALL 'Speaker' related notes now send true note-offs instead of
zero-velocity note-ons.
- Fixed: Drum 'Cursor' mode was playing double notes.
- Fixed: New Drums 'Cursor' mode and instrument up/down movement was
broken, jumping all over the place.
- Added prebuilt PDF of manual (work in progress)
- Improved: Shortcut listings: Added Wave/Score categories. Re-categorized
several keys. Updated README.shortcuts
- Improved: Right-click menus expanded. Now also shows 'Tools' menu when
clicked on parts.
- Added choice of new metronome with different sounds and adjustable volume.
- Fixed gain adjustment with 'Other' choice in wave editor, it was reversed
For more information and additional changes see the full changelog:
http://lmuse.svn.sourceforge.net/viewvc/lmuse/trunk/muse2/ChangeLog?revisio…
Find the download at:
https://sourceforge.net/projects/lmuse/files/
MusE on!
The MusE Team
Hi all,
I once saw a helpful chart showing how latency
propagates through the JACK graph, through
the capture and playback ports of each
node.
Can anyone provide a link?
I want to make sure I understand correctly, that my app's
latency callback should be checking capture latency at the
input ports and setting playback latency on the output
ports.
Thanks,
Joel
--
Joel Roth
Hi All,
Just a note that I've extracted JNAJack (Java bindings for JACK) from
the Praxis LIVE repository, along with other elements of the
JAudioLibs code, and it's now on GitHub at
https://github.com/jaudiolibs Should make it easier for people to
work with (and contribute to!) the code.
Downloads and other facilities are still on the Google Code site at
http://code.google.com/p/java-audio-utils/ for now.
Best wishes,
Neil
--
Neil C Smith
Artist : Technologist : Adviser
http://neilcsmith.net
Praxis LIVE - open-source, graphical environment for rapid development
of intermedia performance tools, projections and interactive spaces -
http://code.google.com/p/praxis
OpenEye - specialist web solutions for the cultural, education,
charitable and local government sectors - http://openeye.info
Hi, I need some advice, clear up some confusion:
I noticed our app uses this pan formula:
vol_L = volume * (1.0 - pan);
vol_R = volume * (1.0 + pan);
where volume is the fader value, pan is the pan knob value
which ranges between -1.0 and 1.0, and vol_L and vol_R are the
factors to be applied to the data when sending a mono signal
to a stereo bus.
When pan is center, 100% of the signal is sent to L and R.
At pan extremities, the signal is boosted by 3dB.
But according to [1], we should be using a Pan Law [2],
where pan center is around 3dB to 6dB down and pan
extremities is full signal.
So I want to change how we mix mono -> stereo and use
true Pan Law. I could add a Pan Law selector, seems like it
might be useful for various studio acoustics.
Then I noticed we use the same formula above to apply 'balance'
(using the same pan knob) when sending a stereo signal to
a stereo bus.
But according to [3] we should be using a true balance control, not those
same pan factors above. And according to [1]:
"Note that mixers which have stereo input channels controlled by a single
pan pot are in fact using the balance control architecture in those channels,
not pan control."
So I want to change how we mix stereo -> stereo and use true balance.
But then I checked some other apps to see what they do.
In an unofficial test I noticed that QTractor seems to do the same thing,
that is, when pan is adjusted on a stereo track, one meter goes up while
the other goes down. RG seems not to have stereo meters and Ardour
I couldn't seem to make pan affect the meters, I will try some more.
My questions:
Is the pan formula above popular?
What is the consensus on stereo balance - use a Pan Law, being the
formula above or otherwise, or use a true balance?
What should I do in the remaining case sending a stereo signal to a mono bus?
If I am using a Pan Law as balance, the two signals will have already been
attenuated at pan center so I could simply sum the two channels together.
But if instead I use true balance, at center the two signals are 100%.
So should I attenuate the signals before summing them to a mono bus?
Currently as our pan formula above shows, there would be no attenuation.
Thanks.
Tim.
[1]
http://en.wikipedia.org/wiki/Panning_%28audio%29
[2]
http://en.wikipedia.org/wiki/Pan_law
[3]
http://www.rane.com/par-b.html#balance