Bert Jansch, Sounds of the 70’s

There have been quite a few new old Bert Jansch recordings posted to YouTube over the past year, including:

Bert Jansch – Sounds of the 70s, 15/7/71:

On 15 July, Bert Jansch recorded a BBC radio session for Bob Harris’ ‘Sounds of the 70s’. It has long been the holy grail of Bert’s BBC career – songs almost all from the ‘Rosemary Lane’ LP that in several cases he would never perform again. Six songs were recorded, split over two broadcasts: Twa Corbies, Nobody’s Bar and Bird Song plus some chat with Bert on 2 August 1971; and Omie Wise, Tell Me What is True Love and A Dream, A Dream, A Dream (plus a repeat of Bird Song) on 23 August 1971.

Christopher Gardiner, who made the priceless recording of Bert’s concert at the Royal Festival Hall on 30 June 1971 (elsewhere on YouTube), taped all the songs from both of these broadcasts. Unfortunately, Twa Corbies is lost but everything else was on his reel in remarkable fidelity (albeit the 23/8/71 tracks being in mono and needing more restoration work). Cormac O’Kane has digitised, restored and mastered the recording – which, of course, came to light only a few months too late for Earth’s ‘Bert Jansch at the BBC’ 8CD set.

It appears here in MP3 form (for convenience) as a gift to Bert Jansch fans from Christopher and myself. Should there be demand for an official release on, say, a Record Store Day vinyl 10-inch, the 48k WAVs will be provided for the cost of the restoration.

Songs & date of broadcast:

  1. Nobody’s Bar (2/8/71)
  2. Bird Song (2/8/71)
  3. Omie Wise (23/8/71)
  4. Tell Me What is True Love (23/8/71)
  5. A Dream, A Dream, A Dream (23/8/71)
  6. Bird Song (repeat from 23/8/71, with comments from Bob at the start and end)

Bert Jansch: A Man and his Songs, pt 1
From a Danish TV film broadcast in 1976. 0:00 Lost And Gone (from Santa Barbara Honeymoon) 1:50 Interview 3:46 When the Teardrops Fell (live, 1975) 7:36 Interview

Bert Jansch: A Man and his Songs, pt 2
From a Danish TV film broadcast in 1976. 0:00 Blackwaterside (live 1975) 3:42 Interview (on living in Putney, playing darts with Ralph McTell, etc) 5:32 Untitled Instrumental (on soundtrack) 7:58 Build Another Band (intro) 8:36 Build Another Band (live) 10:14 Interview (on forming bands)

Posted in Bach | Tagged , , | Leave a comment

Dynamic charts

A frequently asked question is how to get Excel charts to automatically update when new data is added outside the original selected ranges. The most frequent recommendation (such as here) is to convert the data to a table, then insert a new chart linked to the table. Adding new data immediately below the table will then automatically extend the table range, and the chart will automatically update.

This post looks at an alternative approach using range names defined with a formula, plotting data defined in a dynamic array. The process is described in detail at Engineer v Sheep, including some catches in the set-up process, and how to avoid them. This post looks at an engineering related example, including a modification to deal with data outside the dynamic array.

The requirement is to plot two graphs showing bending moments and shear forces, for multiple load cases, plotted against axial load, around a reinforced concrete arch, together with the bending and shear capacity (click image for full size view):

The data in the first three columns is imported from an external FEA program with VBA code. The other columns divide the moments and shear forces into three groups, depending on the sign and the reinforcement at the section. This data is returned by a user defined function, as a dynamic array.

To define the ranges for plotting, each column must be given a range name defined with an index function:

Note that the row number argument is left blank, so the function returns the whole column.

The index function can be used for all six columns returned by the UDF, but the axial loads are to the left of the UDF, and cannot be accessed using Index. For this column the Offset function must be used, with a negative row offset:

The named ranges can then be used to define the graph ranges:

Posted in Charts, Charts, Concrete, Excel, UDFs | Tagged , , , , , | Leave a comment

Simplified bi-axial bending

This post summarises my responses to a question at Eng-Tips.

The UK concrete standard in use before Eurocode 2 (BS 8110) has a simple procedure for designing columns subject to bending about both principal axes:

This allows the column to be designed to resist a factored moment about one axis.

Eurocode 2 has a different approach:

AS 3600 follows the same approach as Eurocode 2, but with slightly different exponent factors:

The Eurocode/AS 3600 procedure requires the section capacity to be checked about both axes, but it’s actually quite easy to derive an equation for the minimum resistance moment for the axis with the larger moment, similar to the BS8110 one:

For applied moment Me and moment resistance Mr, if Me/Mr is equal about the two axes then Equation 5.39 reduces to:

2(Me/Mr)^a <= 1.0

So for minimum Mr: (Me/Mr)^a = 0.5

Me/Mr = 0.5^(1/a)

Mr = Me/(0.5^(1/a))

