1-dan master of the unyielding fist of Bayesian inference
3182 stories
·
0 followers

Japan’s space camera drone on the ISS is a floating ball of cuteness

1 Share
Japan’s space camera drone on the ISS is a floating ball of cuteness submitted by /u/texas939393 to r/space
[link] [comments]
Read the whole story
clumma
5 hours ago
reply
Berkeley, CA
Share this story
Delete

Dorico 2.1 update released, with swing playback, notehead editor, and much more

1 Share

We are pleased to announce that the first update to Dorico 2 is now available, bringing many new improvements to your favourite music notation software, chief among them swing playback, but also including significant enhancements to the new divisi features, staff labelling, part preparation, audio export, microtonal playback, and much, much more.

As always, I'm delighted to say that my inestimable colleague Anthony Hughes has surpassed himself (and overcome no small number of hurdles put in his way thanks to computer that self-destructed at the worst possible time) in producing a series of videos to accompany this release, starting with this two-minute summary of the top new features:

https://www.youtube.com/watch?v=2QOurpge9yY

If you don't want to wait any further, go ahead and grab the update (this page says it's for Dorico Pro 2, but in fact the same updater works for Dorico Elements 2 as well), and get full details of all of the changes and improvements in the Version History PDF.

Otherwise, read on for more information about the goodies in Dorico 2.1.

Swing playback

Dorico 2.0 introduced a number of features that increased the appeal of the program to composers and arrangers working in the fields of jazz and other idioms with a rhythm section – including rhythm slashes and bar repeats, about both of which more later – and unsurprisingly some of the first and loudest feedback we heard when these features dropped into the hands of users was, "What about swing?"

Well, here it is. Dorico 2.1 introduces realistic swing playback, allowing you to set a global rhythmic feel via the Timing page of Playback Options, to change rhythmic feel at any point in the flow (via the Shift+T popover), to have some players swinging while others are straight, to tweak the swing presets, and more. Check out Ant's video for more details:

https://www.youtube.com/watch?v=tvTC52r8nKA

A unique factor in Dorico's handling of swing is that it swings like human musicians: academics have studied how swing works, and have discovered that there is a strong correlation between the tempo of the music and the swing feel, and Dorico models this correlation. In essence, at slower tempos, the swing feel is more pronounced, and as the tempo increases, the duration of the notes in each pair of notes become straighter. This small but subtle detail makes Dorico's swing sound more authentic, and it happens automatically.

If you want to drive your musicians harder and retain the same swing feel at faster tempos, you can use one of the fixed ratio swing feels, which are not dependent on the tempo.

In the future, we plan to develop this area of the program further to allow more general treatment of rhythmic feel to support other kinds of performance practice, but we hope that the way swing is handled is useful in its own terms as a starting point for future development.

Notehead editor

As part of our drive to progressively expose the flexible architecture that underpins the application, in Dorico 2.1 we are pleased to follow up the graphical editor for playing techniques introduced in version 2.0 with a graphical editor for noteheads.

https://www.youtube.com/watch?v=DIeqabJSyT8

You can use characters from music fonts, regular text fonts, or imported graphics (in SVG, PNG, or JPG format), and combine them together as needed. You can define where on each notehead the stem should attach when the note is used in a stem-up or stem-down context, and even specify the attachment points for diagonal stems when the notehead is used in an altered unison context. Noteheads are organised into sets, and it's important to know that a notehead can appear in multiple sets, so if you want to make a change to an existing notehead in only one of the sets, be sure to duplicate the notehead before you start.

Another related small improvement in Dorico 2.1 is that you can now define the cut-outs in the corners of the bounding shapes of accidentals, allowing you to improve the tucking or kerning of accidentals in adjacent stacks when using your own custom accidentals, and the design of the dialog used to edit noteheads, accidentals, playing techniques and chord symbols has been improved to allow more space for the graphical editor itself. More improvements are to come in this area in future versions.

One other improvement in customisation introduced in this update is that you can now choose to use any font for tuplet digits, by choosing Plain font on the Tuplets page of Engraving Options, and then editing the Tuplets plain font font style in Engrave > Font Styles.

Part preparation improvements

