planet.linuxaudio.org

June 23, 2022

digital audio hacks – Hackaday

Faux-Retro “Tape” Player Runs on ESP32 and 80s Vibes

At first glance, this gorgeous retro-styled audio player built by [Max Kern] could absolutely pass for the genuine article. But then you take a closer look and realize that the “tape” it’s playing is actually an animation running on a 320 x 240 IPS display, and the Play and Rewind buttons on the front aren’t the chunky electromechanical affairs of yesteryear but actually cleverly repurposed MX keyboard switches.

By now you’re probably realizing that this player is quite a bit smaller than you first imagined, which in turn, means that it even its case is a modern fabrication. While it might perfectly encapsulate the look and feel of a piece of 1980s consumer electronics, it was squirted out on a thoroughly modern desktop 3D printer.

Even so, [Max] made sure to include draft angles in the CAD design and and a distinctive separation line so the case looked like it was injection molded. Following similar logic, he decided against using a modern rechargeable battery pack to power the electronics, opting instead for a more era-appropriate set of AA batteries.

In terms of hardware, the custom PCB is home to an ESP32 WROOM, a MAX98357A I2S audio amplifier, a FT231XS USB-to-serial chip, with enough passives and regulators to keep them all well fed and happy. The ESP32 has more than enough computational horsepower to chew through MP3 files, which are conveniently loaded via an SD slot built into the side of the player. As the player was actually intended for audio books, onboard playback is limited to a mono speaker; though there is a 3.5 mm audio jack to plug in a pair of headphones for when the built-in speaker isn’t up to the task.

Check out the video after the break to see how the player is assembled, as well as a demonstration of its simple three-button user interface. It looks like a joy to use, though the lack of fast forward and rewind sound effects took us a bit by surprise given the otherwise impeccable attention to detail. We’ll assume there’s some technical limitation that makes this particularly difficult to implement, and that their absence is currently keeping [Max] up at night.

As impressive as the final product is, we can’t say it’s a surprise. Frankly, we wouldn’t expect anything less from [Max] at this point. His adaptive OLED macro pad wowed us back in 2020, and his ZeroBot is still one of the slickest designs for a DIY two-wheeled robots we’ve ever seen.

by Tom Nardi at June 23, 2022 03:30 PM

June 20, 2022

The Linux-audio-announce Archives

[LAA] Survey and workshop on NIME archiving -- Call for Participation

Please pardon the cross-posting. My COMPEL project collaborators and I
would appreciate it if you would please distribute this email widely among
various communities whose work is rooted in computer music, starting with
composers, performers, and instrument and installation designers.

Dear all,

As part of the preparations for the Workshop on NIME Archiving
 to be held on 28 June, we look for
volunteers to fill out one or more records of *artifact*s (defined broadly)
in this survey:

*https://forms.gle/A8zNrFVxs9N4aBcp9 *

The idea is to check whether categories developed for the COMPEL archive
make sense from the community's perspective. We ask that you please
consider filling out the survey *before 24 June* so that we have a couple
of days to look at results before the workshop. Feel free to make entries
also if you cannot make it to the workshop!

Given that this effort may benefit the broader computer music community,
please note that *both the survey and the workshop are open to any person
who is interested in participating*, regardless whether they are registered
for the conference. Since this year NIME is an online-only conference, *the
zoom link will be forthcoming and will be shared with all survey
contributors and conference participants soon*.

The workshop will continue discussions in the community on how to best
preserve information from the NIME conferences, the NIME community, and the
computer music community at large. The workshop will follow up on threads
from the NIME publication ecosystem workshop
 (NIME
2020, Birmingham), ICMC 2018 paper
, SEAMUS 2018 conference
presentation, and the NIMEhub workshop
 (NIME 2016, Brisbane). As we
rebuild the COMPEL platform to sidestep technological limitations of the
old infrastructure, the main task is to find a solution for an open,
future-oriented, engaging, and institutionally recognized archiving
solution for the activities of the community that ensures *reproducibility *of
archived artifacts. While NIME publications are archived according to the FAIR
principles , currently no
solutions exist for archiving information about instruments/interfaces and
other hardware/software-based artifacts produced in the community. Neither
do we have a system for describing and preserving compositions/pieces,
installations, performances, and workshops. We believe that this challenge
affects the computer music community at large. The goal of this workshop
and forum discussions
 is to
propel the project forward and expand the community engagement.

Thank you for your consideration and participation. Should you have any
questions, please do not hesitate to contact one of the workshop organizers
.

Best,

Ico

-- 
Ivica Ico Bukvic, D.M.A.
Director, Creativity + Innovation
Director, Human-Centered Design iPhD
Institute for Creativity, Arts, and Technology

Virginia Tech
Creative Technologies in Music
School of Performing Arts  0141
Blacksburg, VA 24061
(540) 231-6139
ico at vt.edu

ci.icat.vt.edu
l2ork.icat.vt.edu
ico.bukvic.net

by ico at vt.edu (Ico Bukvic) at June 20, 2022 07:11 AM

June 19, 2022

blog4

Akustikkoppler on Underground Experiments III compilation

Akustikkoppler submitted the track Schrumpfende Städte, originally released on the first Album Im Glanz Der Nacht a couple of years ago, to the compilation Underground Experiments III from Chile, its track 38:

https://internetdaemon.bandcamp.com/album/underground-experiments-vol-iii

Underground Experiments vol.III by Various

by herrsteiner (noreply@blogger.com) at June 19, 2022 05:15 PM

KXStudio News

Cadence 0.9.2 release

Cadence 0.9.2 has just been tagged.
No new features have been added to the code-base.
The release is focused on fixing compatibility with new systems, specially for Python 3.10.

