Hi,
This is request-for-test (RFT) to the ALSA control service programs for
devices with Fireworks board module. The program is available in
'topic/service-for-efw' of below repository, and the RFT is corresponding
to Pull Request #2:
* https://github.com/alsa-project/snd-firewire-ctl-services/
If you have listed devices and handle them by ALSA fireworks driver, please
test the service program according to the below instruction.
* Mackie (Loud) Onyx 1200F
* Mackie (Loud) Onyx 400F
* Echo Audio Audiofire 12 (till Jul 2009)
* Echo Audio Audiofire 8 (till Jul 2009)
* Echo Audio Audiofire 12 (since Jul 2009)
* Echo Audio Audiofire 8 (since Jul 2009)
* Echo Audio Audiofire 2
* Echo Audio Audiofire 4
* Echo Audio Audiofire Pre8
* Gibson Robot Interface Pack (RIP) for Robot Guitar series
Background
----------
The models with Fireworks board module are already supported by ALSA
fireworks driver for their isochronous packet stream functionality
and vendor-specific transaction. Although the driver allows userspace
applications to process PCM frames and MIDI messages in the packet
streaming, it doesn't support the other functionalities such as volume
control since it can be achieved by any usespace application which
executes ioctl(2) to ALSA hwdep character device for the transaction.
The service program is to satisfy the demand to control the models.
ALSA control applications can request the control by IPC to the service
program.
In detail of mechanism, please read README.rst in the repository[1].
You can see some illustrations.
How to build
-------------
The project depends on several libraries in below repositories:
* glib[2]
* alsa-gobject v0.1.0[3]
* libhinawa v2.0.0[4]
Before building it, please install them with gobject-introspection support.
The project is written by Rust programming language[5] and packaged by
cargo[6]. To build, just run below commands in the environment to connect
to internet:
```
$ git clone https://github.com/alsa-project/snd-firewire-ctl-services.git -b topic/service-for-efw
$ cd snd-firewire-ctl-services
$ cargo build
```
All of required crates are downloaded automatically, then start build.
Executables
-----------
After building, `snd-fireworks-ctl-service` executable is available.
When running, the program adds and maintains control elements, then enter
event loop to dispatch events. The added elements are visible and manipulable
for any userspace applications. The program dispatch any manipulation
event for transactions to control actual device.
The executable has an option for the numerical ID of sound card.
```
Usage:
snd-fireworks-ctl-service CARD_ID
where:
CARD_ID: The numerical ID of sound card.
```
It's easy to run the executable by cargo, like:
```
$ cargo run --bin snd-fireworks-ctl-service 2
```
Receiving SIGTERM signal terminates the event loop, then the program
finishes.
During runtime, any ALSA control applications can enumerate and manipulate
the added control elements. This is an example of Echo Audio AudioFire 2:
```
$ amixer -c 2 controls
numid=33,iface=MIXER,name='clock-detect'
numid=2,iface=MIXER,name='clock-rate'
numid=1,iface=MIXER,name='clock-source'
numid=36,iface=MIXER,name='input-meter'
numid=34,iface=MIXER,name='midi-in-detect'
numid=35,iface=MIXER,name='midi-out-detect'
numid=6,iface=MIXER,name='monitor-gain'
numid=7,iface=MIXER,name='monitor-gain',index=1
numid=8,iface=MIXER,name='monitor-gain',index=2
numid=9,iface=MIXER,name='monitor-gain',index=3
numid=10,iface=MIXER,name='monitor-gain',index=4
numid=11,iface=MIXER,name='monitor-gain',index=5
numid=12,iface=MIXER,name='monitor-mute'
numid=13,iface=MIXER,name='monitor-mute',index=1
numid=14,iface=MIXER,name='monitor-mute',index=2
numid=15,iface=MIXER,name='monitor-mute',index=3
numid=16,iface=MIXER,name='monitor-mute',index=4
numid=17,iface=MIXER,name='monitor-mute',index=5
numid=24,iface=MIXER,name='monitor-pan'
numid=25,iface=MIXER,name='monitor-pan',index=1
numid=26,iface=MIXER,name='monitor-pan',index=2
numid=27,iface=MIXER,name='monitor-pan',index=3
numid=28,iface=MIXER,name='monitor-pan',index=4
numid=29,iface=MIXER,name='monitor-pan',index=5
numid=18,iface=MIXER,name='monitor-solo'
numid=19,iface=MIXER,name='monitor-solo',index=1
numid=20,iface=MIXER,name='monitor-solo',index=2
numid=21,iface=MIXER,name='monitor-solo',index=3
numid=22,iface=MIXER,name='monitor-solo',index=4
numid=23,iface=MIXER,name='monitor-solo',index=5
numid=38,iface=MIXER,name='monitoring'
numid=37,iface=MIXER,name='output-meter'
numid=31,iface=MIXER,name='output-mute'
numid=30,iface=MIXER,name='output-volume'
numid=4,iface=MIXER,name='playback-mute'
numid=5,iface=MIXER,name='playback-solo'
numid=3,iface=MIXER,name='playback-volume'
numid=32,iface=MIXER,name='stream-playback-routing'
```
Access permissions for relevant character devices
--------------------------------------------------
The executable manipulates below character devices to dispatch, and emit
events from end to end. The '%u' is the numerical number of instance in
each subsystem:
* ALSA control character device (/dev/snd/controlC%u)
* ALSA hwdep character device (/dev/snd/hwC%uD%u)
* Linux firewire character device (/dev/fw%u)
Feedback
--------
Any feedback is welcome. For questions, please use mailing list of alsa-devel
or alsa-users[7]. For issues, please use service of github.com[8].
Issues
------
The name of control elements are not fixed yet since the convention of
name for element set is not clear yet for recording equipment.
Users may feel inconvenience to which channel corresponds to which physical
port. Furthermore, in the case that element set includes several elements,
it's unclear that which element corresponds to which physical port as well.
ALSA control core has no feature for the above issues at present.
[1] https://github.com/alsa-project/snd-firewire-ctl-services
[2] https://gitlab.gnome.org/GNOME/glib
[3] https://github.com/alsa-project/alsa-gobject/
[4] https://github.com/alsa-project/libhinawa
[5] https://www.rust-lang.org/
[6] https://doc.rust-lang.org/cargo/
[7] https://www.alsa-project.org/wiki/Mailing-lists
[8] https://github.com/alsa-project/snd-firewire-ctl-services/issues
Regards
Takashi Sakamoto
Hi,
I had a hunch that's there is a way to trade latency for parallelism in
serial jack graphs (at least on jack2/jackdmp setups). Comments welcome..
https://github.com/fps/jack2_split
README.md below:
jack2_split
A program that facilitates parallelism in serial jack graphs by
introducing latency. Only useful for jack2/jackdmp - it does nothing but
add latency in jack1 setups.
What?
If you have a jack processsing graph that looks like this:
capture -> A -> B -> playback
where A and B are jack clients, then A and B must be scheduled in series
due to the linear dependency.
Running A and B serially might produce xruns (i.e. violate the
scheduling deadline imposed by jackd) while running only A or only B
might not.
jack2_split can be used to remedy the situation by using the following
graph:
capture -> A -> jack2_split -> B playback
jack2_split breaks the serial dependency by registering two jack clients
which respectively only have terminal input and output ports. It copies
the buffers from its inputs to its outputs after the current process
cycle. This introduces one additional period of latency into the graph,
but allows jack2/jackdmp to schedule A and B in parallel (e.g. on two
cores).
--
https://fps.io
I'm pleased to announce the release of guitarix2-0.41.0
A virtual guitar amplifier for Linux running with jack (Jack Audio
Connection Kit)
released under the GNU General Public License as published by the Free
Software Foundation;
either version 2 of the License, or (at your option) any later version.
This is a major release.
It introduce some new features and fix several bugs
Changelog:
* Add Slovak translation by Jozef Riha
* Fix issue #104 lv2 plugins contains executable stack, patch by
Alexander Tsoy
* Fix issue #105 Compile error on 0.40.0
* Fix issue #109 cannot initialize a variable of type 'char ' with an
rvalue of type 'void '
* Fix issue #110 error: unknown type name 'va_list'
* Add NSM support
* Add midi out for tuner
* Add low/high cut filter before tuner
* GxTuner set to use same precision then the tuner in guitarix
* Use tab-box for LV2 plugs with to much controls
* Disable GxVibe, because it is broken
* Fix several Bug's and hopefully don't introduce to much new one's
You could get it here:
https://sourceforge.net/projects/guitarix/
or here:
https://github.com/brummer10/guitarix
regards
hermann
Dear Linux Audio Dev Team,
I am looking to re implement and publish with the help of Wireshark a
software like Line6 PODHD 500x Edit for my POD HD500X (modification of
guitar pedal effects). To do this I need to claim the usb interface that
is already used by the snd-usb-podhd and redo the initialisation, also
already done by snd-usb-podhd. Therefore, to have both the audio and the
pedal management I would need to modify the module mentioned above. This
would aim to create a bridge between kernel and the userspace, that
redirects the usb urb bulk requests that are not used by the audio part,
to an interface (only isochronous is used after the init).
In the objective to be merged upstream in the future, how should I proceed:
* Use midi interfaces and create a fake one, knowing that the
proprietary but readable protocol is not midi compliant?
* Create a char device for the podhd pedal boards? Within the same module?
* Other suggestions?
In the same way, I am looking for suggestion regarding the data
transmitted within this interface. Would something like struct {int
message_len, char * data} be sufficient to be transmitted at every urb
bulk request?
Thanks in advance,
Nicolas SCHWARTZ
PS: I can share with you my test code and my current analysis on the
messages sent/received by the pod when clicking on buttons/sending
message from the PC, if needed.
Linuxaudio.org presents: New Session Manager Version 1.4.0
## Summary
The theme for this release is to fix known bugs and issues with both the
original Non-Session-Manager ("nsmd") server as well as its GUI (our
"nsm-legacy-gui"). Problems and inconsistencies that have piled up for
years were finally cleaned up (full changelog below).
Users do not need to take any action (besides updating), the session
save-format remains unchanged. Client programs, or rather their
developers, do not need to change or adjust anything; all changes are
"under the hood".
We have no self-hosted website yet, but plan to establish one in the
future. Until then the project can be found on Github:
https://github.com/linuxaudio/new-session-manager/https://github.com/linuxaudio/new-session-manager/releases/tag/v1.4.0
## Full Release Announcement:
New Session Manager (NSM) is a tool to assist music production by
grouping standalone programs into sessions. Your workflow becomes easy
to manage, robust and fast by leveraging the full potential of
cooperative applications.
It is a community version of the "NON Session Manager" and free in every
sense of the word: free of cost, free to share and use, free of spyware
or ads, free-and-open-source.
You can create a session, or project, add programs to it and then use
commands to save, start/stop, hide/show all programs at once, or
individually. At a later date you can then re-open the session and
continue where you left off.
All files belonging to the session will be saved in the same directory.
Check your distributions in a few days for New-Session-Manager 1.4.0
You can find the source release on Github:
https://github.com/linuxaudio/new-session-manager/releases/tag/v1.4.0
Bullet Points
* Drop-In replacement for the non-session-manager daemon nsmd and tools
(e.g. jackpatch)
* Simple and hassle-free build system to make packaging easy
* Possibility to react to sensible bug fixes that would not have been
integrated into original nsmd
* Stay upwards and downwards compatible with original nsmd
* Conservative and hesitant in regards to new features and
behaviour-changes, but possible in principle
* Keep the session-manager separate from the other NON* tools Mixer,
Sequencer and Timeline.
* Protect nsmd from vanishing from the internet one day.
* The goal is to become the de-facto standard music session manager for
Linux distributions
Changes since new-session-manager v1.3.2 (2020-06-20)
Add documentation and manpages.
Highlight: Provide updated API-Document (core documentation) on
https://linuxaudio.github.io/new-session-manager/api/index.html
Legacy-GUI:
Overhaul look and feel.
Rewrite labels and buttons with unambiguous descriptions.
Protect text-input dialog windows from empty strings, like "Add New
Client" or "New Session"
Scale icons, support more icon formats.
Show all icons and buttons when attaching to a running nsmd session
Various small fixes.
Always show correct session name, no matter how the session was loaded
or how the GUI was started
nsmd:
NSM_API_VERSION_MINOR from 0 to 1 (1.0 -> 1.1)
Repair nsmd to correctly send client data when running headless and a
GUI announces later.
ClientId generation now prevent collision with existing IDs.
nsmd command line option --load-session to directly load one
(Berkelder, Rik)
Better detection of clients that failed to launch leads to faster
session startup (by 5 seconds)
Users get informed by client-label if an executable is not present on
the system or permission denied
Fixed reply for listing sessions from a plain "Done." to proper reply
path with empty string as terminal symbol "/reply", "/nsm/server/list",
""
Fix operation reply to last treated client instead to reply to sender
(Picot, Mathieu / houston)
/nsm/gui/session/name send consistent session name/relative-path pair
to the annouced GUI, no matter how the session was loaded.
nsm.h
:optional-gui: support to nsm.h, for other applications to include and
use. (Meyer, Hermann / brummer )
This is a joint release from multiple people under the linuxaudio.org
"brand".
https://github.com/linuxaudio/new-session-manager
Greetings,
dvzrv, falktx and nils
Hi All,
Further to my earlier email about a python utility I wrote for manipulating
the non-class-compliant settings of the Tascam US4X4 USB Audio Interface, I
have created a kernel patch to add the relevant ALSA controls for the
device.
I'm looking to get it tested before I submit it as a kernel patch... would
be a pity to have to resort to "it works on my machine" when submitting a
patch for the linux kernel!
The patch file is here:
https://raw.githubusercontent.com/guysherman/linux-kernel-patches/main/0001…
It is based on 5.8.0-rc1.
Please let me know if anyone is available to help.
Kind regards,
Guy.
--
Guy Sherman
*e:* guy(a)guysherman.com
*w: *http://guysherman.com
Hi all,
After a long period of lethargy, with a help from Wladimir J. van der
Laan, I have revived Power Station Industrializer, a percussion sound
synthesizer base on physical modelling.
You can download it here:
https://sourceforge.net/projects/industrializer/files/
What is new in psindustrializer-0.2.6:
Code upgrade for build against modern environment (autotools,
gtk+-2, gtkglarea is replaced by gtkglext, esound is replaced by pulseaudio)
Jack audio driver
GUI improvements
Config and presets files syntax is improved (read compatibility
with old formats is preserved)
Sound drivers can be configurable (this facility is so far
implemented for ALSA driver)
Bugfixes
Regards,
Yury.
Hello,
a new version of B.SEQuenzr is just released. B.SEQuenzr is a
programmable multi channel step sequencer. Synchronization options are
added as new features. And it comes along with some basic factory
presets (arpeggios, drum beats) now.
Key features:
* Selectable pattern matrix size (8x16, 16x16, 24x16, or 32x16)
* Progammability via controls for playing direction, jump, skip, and
stop options placeable to any position within the matrix
* Autoplay or host / MIDI controlled playing
* Handles multiple MIDI inputs signals (keys) in one sequencer instance
* Use musical scales and / or drumkits
* Scale & drumkit editor
* Notes can be associated with four different, configurable output channels
* Output channels connectable with individual MIDI channels
What's new:
* Select between
* Restart from step 0,
* Restart from step 0 and sync with running steps,
* Or continue from running step if key pressed
* Enable MIDI Thru (important for downstream generator plugins!)
* Factory presets added (Techno, Standard Rock, Jazz, and Disco drumkits)
* Compiler error with gcc10 fixed
Project page: https://github.com/sjaehn/BSEQuencer/
Releases: https://github.com/sjaehn/BSEQuencer/releases
Instructions: https://github.com/sjaehn/BSEQuencer/wiki
Videos:
https://www.youtube.com/watch?v=J6bU4GdUVYchttps://www.youtube.com/watch?v=iERRKL7J-KUhttps://www.youtube.com/watch?v=Ih6_so7goGw
Enjoy and have fun
Sven Jaehnichen
MCPDISP is a utility to add a display on to a Mackie Control based control
surface that does not have it's own display such as the bcf2000. This is
important if banking is being used (the project has more than 8 tracks)
and also provides things like timecode or bar/beat readouts.
At present this is a jackd only utility though it should be possible to
bridge to ALSA using a2jmidid. Perhaps a later version will move to ALSA
MIDI instead.
The latest version can be found at:
https://github.com/ovenwerks/mcpdisp/releases/tag/mcpdisp-0.1.2
Some Packaging scripts were optimizing the buffer to the stack. This
release
fixes that.
Licenced as GPL-2+.
--
Len Ovens
www.ovenwerks.net