Two small but significant features have been added to help speed up the part preparation process. One of Dorico's great strengths is that it's possible to override more or less everything independently in the full score and the instrumental part, and of course you can have multiple scores and multiple parts within the same project. However, with this flexibility also comes some duplication of labour, as settings that are independent in each layout but which you want to be the same in each layout have to be propagated manually, which means making the same edits in each layout.

In the longer term, we are planning to introduce some changes to the way the Properties panel works so that you both have improved visibility of which properties always apply to all layouts and which are independent between layouts, and in the case of the latter, to allow you to specify that any changes you make to an independent property should be propagated automatically to other layouts where the edited item is found. But this will be quite a big change, and we don't want to rush into a user interface change that won't serve us well into the future.

So as a short-term measure, Dorico 2.1 introduces a new command found in the Edit menu called Propagate Properties. What this does is copy the properties for the selected item or items in the current layout, and apply them to those items in every other layout in which they appear.

By way of example: you may have chosen to change the appearance of a gradual dynamic from a hairpin to italic cresc. text in the full score. By default Dorico retains the hairpin appearance in the part (because you may wish to use the hairpin appearance if, say, the rhythmic spacing is very different in the part to that of the score), which would mean that if you wanted the appearance to be the same, you'd have to switch to the part and edit that property again. Now you can simply use Propagate Properties: and, of course, you can even filter all the gradual dynamics in the score layout and then propagate the properties for all of them in a single operation.

Which properties get propagated depends on whether you are in Write mode or Engrave mode: only those properties that appear in Write mode will be propagated if you invoke the command from Write mode, while all properties available in both Write and Engrave modes will be propagated if you invoke it from Engrave mode.

Ant shows Propagate Properties in action in this video:

https://www.youtube.com/watch?v=sjnbqprXChU

The video also shows the new Setup > Propagate Part Formatting dialog, which allows you to quickly take layout and formatting decisions you have made for one part – such as how many bars per system and systems per frame you want to see, choices about page and staff size, margins, and so on – and apply them to one or more other parts with just a couple of clicks. This is especially useful for quickly formatting parts for instruments with similar material, as you might typically find with instruments from the same family in orchestral or band writing.