In the graph below I have plotted 1/(0.5^(1/a)) with 1 + Beta from BS8110, the equivalent factor from the Australian code (AS 3600), and the factor derived from the biaxial analysis of a square section with equal moments about both axes, for a range of axial loads:

The factor is applied to the design bending moment, so a higher factor is more conservative.

The graph below shows the ULS bending capacity about one axis for a square section with equal applied moment about both axes. The section details were:

  • Dimensions: 600 x 600
  • Reinforcement; 4 N20 bars each face, yield strength = 500 MPa
  • Concrete: 40 MPa, cover 40 mm

Increasing the steel diameter to 40 mm has a significant effect on the results, with the simplified methods being much less conservative under high axial loads, and very unconservative under very high axial loads:

Posted in Excel | Leave a comment

3DFrame-py

My 3DFrame spreadsheet has now been converted to Python code and can be downloaded from:

3DFrame-py.zip

The frame analysis uses the Scipy linear algebra functions called from pyLinalgfuncs3, which must be available on the Python path:

pyLinAlgfuncs3.zip

The 3DFrame-py download file includes:

  • 3DFrame-py.xlsb: The basic spreadsheet, including data for a small example frame
  • 3DFrame-py Strand7 check.xlsb: Results for the small frame compared with Strand7 results.
  • 3DFrame-py-vvbig.xlsb: Spreadsheet with input and results for a much larger frame
  • Load3DFrame.py: Python code to load the 3DFrame-py code at startup of the associated spreadsheet
  • py_3DFrame0_1.py: The 3DFrame-py code, using the Numba just-in-time compiler.
  • py_3DFrame0_1-nojit.py: The same code but without any calls to Numba jit compilation.

In addition to the download files, the following modules are used:
Required:

  • pyxll
  • Numpy and Scipy
  • ctypes

Optional:

The spreadsheet has VBA code to automatically load the Python frame analysis code when the file is opened:

Public Sub Workbook_Open()
Dim iErr As Long

Application.EnableEvents = True
iErr = Run("Load3DFrame")
End Sub

The Load3DFrame module should either be added to the list of files opened at startup, in the pyxll.cfg file, or the code below should be added to an existing startup file:

import pyxll
from pyxll import xl_menu, xl_macro, xl_app, xlcAlert
import importlib as imp

@xl_macro
@xl_menu("Frame Analysis", menu="Load")
def Load3DFrame():
    xl = xl_app()
    usejit = xl.Range("Usejit").Value
    try:
        if usejit == 0:
            imp.import_module('py_3DFrame0_1-nojit')
        else:
            imp.import_module('py_3DFrame0_1')
        pyxll.rebind()
        xlcAlert('Frame Analysis module import completed')
    except:
        xlcAlert('Module not imported')
    return 0

The Python code is a work in progress, and the functionality of the spreadsheet is largely the same as the VBA version. The major differences are that the links to compiled solver routines have been replaced with links to the Scipy and pyPardiso solvers, and there is now an option to use code calling the Numba just-in-time compiler:

For large problems using the Numba module greatly reduces the time to complete an analysis, but the first time the solver is used the compiled code takes about 20 seconds to generate, so for small frames (or if the Numba module is not available), it is better to leave it disabled.

The spreadsheet has been saved with data for a small frame, and the results are compared with the Strand7 FEA results, showing near exact agreement:

The spreadsheet is able to handle much larger frames, and the download file has an example with nearly 10,000 nodes and over 27,000 beam members:

Note that for models of this size the Numba code should be enabled, and the solver should be set to one of the 2 iterative options, or to Scipy sparse, if the pyPardiso module is installed. The banded solver is very slow for models of this size, and may have memory overrun problems.

Background information on the methods used to generate and solve the frame model can be found by selecting “Frame Analysis” from the Categories drop down list at the top-right of the blog Home tab.

Posted in Arrays, Excel, Finite Element Analysis, Frame Analysis, Link to Python, Newton, NumPy and SciPy, PyXLL, Strand7, VBA | Tagged , , , , , , , | 3 Comments

More new old recordings

There have been quite a few old Pentangle and Bert Jansch recordings posted on YouTube in recent months.

BBC The Genius of Bert Jansch Folk Blues and Beyond, from 2014. Interviews and archive footage weave together performances from a concert at the Royal Festival Hall celebrating the songs and artistry of the folk-blues troubadour Bert Jansch.

Pentangle – ‘Newsnight’ 26/06/08:Robin Denselow investigates to third coming of the five and has coffee by the Thames with publishing personality Ian Anderson.

A Guardian article about the same concert:

Pentangle’s 2008 Royal Festival Hall reunion brought them back to the venue of the live half of their Sweet Child double album (1968). By many accounts, that performance was not without its rough edges. But the musicianship on display during tonight’s two-set engagement is awe-inspiring, virtuosic and – still – somewhat perverse: an endless knot of strings, disparate influences and textures.

And a Bert Jansch concert at the same venue in the early days: Bert Jansch – Royal Festival Hall 30/6/71

Posted in Bach | Tagged , , , | Leave a comment