This release is quite late, all things considered.
Until a few days ago I was still running an Ubuntu 20.04 based OS, so I couldn't reproduce any crashes.
A few people submitted fixes for Python 3.10 compatibility, but I did not want to tag a new release before running a few tests myself.
I am now on a Ubuntu 22.04 based OS, so finally I was able to reproduce the reported issues and fix any extra ones that popped up.

I still hope to give Cadence an overhaul, splitting into separate projects so it is easier to manage and package.
The project started 12 years ago, there is some ugly code in there, nowadays I would have done a lot of stuff there differently.
Splitting Cadence into subprojects will also help on this overhaul, because it is less code to update and maintain each time.
But in any case, it is not something that will happen now, more like an idea/plan for later.

by falkTX at June 19, 2022 10:02 AM

June 15, 2022

GStreamer News

GStreamer 1.20.3 stable bug fix release

The GStreamer team is pleased to announce the third bug fix release in the stable 1.20 release series of your favourite cross-platform multimedia framework!

This release only contains important security fixes. It should be safe to update from 1.20.x and we recommend you upgrade at your earliest convenience.

Highlighted bugfixes:

  • Security fixes in Matroska, MP4 and AVI demuxers
  • Fix scrambled video playback with hardware-accelerated VA-API decoders on certain Intel hardware
  • playbin3/decodebin3 regression fix for unhandled streams
  • Fragmented MP4 playback fixes
  • Android H.265 encoder mapping
  • Playback of MXF files produced by older FFmpeg versions
  • Fix rtmp2sink crashes on 32-bit platforms
  • WebRTC improvements
  • D3D11 video decoder and screen recorder fixes
  • Performance improvements
  • Support for building against OpenCV 4.6 and other build fixes
  • Miscellaneous bug fixes, memory leak fixes, and other stability and reliability improvements

See the GStreamer 1.20.3 release notes for more details.

Binaries for Android, iOS, macOS and Windows will be available shortly.

Release tarballs can be downloaded directly here:

June 15, 2022 11:00 PM

Linux – CDM Create Digital Music

CLAP is a new open-source plug-in format from Bitwig, u-he – do we need it, and who will use it?

Bitwig and plug-in maker u-he today are announcing a new plug-in format into beta, dubbed CLAP, for CLever Audio Plug-in API. It's open and has features missing from the leading proprietary formats - and boasts some significant support at launch. So what will that mean for you?

The post CLAP is a new open-source plug-in format from Bitwig, u-he – do we need it, and who will use it? appeared first on CDM Create Digital Music.

by Peter Kirn at June 15, 2022 09:21 PM

June 14, 2022

digital audio hacks – Hackaday

LMN-3: Putting The ‘OP’ In Open Source Synthesizers

Some projects you come across simply leave you in awe when you look at the thought and the resulting amount of work that went into it, not only for the actual implementation, but everything around it. Even more so when it’s a single-developer open source project. [Stone Preston]’s synth / sampler / sequencer / DAW-in-a-box LMN-3 absolutely fits the description here, and it seems like he has set his heart on making sure everyone can built one for themselves, by providing all the design files from case down to the keycaps.

The LMN-3 (LMN as in “lemon”, not “comes before the OP“) is intended as a standalone, portable digital audio workstation, and is built around a Raspberry Pi 4 with a HyperPixel display for the user interface. The UI itself, and with it the core part of the software, was created using the Tracktion Engine, which itself uses the JUCE framework and combines your typical synthesizer, sequencer, and sampler features with the DAW part to handle recording, editing, and mixing. The remaining hardware is a custom-designed PCB with a set of function and keyboard buttons, along with a pitch bend joystick and four rotary encoders with push buttons that serve as main input handlers. Oh yes, and a Teensy board.

The UI is actually entirely controlled via MIDI commands, and custom firmware on the Teensy is translating the input events from buttons, encoders, and joystick accordingly. This essentially decouples the hardware from the software, and using a cross-platform framework underneath, you can also run the UI standalone on your computer and use any 3rd-party MIDI controller you like. Or then, as [Stone] thought really about everything, use a hardware emulator he created in addition. You could even leave out the Raspberry Pi and software altogether and turn this into a pure MIDI controller. If that sounds tempting, but you’re looking for something with more knobs and sliders instead of buttons, check out the Traktorino. And if you actually prefer a mouse as input device, there’s always something running in a browser.

by Sven Gregori at June 14, 2022 03:30 PM

June 07, 2022

rncbc.org

Vee One Suite 0.9.26 - An End-of-Spring'22 Release


Greetings,

The Vee One Suite of old-school software instruments,

  • synthv1 as a polyphonic subtractive synthesizer;
  • samplv1 a polyphonic sampler synthesizer;
  • drumkv1 as yet another drum-kit sampler;
  • padthv1 a polyphonic additive synthesizer.

Are here and once again released for the (northern) End-of-Spring'22 season.

Still delivered in dual form:

  • a pure stand-alone JACK client with JACK-session, NSM (Non Session Management) and both JACK MIDI and ALSA MIDI input support;
  • a LV2 instrument plug-in.

Change-log:

  • Corrected an incredible mistake introduced in the last year's Glide/portamento potential crash fix. (applies to all but drumkv1)
  • Added Qt::Svg module as required at build time.

The Vee One Suite are free, open-source Linux Audio software, distributed under the terms of the GNU General Public License (GPL) version 2 or later.

 

synthv1 - an old-school polyphonic synthesizer