Other improvements to part formatting include new options for multi-bar rest appearance (a new fixed-width H-bar choice, a threshold for how many bars' rest at the end of the system should trigger tacet al fine rather than a normal bar count, an option to show the bar count above both staves of a keyboard instrument as commonly done in Hollywood parts, and so on), and improvements to staff labeling, which are significant enough to warrant separate discussion.

Staff labels

There are three major areas of improvement for staff labeling in Dorico 2.1: rich text editing, allowing you to change font, style, point size, add line breaks, and so on; improvements to informational labels for divisi and changes of instrument; and grouping of staff labels for adjacent solo instruments with the same names. As ever, Ant's video outlines these improvements in detail:

https://www.youtube.com/watch?v=BWjuA1MQTSA

Being able to insert line breaks, or change font size and style for staff labels provides more flexibility for things like rehearsal-only piano parts, vocal parts in musicals, operas and cantatas, and educational materials. To edit an instrument's name, first expand its card in the Players panel in Setup mode, then hover over the instrument's little label in the expanded card so that the chevron appears, then click to open the context menu and choose Edit Names to open the editor.

The divisi features added in Dorico 2.0 are ground-breaking and provide huge power in handling writing for divided sections, but one weakness in the initial implementation was that the actual moment of transition between playing tutti and playing divided was not marked out when it occurred in the middle of the system. This is now comprehensively taken care of with the introduction of the Show divisi change labels above staves option, which you'll find on the Staves and Systems page of Layout Options.

In a similar vein, a new Show instrument change label at start of flow option has been added to the Players page of Layout Options. Switching this on will cause Dorico to show the name of the instrument to be played at the start of a flow for a player doubling more than one instrument: previously, you would either have had to show a staff label to the left of the first system (which is a little unconventional in an instrumental part) or add the name of the instrument using Shift+X text yourself to remove any ambiguity. As of Dorico 2.1, it is now completely automatic.

Finally, the introduction of grouping of labels for adjacent solo players makes a task that tends to be quite tedious in other scoring software – namely that of vertically centring, say, Flute between the two staves belonging to the first and second flute chairs, with each staff itself labeled simply 1 and 2 – completely automatic. Simply set the new Staff labels for identical adjacent solo instruments option on the Staff Labels page of Engraving Options to Group between staves.

Further improvements for staff labeling and, especially, bracketing and bracing are on the cards for the near future, but we hope that this trio of enhancements themselves greatly extend the utility and the beauty of Dorico's output on their own terms.

Rhythmic notation

Two big areas of improvement in Dorico 2.0 were the introduction of rhythmic slashes and bar repeats, and both receive further attention in Dorico 2.1. Firstly, bar repeats now play back automatically, and they take notice of any dynamics that you write under the repeated bars.

https://www.youtube.com/watch?v=tYtFNLBFQd8

Secondly, regions of rhythm slashes can now be numbered automatically, like bar repeat regions: new options can be found on the Notes page of Engraving Options for the interval at which they should be numbered, the appearance of the numbers, and their placement relative to the staff. And rhythm slash regions now hide any music in other voices as well: so you can write (say) a solo for playback purposes and not have it show up in the full score or parts. If you need to show other voices – so you can show rhythmic cues from other instruments, for example – then this can be achieved by activating the new Show other voices property.

https://www.youtube.com/watch?v=-GMVwWAdkP8

With Dorico's best-in-class support for chord symbols, drum set notation, rhythm slashes, bar repeats, a beautiful handwritten-style font, and now realistic swing playback, we think it's sitting pretty for musicians working in jazz and other similar idioms. We know that the lack of intelligently-attaching brass articulations like scoops, falls, and so on is probably the main remaining area of omission, and we plan to take care of that as soon as we can.

What's next?

We are already hard at work on the next update to Dorico 2. The headline improvement in the next update will be the inclusion of sophisticated support for repeat markers, to handle things like segnos, codas, and so on: in true Dorico style, there will be comprehensive options for the appearance and behaviour of these markers, including support for complex structures involving multiple segnos and codas (for when you absolutely, positively have to save one more page...), and there will of course be many other improvements as well, though none that I can share just yet.

To give a little further insight into our planning, we do not intend to release an extended series of updates for this version, as we did with the epic series of Dorico 1.x updates: obviously, plans are always subject to change, but at the time of writing our intention is to release one more substantial update to Dorico 2 later this year, and then to get on with tackling some of the larger and meatier areas of functionality that many users are waiting for. That will be the start of our work on the next major version, which will mean a bigger step in version number, and therefore also an update cost.

In the meantime, on behalf of the whole team working on Dorico, both here in London and Hamburg, I'd like to thank you for your support, feedback and encouragement. We love to hear how you are using the product, and to know that it is a useful tool and companion in your musical activities. We hope you enjoy the improved stability and performance of Dorico 2.1, and the new features and improvements.

The post Dorico 2.1 update released, with swing playback, notehead editor, and much more appeared first on Dorico.

Read the whole story
clumma
18 hours ago
reply
Berkeley, CA
Share this story
Delete

Universal Method to Sort Complex Information Found

1 Share

If you were opening a coffee shop, there’s a question you’d want answered: Where’s the next closest cafe? This information would help you understand your competition.

This scenario is an example of a type of problem widely studied in computer science called “nearest neighbor” search. It asks, given a data set and a new data point, which point in your existing data is closest to your new point? It’s a question that comes up in many everyday situations in areas such as genomics research, image searches and Spotify recommendations.

And unlike the coffee shop example, nearest neighbor questions are often very hard to answer. Over the past few decades, top minds in computer science have applied themselves to finding a better way to solve the problem. In particular, they’ve tried to address complications that arise because different data sets can use very different definitions of what it means for two points to be “close” to one another.

Now, a team of computer scientists has come up with a radically new way of solving nearest neighbor problems. In a pair of papers (one posted online in April, the other forthcoming), five computer scientists have elaborated the first general-purpose method of solving nearest neighbor questions for complex data.

“This is the first result that captures a rich collection of spaces using a single algorithmic technique,” said Piotr Indyk, a computer scientist at the Massachusetts Institute of Technology and influential figure in the development of nearest neighbor search.

Distance Difference

We’re so thoroughly accustomed to one way of defining distance that it’s easy to miss that there could be others. We generally measure distance using “Euclidean” distance, which draws a straight line between two points. But there are situations in which other definitions of distance make more sense. For example, “Manhattan” distance forces you to make 90-degree turns, as if you were walking on a street grid. Using Manhattan distance, a point 5 miles away as the crow flies might require you to go across town for 3 miles and then uptown another 4 miles.

It’s also possible to think of distance in completely nongeographical terms. What is the distance between two people on Facebook, or two movies, or two genomes? In these examples, “distance” means how similar the two things are.

There exist dozens of distance metrics, each suited to a particular kind of problem. Take two genomes, for example. Biologists compare them using “edit distance.” Using edit distance, the distance between two genetic sequences is the number of additions, deletions, insertions and replacements required to convert one into the other.

Edit distance and Euclidean distance are two completely different notions of distance — there’s no way to reduce one to the other. This incommensurability is true for many pairs of distance metrics, and it poses a challenge for computer scientists trying to develop nearest neighbor algorithms. It means that an algorithm that works for one type of distance won’t work for another — that is, until this new way of searching came along.

Squaring the Circle

To find a nearest neighbor, the standard approach is to partition your existing data into subgroups. Imagine, for instance, your data is the location of cows in a pasture. Draw circles around groups of cows. Now place a new cow in the pasture and ask, which circle does it fall in? Chances are good — or even guaranteed — that your new cow’s nearest neighbor is also in that circle.

Then repeat the process. Partition your circle into subcircles, partition those partitions, and so on. Eventually, you’ll end up with a partition that contains just two points: an existing point and your new point. And that existing point is your new point’s nearest neighbor.

Algorithms draw these partitions, and good algorithm will draw them quickly and well — with “well” meaning that you’re not likely to end up in a situation where your new cow falls in one circle but its nearest neighbor stands in another. “From these partitions we want close points to end up in the same disc often and far points to end up in the same disc rarely,” said Ilya Razenshteyn, a computer scientist at Microsoft Research and coauthor of the new work along with Alexandr Andoni of Columbia University, Assaf Naor of Princeton University, Aleksandar Nikolov of the University of Toronto and Erik Waingarten of Columbia University.

Over the years, computer scientists have come up with various algorithms for drawing these partitions. For low-dimensional data — where each point is defined by only a few values, like the locations of cows in a pasture — algorithms create what are called “Voronoi diagrams,” which solve the nearest neighbor question exactly.

For higher-dimensional data, where each point can be defined by hundreds or thousands of values, Voronoi diagrams become too computationally intensive. So instead, computer scientists draw partitions using a technique called “locality sensitive hashing (LSH)” that was first defined by Indyk and Rajeev Motwani in 1998. LSH algorithms draw partitions randomly. This makes them faster to run but also less accurate — instead of finding a point’s exact nearest neighbor, they guarantee you’ll find a point that’s within some fixed distance of the actual nearest neighbor. (You can think of this as being like Netflix giving you a movie recommendation that’s good enough, rather than the very best.)

Since the late 1990s, computer scientists have come up with LSH algorithms that give approximate solutions to the nearest neighbor problem for specific distance metrics. These algorithms have tended to be very specialized, meaning an algorithm developed for one distance metric couldn’t be applied to another.

“You could get a very efficient algorithm for Euclidean distance, or Manhattan distance, for some very specific important cases. But we didn’t have an algorithmic technique that worked on a large class of distances,” said Indyk.

Because algorithms developed for one distance metric couldn’t be used in another, computer scientists developed a workaround strategy. Through a process called “embedding,” they’d overlay a distance metric for which they didn’t have a good algorithm on a distance metric for which they did. But the fit between metrics was usually imprecise — a square peg in a round hole type of situation. In some cases, embeddings weren’t possible at all. What was needed instead was an all-purpose way of answering nearest neighbor questions.

A Surprise Result

In this new work, the computer scientists began by stepping back from the pursuit of specific nearest neighbor algorithms. Instead, they asked a broader question: What prevents a good nearest neighbor algorithm from existing for a distance metric?

The answer, they thought, had to do with a particularly troublesome setting in which to find nearest neighbors called an “expander graph.” An expander graph is a specific type of graph — a collection of points connected by edges. Graphs have their own distance metric. The distance between two points on a graph is the minimum number of lines you need to traverse to get from one point to the other. You could imagine a graph representing connections between people on Facebook, for example, where the distance between people is their degree of separation. (If Julianne Moore had a friend who had a friend who is friends with Kevin Bacon, then the Moore-Bacon distance would be 3.)

An expander graph is a special type of graph that has two seemingly contradictory properties: It’s well-connected, meaning you cannot disconnect points without cutting many edges. But at the same time, most points are connected to very few other points. As a result of this last trait, most points end up being far away from each other (because the low-connectivity means you have to take a long, circuitous route between most points).

This unique combination of features — well-connectedness, but with few edges overall — has the consequence that it’s impossible to perform fast nearest neighbor search on expander graphs. The reason it’s impossible is that any effort to partition points on an expander graph is likely to separate close points from each other.

“Any way to cut the points on an expander into two parts would be cutting many edges, splitting many close points,” said Waingarten, a coauthor of the new work.

In the summer of 2016, Andoni, Nikolov, Razenshteyn and Waingarten knew that good nearest neighbor algorithms were impossible for expander graphs. But what they really wanted to prove was that good nearest neighbor algorithms were also impossible for many other distance metrics — metrics where computer scientists had been stymied trying to find good algorithms.

Their strategy for proving that such algorithms were impossible was to find a way to embed an expander metric into these other distance metrics. By doing so, they could establish that these other metrics had unworkable expanderlike properties.

The four computer scientists went to Assaf Naor, a mathematician and computer scientist at Princeton University, whose previous work seemed well-suited to this question about expanders. They asked him to help prove that expanders embed into these various types of distances. Naor quickly came back with an answer, but it wasn’t the one they had been expecting.

“We asked Assaf for help with that statement, and he proved the opposite,” said Andoni.

Naor proved that expander graphs don’t embed into a large class of distance metrics called “normed spaces” (which include distances like Euclidean distance and Manhattan distance). With Naor’s proof as a foundation, the computer scientists followed this chain of logic: If expanders don’t embed into a distance metric, then a good partitioning must be possible (because, they proved, expanderlike properties were the only barrier to a good partitioning). Therefore, a good nearest neighbor algorithm must also be possible — even if computer scientists hadn’t been able to find it yet.

The five researchers — the first four, now joined by Naor — wrote up their results in a paper completed last November and posted online in April. The researchers followed that paper with a second one they completed earlier this year and plan to post online this month. In that paper, they use the information they had gained in the first paper to find fast nearest neighbor algorithms for normed spaces.

“The first paper showed there exists a way to take a metric and divide it into two, but it didn’t give a recipe for how to do this quickly,” said Waingarten. “In the second paper, we say there exists a way to split points, and, in addition, the split is this split and you can do it with fast algorithms.”

Altogether, the new papers recast nearest neighbor search for high-dimensional data in a general light for the first time. Instead of working up one-off algorithms for specific distances, computer scientists now have a one-size-fits-all approach to finding nearest neighbor algorithms.

“It’s a disciplined way of designing algorithms for nearest neighbor search in whatever metric space you care about,” said Waingarten.



Read the whole story
clumma
3 days ago
reply
Berkeley, CA
Share this story
Delete

The Way, Ballpoint Pen, 18x18"

1 Share
The Way, Ballpoint Pen, 18x18" submitted by /u/atramentstudios to r/Art
[link] [comments]
Read the whole story
clumma
4 days ago
reply
Berkeley, CA
Share this story
Delete

Julia 1.0

1 Share
submitted by /u/ChrisRackauckas to r/programming
[link] [comments]
Read the whole story
clumma
7 days ago
reply
Berkeley, CA
Share this story
Delete

So no head, digital, 1440 x 1440 px

1 Share
So no head, digital, 1440 x 1440 px submitted by /u/perpetualgladness to r/Art
[link] [comments]
Read the whole story
clumma
7 days ago
reply
Berkeley, CA
Share this story
Delete
Next Page of Stories