Important message! Free Software under attack! See News
Release Announcement v1.3.0
Greetings, developers and users of Linux Audio of the old dispensation.This message is to announce a new release of the Non suite containingmany changes, mostly fixes for rare bugs and theme improvements. Therelease has come a bit sooner than I had planned due to changingcircumstances (I was undeceived regarding the possibility of therebeing some patches forthcoming).Just a friendly reminder, NSM stands for Non Session Manager. I am theauthor, inventor, developer, and maintainer of NSM (Hi there NSMfans!) There has been a lot of misleading information published aboutNSM lately, and I don't want anyone to be deceived by it.Some matters of note: due to frequent and continued abuse andharassment, the GitHub issue tracker has been disabled. In light ofthis, there is a new policy for bug reports/feature requests which hasbeen posted to the Non mailing list.The aforementioned harassment has got me thinking about my longhistory in Linux Audio, in a community that I once felt very much apart of. I feel that there has been a sea change and the old guard isless involved than they used to be (myself included) and the newdispensation is a rather nasty and unfavorable one. I'm sure there aremany depressing reasons for this which I need not go into as theyextend far beyond the context of Linux Audio. Anyway, after reflectingon how I was presently being treated, it occurred to me that it'sunlikely that I'm the only one, so I want to take a moment to offer mythanks and pay my respects to the great men of Linux Audio.To Fons Adriaensen: your work, particularly your LADSPA plugins andAmbisonics tools has enabled and inspired my own work. The neatnessand low dependency count of your code is something we should allaspire to. Your sage advice has always been helpful andinstructive.There is much I couldn't have done without you. Thank you.To Paul Davis: By inventing JACK, you enabled not only me, but a wholecommunity/generation of developers to think in terms of cooperationand interoperability rather than monolithism, competition, andlock-in. Even though you may have lost interest in JACK yourself, Iwill always be grateful for your contribution, no matter how badlyJACK is defaced by its present maintainers or undermined by those whodesire to take from you that seat of honor. Thank you.To Dave Griffiths: Your unrestrained creativity and originality havebeen truly inspiring to me, and your SpiralSynthModular and Pawfalikisoftware have been directly useful to me. Nobody may have noticed, butboth the Non website and my personal blog run on heavily modifiedversions of Pawfaliki. Your work deserves much more attention than itgets. Thank you.To Paul Nasca: ZynAddSubFX has been a near constant companion to methroughout my time in Linux Audio. It is truly a masterpiece, andexemplifies the same set of standards that I have tried to adhere toin my own projects (fast, light, powerful). Thank you.To J.P Mercury: Freewheeling was a stroke of brilliance and I'm sure Ionly scratched the surface of what it could do. You are aninspiration. Thank you.To Mark McCurry: You have been an excellent and upstanding maintainerof ZynAddSubFX and truly improved it over the years. Your dedicationto tooling and automation is exemplary---I don't know how you find thetime to work on the tooling so much and still make progress on theproject itself. I have very much enjoyed our conversations and havefelt privileged to be a contributor to ZynAddSubFX. I am also gratefulto you for your contributions to Non, chiefly the plugin frequencyresponse visualizer, which is a constant help to me in my work. Youhave pushed the technology forward with RtOSC, and I hope to somedayintegrate that stack into Non's OSC::Signal framework. What's moreyou've been a friend, and friendly people are so very hard to find inthis world. Thank you.To Harry van Harren: It was a great pleasure to provide to youwhatever mentorship that I could. Your youthful exuberance has alwaysbeen an inspiration to me. I was very pleased that you took some ofthe ideas from FLTK/Non to heart and decided to take the path lesstravelled in your projects rather than, as far more commonly happens,taking the easy way out. I look forward to seeing more greataccomplishments from you in the future.Thanks also goes out to Rui Capela, David Robillard, Nedko Arnaudov,Bill Spitzak, Shawn Betts, all the authors of the precious LADSPAplugins that are RT-safe and don't just blast and crash. While I mayhave had disagreements with some of these men over technical orphilosophical matters, I have always respected them and their work andappreciated the fact that we could disagree on some things, agree onothers, and still get the work done. I'm afraid that this level ofmaturity now exists only in a culture past. I'm sure there are somewho were left out of this list unintentionally, and if so I apologizefor that oversight. Others were left out intentionally and I'm surethey will know who they are and why they don't deserve to be includedin a list of honorable men.On that note, despite the slanderous statements made recently by acertain gang of thugs regarding NSM, I would like to formally clarify,since they flatly refuse to do so, and state that NSM (nor any of mysoftware) has never contained ads or spyware, that it is indeed andhas always been Free Software, and that this gang, who purport torepresent this community, never offered to contribute to NSM orparticipate in its development. The leader of this gang, FilipeCoelho, has abused his position as a distro maintainer to attempt totake over development of NSM and other projects which representcritical subsystems in Linux Audio. This is quite obviously bad newsfor the community (as all power/control is being concentrated in thehands of obvious bad-actors). Who knows what will come of this, but Idoubt it will be good. For myself, this event together with thecampaign of harassment and abuse has put me in a position of beingvery reluctant to publish my continuing development or to begin anynew free-software projects (for which I have many, many ideas),knowing, as I now know, that the consequences for me will be whollynegative. I hope this hasn't also been the experience of all of theother developers that I mentioned. I know at least one of them hasbeen compensated well for his work, but I'm sure he had to put up withplenty of abuse too. The others, I fear, have probably, like myself,been repaid primarily with abuse.I worry about us as a community and us as a culture when I see that weact to stamp out creativity, invention, standards of quality, etc. Tothe people who stand by and say nothing while this happens: what kindof future will you have to look forward to? Linux Audio is already ashrinking niche. We need more creativity and invention, not less. Ifyou keep punishing and abusing people for dedicating their lives togiving you free stuff, then wherever are you going to get more freestuff?I implore everyone to consider the effects of their inactions as wellas their actions, not only in this context but in life in general.And a special message to Filipe Coelho, who has a made it something ofa personal mission to defame me and my work (and probably the work ofothers I'm unaware of):I forgive you. I forgive you for slandering me and my project. Iforgive you for making unreasonable demands of me. I forgive you fornot contributing code or documentation. I forgive you for harassing meand encouraging others to do the same. I forgive you for never havingcreated anything that was useful to me, as I have clearly donerepeatedly for you. I forgive you for violating my friendship. Iforgive you for deceiving the LA community. I forgive you for creatingdisruption, schism, and incompatibility in a sphere where there wasbefore (finally!) only harmony and unity. I sincerely hope that youcan one day find some source of joy in your life that does not involveharming others, maybe even an original project of your own---somethingthat you could really take pride in.My thanks goes to Olivier Humbert and John Rigg who were the twopeople besides myself who contributed code for this release.And to anyone who was thinking of submitting a patch to my project oranyone else's, or who was thinking of donating, or just saying"thanks," what are you waiting for? None of us lives forever, youknow. For every one "thank you" email this developer gets, he gets atleast a hundred insults. I have no idea whether or not that's atypical figure, but it's probably in the same order of magnitude.******A brief interlude for the Parable of the Free Software Developer andthe Imposing Stranger (may the developers who read this know that theyare not alone in their trials, and may the users who read this take abrief stroll in a developer's shoes).******A man builds a lodging house from the ground up with his own twohands. One evening he is sitting in the house, in front of thefireplace, enjoying the fruits of his labor, wondering if it was allworthwhile---worth the broken leg, the battered thumb, the lostcomfort of the wife that left him---, when a stranger bursts throughthe front door without knocking, bringing into the room with him asmall flurry of snowflakes."Hello?" the man says."There should be a window here," says the stranger, pointing at thespace above the fireplace.The man is too baffled by this statement to ask the stranger why hehas barged into his house."But that's where the chimney is. I can't put a window there.""You refuse to put in a window? A very impudent fellow you are. I'veseen houses that had a window just there. It was a mansion in thehills, designed by an exceedingly famous and eccentric architect, andwas built by a crew of a hundred men in 20 days. If they could do itso can you.""I built this house myself, with my own two hands, and it took me 20years. The best years of my life, they were---my very youth was spenton this house. I put everything in its right place, including thatchimney and every brick in it! I like to sit here in front of the fireand warm my tired old bones which still ache from my labors.""Nevertheless, it would be better with a window there.""But I explained to you, the chimney must go there. You can't have afireplace without a chimney; there would be nowhere for the smoke toescape.""That isn't my concern. Don't be difficult. A house simply isn'tworthwhile without a window over the fireplace. Why, I once saw amansion that---""---excuse me, but do these mansions have to do with me and my humblelodging house? I don't need a window there and none of my guests haveever needed one either. Furthermore, those mendicants over therestitching up their robes were very grateful for this fire and thathall to sleep in.""I say! Won't you just make me a window?""By God! It's the dead of winter! Who needs a window now? And whyshould I make a window for you in my own house? You, who neither offerto help nor to pay for the work, and when there are other things inneed of attention like that spongy board in the floor over whichyou're standing, or that drip in the corner of the loft whenever thereis a heavy rain?""Because, old man, I am the one who wants, and you are the one whoprovides. This shabby little house that you built was meant to be adelight for me---for my pleasure and enjoyment---, but I find it to bea very shabby house indeed. That hideous chimney will surely have togo. The window is only the beginning. I have many grand ideas forimprovements. Wheels on the eaves, a skating rink in the kitchen, aking sized bed on the rooftop! I'm full of brilliant ideas. Why I'vejust had another one: we'll turn the bathtub into one of those littlepissing imp fountains! What jolly fun! I've traveled the world andseen many wondrous mansions built by eccentric and famous architects.So surely I must know what is good and what isn't.""And have you ever built a house yourself?""Why no.""And have you ever seen a house being built?""Of course not, you old dolt!""Then what expertise do you have regarding the way that a house should be made?""Expertise is for doers like you. Doing is beneath me. I entertainmyself with the works of lesser beings. I'm an idea man, you see.Ideas come to men like me, brilliant, inspired ideas, but not to mensuch as yourself. An idea man doesn't trouble himself with pettyquestions of how or why. He can't slow down, he's got too many grandideas for that! Now either you get to work, old man, or I'm going totell the whole world what a difficult little personality you have!I'll tell them you violated the Code of Conduct (signed by yourstruly, natch). The Community owns this building, you are merely ourfree labor. We owned it from the moment you opened the door, out ofyour pathetic 'kindness' and 'goodwill' and let someone sleep here forfree. I saw the shingle on the door, with the silhouette of the HolyBeast of the Resplendent Horns. This place is Community property,mister. So what's it going to be? Will you make for me my pleasurewindow?""I will not. It doesn't make sense. Everyone would freeze to deathwithout the fireplace and that chimney. What good is a house with apleasure window to a dead man? Nothing you say makes sense. It's asthough you're living in a dream, with no concept of the forethoughtand effort that goes into such things as building houses. I know thecommunity. I feed the community. I shelter the community. I've neverturned away a man in need. And I've never seen your face before today,Sir.""Difficult! Hard to work with! Totally unreasonable! I say! I'mtelling on you! You should have known what to expect when you builtthis house and when you hung that shingle by the door pledging with asacred oath that you would accept all comers. By denying me my exaltedwhims you have spurned me, old man, and for that you will be cursed.The ruling is forthcoming. You shall rue this day!"(This scene repeats the next night with a different imposingstranger---sometimes alone and sometimes together in gangs---, and thenight after that, and forever thereafter, until the old man dies.)______When you look into your heart, which character in this story are you?The old man who built the house? A kind young man who offers to helphim fix the leaky roof or to build a gazebo (these being too few andfar between to have appeared on this night)? The person who merelyaccepts the kindness of a free meal and a warm bed without complaint?One of the priests of the Order of the Holy Beast of the ResplendentHorns? Or are you the imposing stranger whose existence consists ofdelighting in the creations (and suffering) of others, whom heconsiders beneath him?Of course, as complex as human existence is, one might play each ofthese roles in turn in life, or several simultaneously. The importantthing is to know what you're doing in the moment, and ask yourself,will this bring peace and happiness, or will this bring grief andsuffering?******Shortlog for this release******Jonathan Moore Liles (94): nonlib/OSC: Don't try to send feedback to non-existent path. Upgrade waf to 2.0.9 Update NTK submodule. wscript: Fix install error caused by upgrade to waf 2.0.9. Upgrade waf to 2.0.18 Mixer: Fix crash when closing project containing certainconfigurations of modules. Session-manager: Work around for clients with stupidly large icons. Mixer: Tweak module colors. Show LADSPA plugins in a different color. Mixer: Show strip number at top of each strip (eases mentallymapping onto hardware control surface). Sequencer: Save file to tmp file before overwriting original. Sequencer: Fix casting/sign related bug which could cause a hangduring SMF writing. Timeline: Tweak style of audio regions. Timeline: Tweak style of measure lines. Sequencer: Fix off-by-one bug preventing notes from beinginserted ahead of other notes. Sequencer: Fix configuration bug causing error message "Couldn'topen instrument directory". Timeline: Make clocks look more contrasty with light color scheme. Sequencer: Add some missing items to GM Drum note map. Mixer: Fix off by one bug in strip autoconnect affecting Auxes. Mixer: Remove superfluous semicolon. Mixer: Improve contrast with light color scheme. Mixer: Fix osc/midi by-number mode control for strips with namescontaining punctuation and spaces. Mixer: Give better visual feedback in control OSC/MIDI learning mode. Sequencer: Tweak appearance to look better with different color schemes. Sequencer: Just use theme UP_BOX for note shape... Midi-Mapper: Don't get confused if user neglects to operate allcontrols on the first run. Sequencer: Don't crash when user picks the branch instead of theleaf in scale chooser. MIDI-Mapper: Preserve mapping creation order whenloading/saving. This makes it possible to fiddle controls in a definedorder and then edit the file to give them useful names. MIDI-Mapper: Require controls to be actuated/moved twice beforemapping signal in order to detect whether value has 14, 7 or 1significant bits. Also, support non-motirzed faders/endless encodersby not transmitting control change until value of controller comeswithin 5% of value of signal. Also, change file format (backwardscompatible). Also, fix some issues with NRPN decoding. nonlib/MIDI: Cleanup some type signatures. Timeline: Improve error message for sf_open create. Timeline: Fix rare segfault which occurred when region looppoint is just beyond the end of a region and at the beginning of abuffer. Timeline: Redraw right hand child region on split. Mixer: Show strip number at top of each strip (eases mentallymapping onto hardware control surface). Timeline: Tweak styling of selected regions. Mixer: Allow Mono Pan module to be added a stereo chain. Thisconverts the signal to mono and then pans the result. Useful forauditioning a mix in mono. Mixer: Dezipper spatializer azimuth and elevation automation. Mixer: Make panner points more opaque. Sequencer: Fix bug in fitting scale to viewport. Mixer/Module_Parameter_Editor: Increase font sizes, tweak boxtypes. FL/Fl_Sometimes_Input: Allow user to abort edit with Escape key. Timeline,Mixer: Tweak colors for light themes. Mixer: Tweak meter appearance to look better with light color schemes. Mixer/Module_Parameter_Editor: Tweak slider appearance. Mixer/DPM: Quick hack to add smoothing to meter values. nonlib/OSC/Endpoint: Work around for liblo/UDP layer droppingpackets on bulk signal listing. Timeline: Split OSC send and receive functionality into different threads. Mixer: Tweak meter appearance. Mixer: Avoid some unnecessary redraws when opening project. Timeline: Add "Disabled" fade type to disable both fade anddeclicking for cases where regions need to be abutted perfectly. Timeline: Don't forget to log changing takes after the fact. Mixer: Tweak meter appearance. Mixer: Tweak strip highlighting. Mixer/Module_Parameter_Editor: Tweak layout so that 4-BandParametric Filter plugin is more legible. Sequencer: Fix crash in event editor. Sequencer: Use a 3 break gradient for velocity colors. Mixer: Make meters more efficient. Mixer,Timeline: Fix port connection drag and drop between applications. Mixer: Tweak appearance. Timeline: Acquire sequence lock for region split. Mixer: Implement slow fall off for meters. Mixer: Fix crash when disabling strip auto output. Mixer: Fix crash if user messes with the window while project is loading. Timeline: Don't send the same OSC control sequence value twiceand so avoid messing with OSC learning in non-mixer when transport isstopped. Mixer: Try to better cope with parameter feedback feedback cycles. Timeline: fix crash when removing a track. dsp: code style tweak. wscript: Use -mtune=native by default for performance boostbenefiting those who build from source, packagers can disable. Mixer: Fix glitch in redrawing of meter scales when scrolling. Partially revert "Mixer: Avoid some unnecessary redraws whenopening project." Mixer: Fix settings menu layout issue. Mixer: Fix JACK port disconnection when Auto Input/Output mode is changed. Mixer: Automatically run in "noui" mode if DISPLAY environmentvariable unset (i.e. X11 not available). Mixer: Make port autoconnection during startup and shutdown moreefficient. Timeline: Don't assert if peakfile contains no blocks---it'sprobably just because it was just opened and hasn't been written intoyet. Mixer: Because disconnecting/connecting JACK ports is slow, whenhandling a change of strip auto input setting, avoid disconnecting aport and then reconnecting it later. Mixer/DPM: Fix bug where peaks are sometimes not drawn. Mixer: Fix meter falloff in chain view. Mixer: fix size of SM blinker. Mixer: Fix crash on save after group removal. Mixer: Enforce stability of module OSC path over close/open cycles. Timeline: Fix rare issue where moving the mouse over a regionwhile recording at just the right moment could cause a spurious SETaction to be written to the history. Timeline: Fix region DND onto last track that was a connection DND source. Mixer: Re-transmit the minimum amount of OSC/MIDI feedbackmessages when strips are rearranged. Update NTK. Mixer: Fix export strip function. Update NTK. Revert "Add 128x128 hicolor as possible icon path" Mixer: Cope with some plugins having insane numbers of parameters. Timeline: Tweak style of loop point indicator. Mixer: Avoid some unnecessary reallocations when changing channel count. Update NTK Bump versions.Olivier Humbert (4): Update non-mixer.desktop.in Update non-sequencer.desktop.in Update non-session-manager.desktop.in Update non-timeline.desktop.in(NTK)Jonathan Moore Liles (10): Upgrade to waf 2.0.9. Upgrade waf to 2.0.18. Tweak themes for more color consistency. Workaround for zynaddsubfx. More theme tweaks. ntk-chtheme: Add new color scheme. Save/restore selection color. Clean up some inconsistencies in themes. fl_contrast: Return FL_FOREGROUND or FL_BACKGROUND rather thanFL_BLACK and FL_WHITE... Adjust color schemes. Tweak themes.John Rigg (1): themes: Workaround for bug where a background color of RGB 0,0,0in Black color scheme is sometimes drawn as green.******And just for kicks, here's the all time shortlog leaderboard. Keepthose PRs coming!******Jonathan Moore Liles (2068):Nedko Arnaudov (4):Olivier Humbert (4):Roy Vegard Ovesen (4):Robert Wruck (2):Mathias Buhr (2):Daniel Appelt (1):Hanspeter Portner (1):James Morris (1):Juuso Alasuutari (1):Peter Nelson (1):Mark McCurry (1):martin (1):non25 (1):John Rigg (1):