synthv1 0.9.26 (end-of-spring'22) is out!

synthv1 is an old-school all-digital 4-oscillator subtractive polyphonic synthesizer with stereo fx.

LV2 URI: http://synthv1.sourceforge.net/lv2

website:
https://synthv1.sourceforge.io
http://synthv1.sourceforge.net

project page:
https://sourceforge.net/projects/synthv1

downloads:
https://sourceforge.net/projects/synthv1/files

git repos:
https://git.code.sf.net/p/synthv1/code
https://github.com/rncbc/synthv1.git
https://gitlab.com/rncbc/synthv1.git
https://bitbucket.org/rncbc/synthv1.git

 

samplv1 - an old-school polyphonic sampler

samplv1 0.9.26 (end-of-spring'22) is out!

samplv1 is an old-school polyphonic sampler synthesizer with stereo fx.

LV2 URI: http://samplv1.sourceforge.net/lv2

website:
https://samplv1.sourceforge.io
http://samplv1.sourceforge.net

project page:
https://sourceforge.net/projects/samplv1

downloads:
https://sourceforge.net/projects/samplv1/files

git repos:
https://git.code.sf.net/p/samplv1/code
https://github.com/rncbc/samplv1.git
https://gitlab.com/rncbc/samplv1.git
https://bitbucket.org/rncbc/samplv1.git

 

drumkv1 - an old-school drum-kit sampler

drumkv1 0.9.26 (end-of-spring'22) is out!

drumkv1 is an old-school drum-kit sampler synthesizer with stereo fx.

LV2 URI: http://drumkv1.sourceforge.net/lv2

website:
https://drumkv1.sourceforge.io
http://drumkv1.sourceforge.net

project page:
https://sourceforge.net/projects/drumkv1

downloads:
https://sourceforge.net/projects/drumkv1/files

git repos:
https://git.code.sf.net/p/drumkv1/code
https://github.com/rncbc/drumkv1.git
https://gitlab.com/rncbc/drumkv1.git
https://bitbucket.org/rncbc/drumkv1.git

 

padthv1 - an old-school polyphonic additive synthesizer

padthv1 0.9.26 (end-of-spring'22) is out!

padthv1 is an old-school polyphonic additive synthesizer with stereo fx

padthv1 is based on the PADsynth algorithm by Paul Nasca, as a special variant of additive synthesis.

LV2 URI: http://padthv1.sourceforge.net/lv2

website:
https://padthv1.sourceforge.io
http://padthv1.sourceforge.net

project page:
https://sourceforge.net/projects/padthv1

downloads:
https://sourceforge.net/projects/padthv1/files

git repos:
https://git.code.sf.net/p/padthv1/code
https://github.com/rncbc/padthv1.git
https://gitlab.com/rncbc/padthv1.git
https://bitbucket.org/rncbc/padthv1.git

 

Keep the fun!

Donate to rncbc.org using PayPal Donate to rncbc.org using Liberapay

by rncbc at June 07, 2022 07:00 PM

The Linux-audio-announce Archives

[LAA] Vee One Suite 0.9.26 - An End-of-Spring'22 Release

Greetings,

The 'Vee One Suite' of 'old-school' software instruments,

* synthv1 [1] as a polyphonic subtractive synthesizer;
* samplv1 [2] a polyphonic sampler synthesizer;
* drumkv1 [3] as yet another drum-kit sampler;
* padthv1 [4] a polyphonic additive synthesizer.

Are here and once again released for the (northern) End-of-Spring'22 season.

Still delivered in dual form:
- a pure stand-alone JACK client with JACK-session [5], NSM (Non Session 
Management [6]) and both JACK MIDI and ALSA MIDI [7] input support;
- a LV2 instrument plug-in [8].

Change-log:
- Corrected an incredible mistake introduced in the last year's 
Glide/portamento protential crash fix. (applies to all but drumkv1 [3])
- Added Qt::Svg module as required at build time.

The 'Vee One Suite' are free, open-source Linux Audio [10] software, 
distributed under the terms of the GNU General Public License (GPL) [11] 
version 2 or later.


**synthv1 - an old-school polyphonic synthesizer [1] **

   synthv1 0.9.26 (end-of-spring'22) is out!

   synthv1 is an old-school all-digital 4-oscillator subtractive 
polyphonic synthesizer with stereo fx.

   LV2 URI: http://synthv1.sourceforge.net/lv2

website:
   https://synthv1.sourceforge.io
   http://synthv1.sourceforge.net

project page:
   https://sourceforge.net/projects/synthv1

downloads:
   https://sourceforge.net/projects/synthv1/files

- source tarball:
   https://download.sf.net/synthv1/synthv1-0.9.26.tar.gz
- source package:
   https://download.sf.net/synthv1/synthv1-0.9.26-67.1.rncbc.suse.src.rpm
- binary packages (openSUSE Tumbleweed):
 
https://download.sf.net/synthv1/synthv1-jack-0.9.26-67.1.rncbc.suse.x86_84.rpm
 
https://download.sf.net/synthv1/synthv1-lv2-0.9.26-67.1.rncbc.suse.x86_84.rpm
- AppImage [9] package (JACK stand-alone only):
   https://download.sf.net/synthv1/synthv1-jack-0.9.26-67.1.x86_64.AppImage

git repos:
   https://git.code.sf.net/p/synthv1/code
   https://github.com/rncbc/synthv1.git
   https://gitlab.com/rncbc/synthv1.git
   https://bitbucket.org/rncbc/synthv1.git


**samplv1 - an old-school polyphonic sampler [2]**

   samplv1 0.9.26 (end-of-spring'22) is out!

   samplv1 is an old-school polyphonic sampler synthesizer with stereo fx.

   LV2 URI: http://samplv1.sourceforge.net/lv2

website:
   https://samplv1.sourceforge.io
   http://samplv1.sourceforge.net

project page:
   https://sourceforge.net/projects/samplv1

downloads:
   https://sourceforge.net/projects/samplv1/files

- source tarball:
   https://download.sf.net/samplv1/samplv1-0.9.26.tar.gz
- source package:
   https://download.sf.net/samplv1/samplv1-0.9.26-67.1.rncbc.suse.src.rpm
- binary package (openSUSE Tumbleweed):
 
https://download.sf.net/samplv1/samplv1-jack-0.9.26-67.1.rncbc.suse.x86_84.rpm
 
https://download.sf.net/samplv1/samplv1-lv2-0.9.26-67.1.rncbc.suse.x86_84.rpm
- AppImage [9] package (JACK stand-alone only):
   https://download.sf.net/samplv1/samplv1-jack-0.9.26-67.1.x86_64.AppImage

git repos:
   https://git.code.sf.net/p/samplv1/code
   https://github.com/rncbc/samplv1.git
   https://gitlab.com/rncbc/samplv1.git
   https://bitbucket.org/rncbc/samplv1.git


**drumkv1 - an old-school drum-kit sampler [3]**

   drumkv1 0.9.26 (end-of-spring'22) is out!

   drumkv1 is an old-school drum-kit sampler synthesizer with stereo fx.

   LV2 URI: http://drumkv1.sourceforge.net/lv2

website:
   https://drumkv1.sourceforge.io
   http://drumkv1.sourceforge.net

project page:
   https://sourceforge.net/projects/samplv1

downloads:
   https://sourceforge.net/projects/drumkv1/files

- source tarball:
   https://download.sf.net/drumkv1/drumkv1-0.9.26.tar.gz
- source package:
   https://download.sf.net/drumkv1/drumkv1-0.9.26-67.1.rncbc.suse.src.rpm
- binary package (openSUSE Tumbleweed):
 
https://download.sf.net/drumkv1/drumkv1-jack-0.9.26-67.1.rncbc.suse.x86_84.rpm
 
https://download.sf.net/drumkv1/drumkv1-lv2-0.9.26-67.1.rncbc.suse.x86_84.rpm
- AppImage [9] package (JACK stand-alone only):
   https://download.sf.net/drumkv1/drumkv1-jack-0.9.26-67.1.x86_64.AppImage

git repos:
   https://git.code.sf.net/p/drumkv1/code
   https://github.com/rncbc/drumkv1.git
   https://gitlab.com/rncbc/drumkv1.git
   https://bitbucket.org/rncbc/drumkv1.git


**padthv1 - an old-school polyphonic additive synthesizer [4]**

   padthv1 0.9.26 (end-of-spring'22) is out!

   padthv1 is an old-school polyphonic additive synthesizer with stereo fx.

   padthv1 is based on the PADsynth algorithm by Paul Nasca, as a 
special variant of additive synthesis.

   LV2 URI: http://padthv1.sourceforge.net/lv2

website:
   http://padthv1.sourceforge.net
   https://padthv1.sourceforge.io

project page:
   https://sourceforge.net/projects/padthv1

downloads:
   https://sourceforge.net/projects/padthv1/files

- source tarball:
   https://download.sf.net/padthv1/padthv1-0.9.26.tar.gz
- source package:
   https://download.sf.net/padthv1/padthv1-0.9.26-67.1.rncbc.suse.src.rpm
- binary package (openSUSE Tumbleweed):
 
https://download.sf.net/padthv1/padthv1-jack-0.9.26-67.1.rncbc.suse.x86_84.rpm
 
https://download.sf.net/padthv1/padthv1-lv2-0.9.26-67.1.rncbc.suse.x86_84.rpm
- AppImage [9] package (JACK stand-alone only):
   https://download.sf.net/padthv1/padthv1-jack-0.9.26-67.1.x86_64.AppImage

git repos:
   https://git.code.sf.net/p/padthv1/code
   https://github.com/rncbc/padthv1.git
   https://gitlab.com/rncbc/padthv1.git
   https://bitbucket.org/rncbc/padthv1.git


References:

  [1] synthv1 - an old-school polyphonic synthesizer
      https://synthv1.sourceforge.io
      http://synthv1.sourceforge.net

  [2] samplv1 - an old-school polyphonic sampler
      https://samplv1.sourceforge.io
      http://samplv1.sourceforge.net

  [3] drumkv1 - an old-school drum-kit sampler
      https://drumkv1.sourceforge.io
      http://drumkv1.sourceforge.net

  [4] padthv1 - an old-school polyphonic additive synthesizer
      https://padthv1.sourceforge.io
      http://padthv1.sourceforge.net

  [5] JACK Audio Connection Kit
      https://jackaudio.org/

  [6] NSM, Non Session Management
      http://non.tuxfamily.org/nsm/

  [7] ALSA, Advanced Linux Sound Architecture
      https://www.alsa-project.org/

  [8] LV2, Audio Plugin Standard, the extensible successor of LADSPA
      https://lv2plug.in/

  [9] AppImage, Linux apps that run anywhere
      https://appimage.org/

[10] Linux Audio consortium of libre software for audio-related work
      https://linuxaudio.org

[11] GNU General Public License
      https://www.gnu.org/copyleft/gpl.html


See also:
   https://www.rncbc.org/drupal/node/2355


Keep the fun!
--
rncbc aka. Rui Nuno Capela

by rncbc at rncbc.org (Rui Nuno Capela) at June 07, 2022 03:53 PM

blog4

June 05, 2022

fundamental code

Building a plant table: (3/3) putting it together

Well, this draft has been sitting unpublished for a while, but it’s time for the third part of my ad-hoc build series.

With the two pre-requisite jigs out of the way (1 2) here’s the main project. Essentially with winter arriving I had some typically outdoor plants which needed to be moved back inside to avoid the frost. My current home has reasonably high windows and narrow windowsills, so some sort of table was needed for my plants to get a reasonable amount of sunlight.

I started out with a simple stool that I had built with pine reclaimed from an old door. If you’ve got a landlord who takes a door off the hinges and tells you to get rid of it, what else are you going to do, eh?

So, while my stool does not look all that nice, it did give an initial sense of scale and provided a baseline for what felt right. Starting out, it was too short, stout, and generally too blocky. So at a high level whatever I prototyped would end up being a slimmed down tall stool. To make the profile leaner, the top would end up being circular, the legs thinner, and only three legs would get used. Placing the legs at an angle would help with the outline of the design, though it would complicate the joinery somewhat. Having linkages from legs to all of their neighbors would be possible, but it would be more complex to do as well as not being all that visually interesting. So to stabilize the table all three would be joined to the top and joined together at some point lower down in the frame

2022 06 old stool
Figure 1. Old stool for comparison

With the general plan in mind it was a matter of estimating what sizes felt right and rectifying that with what stock was available. While I had plants which certainly could use a better perch, using up old material and `scrap' was a primary project goal. Starting out with the table top it was a matter of placing a plant down on a sheet of cardboard, roughly tracing the desired outline relative to one of the objects it was going to hold. From there without any measurement a set of dividers could be used as a compass to get an accurate circle which could be cut out.

2022 06 cardboard
Figure 2. Cardboard tracing

The height of the table was initially measured by done by walking over to a window, eyeballing where it feels like the plants should be and then just placing a hand on my side at that height. While a smarter person would have simply measured the distance directly the destination of the tables wasn’t in the same room as the tools themselves. So, some measurement error may have accumulated, but that just adds to the character of the process.

As per the leg and top thickness, that was purely a constraint of what was easily on hand without milling fresh boards, creating additional scrap. Initially the plan was to make only one table, but hey who makes a project without some scope creep. The first part built out was the table tops. Each top is built out of a collection of scrap pieces which admittedly didn’t fit together all that well. As such, it was a concern that some of the tops would well, come out horribly? So far though, the low precision of a bandsaw & handtool combination has held together well with standard wood glue.

I ended up making three tops with one on the thin side and two chunkier tops. As they all turned out reasonably, so three tables it was. When it came to the legs there was a similar split of enough stock for three thin legs and six slightly thicker ones. The thin stock was slightly shorter as well, so to have a set of unique tables each one started out at a different height.

2022 06 template
Figure 3. Mortise Template

The build progressed fairly quickly from there. The above template was used to locate the top mortises, then the lowers were added about 2/3rds of the way down. The linkages of the lowers were more cherry stock available at the same rough dimensions as the legs themselves. Once everything was together and with some light calculation the lowers were cut to length and used to align a base joining plate.

The joining plate was a disk cut out on the circle jig (link), and the lowers were manually marked on it for where they’d fit into three recesses. Not as accurate as layout out the locations ahead of time, but there was much less math involved by seeing where parts naturally aligned.

The final results were pleasing in my opinion

2022 06 final results
Figure 4. Final tables
2022 06 tops
Figure 5. Table tops
2022 06 withplant
Figure 6. With a houseplant

Now it’s not to say there weren’t any flaws. A good set of photos could hide them, but I’ll mention them anyways. You can’t advance your craft without acknowledging where you can improve.

  • The bridle joints for the lower supports have some gaps due to the stock being out of square. It’s tricky for me to resolve this issue with my current tools, but becoming more proficient at jointing stock with hand planes should reduce this problem.

  • Lower joints were connected asymmetrically. Doing all of the math for the lower lengths, and how they were slotted into the joining plate would have resolved this issue.

  • Gaps were present where the legs connected to the top. I’m not sure of the complete fix here, though I suspect that the angles were slightly off between the upper tendon wall and the base of the tendon. Either that or the tendon bases were just trimmed with my chisel too sloppily. Some better marking, chiseling, and additional glue might resolve this particular issue.

  • Gaps within the table tops were initially visible. I’m not sure how to fix this one with my current set of tools, so perhaps additional tooling like a sander with a right angle bed might help square up endgrain without creating tear out you’d expect from planes or routers.

I might eventually return to this project to make a set of plans, but for the time being I’ll leave a set of freecad sketches to anyone interested: FreeCAD model.

June 05, 2022 04:00 AM

May 31, 2022

KXStudio News

KXStudio Monthly Report (May 2022)

Hello all, it has been a while since the last time I wrote one of the "monthly" reports, but now back again.
Typically I would write about stuff that was happening behind-the-scenes or to be released soon,
but last couple of months have been mostly releases of stuff that was already in progress and was reported on already, or quick enough releases that could be done in a single month.
Also, there was quite a lot of Cardinal, like a lot of it. :)

Continuing with efforts torwards VST3

VST3 support in DPF is not going as quickly as I hoped, with the last few details being hard to get right.
As a way to learn more about VST3 specifics, and also because I promised to do so, I began doing a host-side implementation for Carla.

While Carla can already do VST3 plugins, it relies on JUCE for it which I am not totally happy with.
Having JUCE built on Carla + Linux just to get VST3 support is something that has always bothered me.
Because Linux does not have the concept of a OS-level event loop, a special way of mixing Qt and JUCE is in place, and feels very dirty.
There are other technical reasons for disliking the approach, but I will skip the details here.

Do note that, alike for VST2, I will keep using VST3 through JUCE for macOS and Windows.
Mostly because I rarely use those systems, so overall it is safer to rely on JUCE for them.
Maybe at some point the Carla VST3 implementation will be good enough to consider enabling the native approach on those systems too, but that can take a while.

Carla related things

Speaking of Carla, I merged the Jean Pierre Cimalando's JSFX plugin support pull request, though still in the process of cleaning things up (in particular non-x64 builds are broken at the moment).
Next release will have the feature enabled, which also propagates to stuff like Ildaeil and its use in Cardinal. :D

Also on Carla, I updated the in-tree JUCE to version 7.
JUCE 7 can now host LV2 plugins too, but for that I will keep Carla's native implementation which is more complete (JUCE does not support CV ports or external UIs, for example).
The update to JUCE also serves to help bring JUCE-based plugins into DISTRHO-Ports and KXStudio packaging, since I reuse the same JUCE version for everything.
My usual set of patches are complete now, and everything was ready to update DISTRHO-Ports main branch to it except it completely breaks Vital[ium] :/

The best approach is likely to have Vitalium be separate from DISTRHO-Ports, but setting that up takes a fair bit of time, so we won't see that so soon.
Perhaps the updated Vital source (whenever that drops..) will have better compatibility with newer JUCE versions, unknown at this point.
In any case, updates to DISTRHO-Ports are blocked at the moment because of this, but there is enough to do on other projects anyway.

Still on Carla, I also updated its in-tree DPF, bringing over the UI code restructure from a while ago.
This is important for the JSFX support, for possibily having their custom GUIs.
I will probably skip them for the first Carla version with JSFX enabled, but it is good to have this in place early so there are less blockers for the implementation.
The update also means being able to refresh the DPF-based internal plugins, which have been ignored for a while.

Sassy Spreadsheet and Scope

A little fancy tool caught my attention recently - the sassy spreadsheet.
It was recently open-sourced and with the GUI widgets being familiar (it uses imgui) there were very high chances of it working on Linux.
There were no official Linux builds or ways to build for Linux, but not for long!
So while we can build and run it now, sadly any operation results in a crash :(
I did some investigation but couldn't find why, author also couldn't tell.

That said, because it is based on imgui and I have worked with it and implemented in a few places, I wondered about taking advantage of it..
Can we take the very nice and properly behaving scope and use it somewhere else?
Yes we can. Yay for open-source!

sassy-scope-cardinal

KXStudio Repositories

On Repository related updates, I finally began to update some packages.
This really goes slow compared to previous times, as the newly introduced automated plugin tests fail.
I should have expected that..
It is great that we catch things early, but that also means updates can be blocked because of it.
Sometimes errors are falsely reported, but sometimes actual plugin issues are found too.
Kind of a pain to deal with when things fail, though in the long term it is for the best.

Because it was just too old and even non-working for some users, the use of the external, non-PPA based repository has been removed.
This basically means the the removal of the ardour package from the KXStudio repositories.
My idea for it was to update it to version 7 and find a way to automate the whole split build (amd64, armhf and arm64 packages).
Easier said than done, and there is too much I am doing already, it is hard to justify maintaining an extra repository just for a few packages.
Apologies for taking so long for taking a decision on this, I always hope to be able to do everything and more, but always fall short.
Doing less things is fine too.

Another small removal is the "recommended" meta-packages, which I had setup as a way for users to easily install a few extra useful programs from outside the KXStudio repositories.
Turns out, making a meta-package that can properly depend/install things across many debian versions and variants is hard.
Packages get removed or renamed, and makes a whole mess of optional dependencies that is just best to simply not care about.
And so it is now.

Related to actual package updates, we have these for this month:

  • airwindows-lv2 added (version 1.3)
  • dragonfly-reverb updated to 3.2.6
  • lsp-plugins updated to 1.2.1

 

That is all for now, see you next time!

by falkTX at May 31, 2022 12:29 AM

May 27, 2022

drobilla.net - LAD

Patchage 1.0.6

Patchage 1.0.6 has been released. Patchage is a modular patch bay for Jack and ALSA based audio/MIDI systems.

Changes:

  • Fix ALSA sequencer port subscriptions
  • Fix crash on client disconnection
  • Fix initial display with no configuration file
  • Fix various minor bugs
  • Rework code architecture to be more decoupled and data-driven
  • Save "human names" setting in configuration
  • Show latency in toolbar with 2 decimal places
  • Switch to C++14

by drobilla at May 27, 2022 07:08 AM

Suil 0.10.12

Suil 0.10.12 has been released. Suil is a library for loading and wrapping LV2 plugin UIs. For more information, see http://drobilla.net/software/suil.

Changes:

  • Fix build issues with newer toolchains
  • Fix some compiler warnings
  • Remove Qt4 support

by drobilla at May 27, 2022 05:43 AM

May 23, 2022

Linux – CDM Create Digital Music

MOD Devices made a guitar synth you can actually play like a synth – so your guitar is the CV

It's the sound and expression of a modular synth, but you can mix it with guitar sounds and play it with the guitar techniques you already know. Here's the latest no-extra-cost addition to MOD Devices do-it-all mobile effects boxes.

The post MOD Devices made a guitar synth you can actually play like a synth – so your guitar is the CV appeared first on CDM Create Digital Music.

by Peter Kirn at May 23, 2022 10:08 PM

May 16, 2022

autostatic.com

rtcqs v0.5.2 released

After some thought and having updated the linuxaudio.org system configuration wiki page I decided to remove three checks from rtcqs. First to go was the background processes check. It checked for two processes that are not used anymore and these days I can’t think of an ubiquitous piece of software that could wreak so much havoc that it needs to be checked for. Second to go was the system timer check. Lore says that in order to achieve accurate MIDI timing one needs a kernel with a clock frequency of 1000Hz. But Linux audio software has been using the snd-hrtimer kernel module for years now which is way more accurate than those measly 1000Hz. This setting is really not needed anymore, same goes for echoing values to /dev/rtc or /dev/hpet max user freq values. Really, using the snd-hrtimer module together with a tickless kernel gives you way more accurate timing than when using a 1000Hz clock frequency. Don’t believe it?

jeremy:~$ grep timer /proc/asound/timers
G0: system timer : 4000.000us (10000000 ticks)
G3: HR timer : 0.001us (1000000000 ticks)

First line is the system timer, it’s 4000 microseconds which corresponds with a kernel clock frequency of 250Hz. But look at the line below, it will automatically pop up as soon as you start a modern Linux audio application that does MIDI. You see that? 0.001 microsecond. That corresponds with a clock frequency of 1.000.000Hz. That’s already a 1000 times more accurate than using a system timer of 1000Hz and this HR timer set at this frequency is available regardless which clock frequency your kernel is using.

Now we got that out of the way, I also removed the max user watches check. It shouldn’t have been there in the first place, I should be the one to know because I asked the gurus about it back in 2011 at LAC2011 in Maynooth. I got no response. For a reason, it’s simply unrelated to increasing the performance of your Linux workstation. So 11 years later it’s good riddance.

The power management check has been improved a bit. Instead of checking the mode and owner of the /dev/cpu_dma_latency device node rtcqs now simply checks if the user running rtcqs has write permissions on that device node. And Robin made it clear to me that even after 15 years or so of running Linux and working with Linux exclusively I still haven’t internalized the idea that Linux doesn’t need a reboot as long as you didn’t touch your kernel.

The tkinter GUI got a promotion, it’s the default GUI now. I’ve demoted the Qt GUI, to the point where it has become a beta feature. The GUI is fully dynamic now, if I add or remove checks to the main rtcqs module I don’t have to bother with the rtcqs_gui module. Maybe it’s getting time to wrap the rtcqs module up in a class.

Other things that got added with this release are a desktop file and two files to facilitate Python packaging. Yes, rtcqs is available on PyPi too as of now, one pip install rtcqs away. These features were requested on the rtcqs project issue tracker in order to facilitate packaging rtcqs for Arch. So if you have a request regarding rtcqs, or run into an issue with it, or spot inconsistencies or just plain false information in the output rtcqs provides, please let me know! Raise an issue at the Codeberg project issue tracker or discuss this release at the linuxmusicians.com forum.

by jeremy at May 16, 2022 09:32 PM

May 03, 2022

autostatic.com

rtcqs v0.4.2 released

This release comes with a new Power Management check which checks if the audio group has read/write permissions on /dev/cpu_dma_latency. If your user is a member of the audio group and permissions are set for this group then DAW’s like Ardour and Reaper can open this file as your user, keep it open and control power management this way. This allows a user to prevent CPU sleep states for example so your CPUs are always on and instantly available which could lower the chance running into xruns.

Ardour CPU DMA latency setting Under Edit – Preferences – Performance

This release also introduces a new basic and simple tkinter-based GUI. The Qt GUI does look fancy but to use it it also needs a fancy amount of dependencies. When building binaries with PyInstaller the result of the Qt GUI is a whopping 130MB package while the tkinter version stays below 12MB.

rtcqs tkinter GUI

Future plans are to get rid of some checks:

  • Max user watches as it’s not related to the overall performance of your system
  • System timer as it’s not relevant anymore, rtcqs already checks for the more relevant stuff (high res timers and tickless kernel)
  • Background processes as it’s merely a placeholder which checks for two processes that don’t exist anymore on modern systems

I’m having my doubts about swappiness too as it’s not really applicable anymore for modern machines. But I’m curious if it still applies for smaller systems like RPi’s for example. I’d like to add a filesystem mount option check, for Ext it would check if the filesystem is mounted at least with the relatime option or even noatime for example. And maybe a disk scheduler check but I’m not conviced yet that it really makes a difference.

The new release and binary packages of rtcqs and rtcqs_simple_gui can be found on the Codeberg repo: https://codeberg.org/rtcqs/rtcqs/releases/tag/v0.4.2

by jeremy at May 03, 2022 11:47 AM

May 02, 2022

GStreamer News

GStreamer 1.20.2 stable bug fix release

The GStreamer team is pleased to announce the second bug fix release in the stable 1.20 release series of your favourite cross-platform multimedia framework!

This release only contains bugfixes and it should be safe to update from 1.20.x.

Highlighted bugfixes:

  • avviddec: Remove vc1/wmv3 override and fix crashes on WMV files with FFMPEG 5.0+
  • macOS: fix plugin discovery for GStreamer installed via brew and fix loading of Rust plugins
  • rtpbasepayload: various header extension handling fixes
  • rtpopusdepay: fix regression in stereo input handling if sprop-stereo is not advertised
  • rtspclientsink: fix possible shutdown deadlock
  • mpegts: gracefully handle "empty" program maps and fix AC-4 detection
  • mxfdemux: Handle empty VANC packets and fix EOS handling
  • playbin3: various playbin3, uridecodebin3, and playsink fixes
  • ptpclock: fix initial sync-up with certain devices
  • gltransformation: let graphene alloc its structures memory aligned
  • webrtcbin fixes and webrtc sendrecv example improvements
  • video4linux2: various fixes including some fixes for Raspberry Pi users
  • videorate segment handling fixes and other fixes
  • nvh264dec, nvh265dec: Fix broken key-unit trick modes and reverse playback
  • wpe: Reintroduce persistent WebContext
  • cerbero: Make it easier to consume 1.20.1 macOS GStreamer .pkgs
  • build fixes and gobject annotation fixes
  • bug fixes, security fixes, memory leak fixes, and other stability and reliability improvements

See the GStreamer 1.20.2 release notes for more details.

Binaries for Android, iOS, macOS and Windows will be available shortly.

Release tarballs can be downloaded directly here:

May 02, 2022 11:30 PM

May 01, 2022

JACK Audio Connection Kit News

jack-example-tools release 3

A new release of the new jack-example-tools project is out.
This is version 3 which only contains bugfixes.

Changelog:

  • Ensure internal clients export their function entry points
  • Fix macOS and Windows builds

As noted in the previous release, please be aware that the JACK2 project is only going to ship with similar tools (as in, have them built-in) for 1 more release.
See the original jack-example-tools announcement for details.

by falkTX at May 01, 2022 05:36 PM

April 21, 2022

News – Ubuntu Studio

Ubuntu Studio 22.04 LTS Released

The Ubuntu Studio team is pleased to announce the release of Ubuntu Studio 22.04, code-named “Jammy Jellyfish”. This marks Ubuntu Studio’s 31st release. This release is a Long-Term Support release and as such, it is supported for 3 years (until April 2025).

Since it’s just out, you may experience some issues, so you might want to wait a bit before upgrading. Please see the release notes for a complete list of changes and known issues.

You can download Ubuntu Studio 22.04 LTS from our download page.

Upgrading

Since it’s just out, you may experience some issues, so you might want to wait a bit before upgrading.

Due to the change in desktop environment that started after the release of 20.04 LTS, direct upgrades from 20.04 LTS are not supported and may only be attempted at-your-own-risk. As with any system-critical operation, back-up your data before attempting any upgrade. The safest upgrade path is a backup of your /home directory and a clean install.

We have had anecdotal reports of successful upgrades from 20.04 LTS (Xfce desktop) to later releases (Plasma desktop), but this will remain at your own risk, and it is highly recommended to wait until 22.04.1 is released in August before attempting such an upgrade.

Instructions for upgrading are included in the release notes.

New This Release

Most of this release is evolutionary on top of 21.10 rather than revolutionary. As such, most of the applications contained are simply upgraded versions. Details on key packages can be found in the release notes.

Dark Theme By Default

For this release, we have a neutral-toned dark theme by default. While we could have gone with the Breeze Dark color scheme since we dropped the Materia KDE widget and window theme (it was difficult to maintain and work with new Plasma features), we decided to develop our own based on GNOME’s Adwaita Dark theme with a corresponding Light theme. This was to help with photography since a neutral tone is necessary as Breeze Dark has a more blueish hue, which can trick the eye into seeing photos as appearing warmer than they actually are.

However, switching from the dark theme to the light theme is a breeze (pun somewhat intended). When opening the System Settings, one only has to look at the home screen to see how to do that.

Support for rEFInd

rEFInd is a bootloader for UEFI-based systems. Our settings which help to support the lowlatency kernel help to create a menu entry to help apply those settings and keep the lowlatency kernel as the default kernel detected by rEFInd. To keep it current, simply enter sudo dpkg-reconfigure ubuntustudio-lowlatency-settings in the command line after a kernel update.

For a more complete list of changes, please see the release notes.

Backports PPA

System Settings with Accent Colors (Folder Colors will follow if Backports PPA is added)

There are a few items planned for the Backports PPA once the next release cycle opens. One of those is folder icons that match the accent color set in the System Settings.

We plan on keeping the backports PPA up-to-date for the next two years until the release of 24.04 LTS, at which point you will be encouraged to update.

Instructions for enabling the Ubuntu Studio Backports PPA

  • Automatic method:
    • Open Ubuntu Studio Installer
    • Click “Enable Backports”
  • Manual method:
    • sudo add-apt-repository ppa:ubuntustudio-ppa/backports
    • sudo apt upgrade

Note that at release time, there’s nothing in there yet, so if you add it now (at the time of this writing) you’ll get a 404 (file not found) error.

On a related note, at this time, the Backports PPA is frozen for 21.10 and 20.04 LTS. To receive newer versions of software, you must upgrade.

Plasma Backports

Since we share the Desktop Environment with Kubuntu, simply adding the Kubuntu Backports will help you with keeping the desktop environment and its components up-to-date with the latest versions:

  • sudo add-apt-repository ppa:kubuntu-ppa/backports
  • sudo apt upgrade

More Updates

There are many more updates not covered here but are mentioned in the Release Notes. We highly recommend reading those release notes so you know what has been updated and know any known issues that you may encounter.

Get Involved!

A great way to contribute is to get involved with the project directly! We’re always looking for new volunteers to help with packaging, documentation, tutorials, user support, and MORE! Check out all the ways you can contribute!

Special Thanks

Huge special thanks for this release go to:

  • Len Ovens: Studio Controls, Ubuntu Studio Installer, Coding
  • Thomas Ward: Packaging, Ubuntu Core Developer for Ubuntu Studio
  • Eylul Dogruel: Artwork, Graphics Design, Website Lead
  • Ross Gammon: Upstream Debian Developer, Guidance, Testing
  • Sebastien Ramacher: Upstream Debian Developer
  • Dennis Braun: Debian Package Maintainer
  • Rik Mills: Kubuntu Council Member, help with Plasma desktop
  • Mauro Gaspari: Tutorials, Promotion, and Documentation, Testing
  • Brian Hechinger: Testing and bug reporting
  • Chris Erswell: Testing and bug reporting
  • Robert Van Den Berg: Testing and bug reporting, IRC Support
  • Krytarik Raido: IRC Moderator, Mailing List Moderator
  • Erich Eickmeyer: Project Leader, Packaging, Direction, Treasurer

by eeickmeyer at April 21, 2022 05:10 PM