09 July 2020

661. Teaching during the pandemic, part 4: making simple video lectures

This post is a bit different from the previous ones -- it simply shows what I've been doing for some time to create supporting videos for my students.


I record my voice using Audacity, and I use KDENLive to make the videos. I make slides using google docs.

Once you've got used to this you can make a bunch of short videos (aim at 6 minutes or so) in a single day.

Here's my work flow:

1. Create a script for the audio. 
I basically write down everything I'm going to say before I've made my slides. I then make the slides to match the script.

I use gedit to write my script.

2. Create the slides to match the audio
I use google slides:


I export each slide as a png:
3. Record the audio in audacity
Use a good microphone! I'm using a Blue Yeti, which is great.

NOTE: each audio file should correspond to a single slide, or part of a slide. Not the other way around. It makes step 4 easier, and helps if you need to redo the audio for a section.

Export the audio in a suitable format (e.g. flac)
4. Fire up KDENLive

Import your clips.

Add your audio to the Audio channel

Then add the png files to the video channel. Stretch the duration of each image file to match the duration of the audio.


Once you're done, render the video:

That's all!


Now you can combine the teaching posts to create something that works for you. Here are the links again:
* Mobile phone lavalier mic: http://verahill.blogspot.com/2020/07/658-teaching-during-pandemic-part-1-how.html
* Recording (several) cameras and syncing: http://verahill.blogspot.com/2020/07/659-teaching-during-pandemic-part-2.html
* Dealing with audio: http://verahill.blogspot.com/2020/07/660-teaching-in-pandemic-part-3-what.html

660. Teaching in the pandemic, part 3: What I'll be doing to capture live lectures. Audio.

I've looked at a few different solutions, but I've basically settled on recording video and audio separately. The downside of this is that I won't stream. The advantage is that I can do post-processing to add clearer pictures of slides etc.

The video part is pretty straight forward. See e.g. http://verahill.blogspot.com/2020/07/659-teaching-during-pandemic-part-2.html

When it comes to audio I've explored a range of solutions:

* Bluetooth headset -- this would've allowed me to stream, but the sound quality is just too poor with bluetooth (I tried Blueparrot B350-XT). For an example of how bad it can be, check out this corporate(!) video:
Advantage: wireless, can stream, only covers one ear
Disadvantage: Sound quality

* 2.4 GHz Wireless headset -- I tested Logitech G930. The sound quality is OK, but it covers both ears, and makes it hard/ uncomfortable to deal with a live audience.
Advantage: sound quality, wireless, can stream
Disadvantage: shuts out the live audience

* 'Normal' microphones -- I have a number of microphones, including Blue Yeti. Many of them are wired (USB), and none of them will work in capturing a moving (i.e. mobile) lecturer.
Advantage: superior audio -- when very close, streaming
Disadvantage: poor audio unless you're right in front of the mic

* Mobile phone lavalier mic -- See here for how to do that: http://verahill.blogspot.com/2020/07/658-teaching-during-pandemic-part-1-how.html.
Advantage: great sound, mobile, can potentially stream
Disadvantage: drains phone battery, can be tricky to set up LAN, if using receiving device (laptop) as hotspot you may not be able to connect to the internet (i.e. can't stream)

My chosen solution:
* Using a portable audio recorder (e.g. dictaphone) --  I've got a Zoom H1n, and a lavalier microphone. I love this microphone. It's lightweight, portable, not too expensive, and the internal XY microphone is great (to my ears). The amplifier for external mics is a bit weak, but it works for my purposes, especially if you post-process in Audacity. But that leaves you having to sync your video and your audio in post. I've already showed you how easy it is to do that here: http://verahill.blogspot.com/2020/07/659-teaching-during-pandemic-part-2.html

Note that you need to invest in a decent lavalier microphone as well. Also note that most these days seem to come with a 3.5 mm TRRS connector (good for mobile phones), and the Zoom needs 3.5 mm TRS (the old standard). Many of the cheap/affordable lavalier mics that you find on e.g. Amazon come with TRS/TRRS adapters, so it's not much of an issue.

Advantage: potentially great sound, great battery life
Disadvantage: you can't stream live, needs a lavalier microphone

So there we are -- I'll set up a single webcam to record video directly to my laptop. I'll capture the sound using it as well, but mostly to help me sync the audio later. I'll record my voice using a dictaphone and a lavalier microphone, post-process the sound in Audacity, then import video and audio in KDENLive, where I'll sync everything. I can then add pictures of my slides as well, and don't have to worry about the image quality during recording.

659. Teaching during the pandemic, part 2: Recording with two cameras (on linux)

This is a very short post. What if you need to set up two (web)cameras that capture from e.g. different whiteboards?

I had a look at OBS studio, and it's not stable for me. Sometimes I get a cam image, and sometimes I don't. I also had issues with getting two cameras to work. I also looked at webcamoid and cheese. The frame rates were too bad.

What does work for me is guvcview. This is available in the debian repos.

I'll also show you how to sync the sound using KDENLive

1. Install guvcview
sudo apt-get install guvcview

2. Start guvcview.
Then go to video controls.

Select a new Device, then select New

Now you've got both feeds showing:
Then you can simply record:

I won't go into how to switch back and forth between angles in KDENLive. I'll just show you how to sync the videos using the audio:

Import both clips into KDENLive and put them in separate channels. Right-click on one of the tracks, and make it the audio reference:

Align the other clip:
They are now aligned:

Note that you could have done this with a pure audio track as well (we'll get to that in the next post).

You can then start cutting away bits you don't want using the x/scissors:

658. Teaching during the pandemic, part 1: How to use a mobile phone as a wireless lavalier microphone

This pandemic isn't going anywhere soon. We'll be using online/remote teaching or hybrid teaching models for at least the next two semesters up here, and it's time to figure out how to do it in a way that works for the students, as well as us lecturers, in spite of not actually getting any more time to prepare our classes than we would during a normal year.

This post is linux-centric, but the solution should be applicable to OSX and Win as well.

Using a mobile phone as a wireless lavalier microphone
While I've made proper videos in the past, I haven't tried recording 'live' lectures before. We've been asked to resume on-campus lectures this fall, but have also been told to make sure that we record everyhting so that students don't show up to class in spite of being sick.

I've moved away from using powerpoints to using the whiteboard for my lectures (I've surveyd my students -- 95% in class after class prefer chalk-and-talk).

Simply using a camera with a static microphone to record won't cut it -- it won't capture the sound properly, in particular not when you're up at the whiteboard. Also, audio-quality matters -- if you have to choose between good audio and good video, pick audio.

What do you need?
You need
* an android phone (similar solutions should be available for iOS)
* for the phone and your recording device (e.g. laptop or computer) to be online and able to connect to each-other (e.g. a LAN). You can use the laptop as a hotspot.
* the program LANMic installed on your phone
* OBS Studio to receive the stream from LANMic. There are other programs -- as long as they can receive rtsp streams, they are OK.


How-to

1. Install LANmic on your phone. Connect a lavalier/lapel mic to your phone. Install OBS Studio on your computer.

2. Both devices (phone and computer) need to be able to communicate with each other over the LAN.

If you have EduRoam, this might not be the case. In that case, use your computer to set up a wifi hotspot. See the end of this post for how to do that.

3. Start LANmic on your phone, select rtsp and start streaming. Note the address of your phone (here: rtsp://192.168.2.13:8080)
It'll look like this because nothing's connect to it:


4. Start OBS Studio and add your sources.

I've just made a quick example here. To add the phone, add Media Source, uncheck local file, and enter the address from the previous step.




If all goes well you'll see the meter for the moble mic moving.


Your phone will now look like this:


This isn't a perfect solution, but it works. Importantly, it will allow you to record everything on the fly/and or stream it and/or stream via zoom (have a look at https://obsproject.com/forum/resources/obs-virtualcam.539/).

In the next few posts I'll be exploring other solutions


Here's how to set up a wifi hotspot on debian:

Open Network:









Set up hotspot:




Then connect your phone to the new network. Note that this means that you won't have any network connectivity, unless you're also using a LAN cable.



29 November 2019

657. More on charges in nwchem and gaussian

A now ten-year old paper introduced the concept of Pauling bond-strength conserving terminations (PBS ) in the use of molecular codes for calculations involving extended crystalline systems ('Quantum-Chemical Calculations of Carbon-Isotope Fractionation in CO2(g), Aqueous Carbonate Species, and Carbonate Minerals' by James R. Rustad, Sierra L. Nelmes, Virgil E. Jackson, and David A. Dixon --  see link). The authors used NWChem for the calculations, most likely due to the affiliation between the lead author and PNNL, where NWChem is developed, and where the researchers have been banned from using Gaussian.

I use Gaussian almost exclusively these days, mainly due to how fast it is.

Unfortunately, Gaussian and NWChem behave quite differently when it comes to introduction of specified nuclear charges, so I here compare the two codes in terms of how to set up PBS calculations.

NWChem (6.8):
scratch_dir /scratch
Title "charge"

Start  charge

echo

charge 0

geometry noautosym noautoz units angstrom
 Mg     0.00000     0.00000     0.00000
 O     0.00000     2.09000     0.00000
 O     1.47785     2.22045e-16     1.47785
 O     -1.47785     -1.11022e-16     1.47785
 O     0.00000     -2.09000     0.00000
 O     -1.47785     2.22045e-16     -1.47785
 O     1.47785     -1.11022e-16     -1.47785
 H1     -0.691981     2.65500     -0.691981 charge 0.5 
 H1     0.691981     2.65500     0.691981 charge 0.5 
 H1     1.87737     0.978609     1.87737 charge 0.5 
 H1     1.87737     -0.978609     1.87737 charge 0.5 
 H     -1.18539     7.33956e-09     2.56935
 H     -2.56935     -7.33957e-09     1.18539
 H     -0.691981     -2.65500     0.691981
 H     0.691981     -2.65500     -0.691981
 H     -1.87737     -0.978609     -1.87737
 H     -1.87737     0.978609     -1.87737
 H     1.18539     -2.20187e-08     -2.56935
 H     2.56935     2.20187e-08     -1.18539
end

basis "ao basis" spherical print
  H library "def2-svp"
  Mg library "def2-svp"
  O library "def2-svp"
END

dft
  mult 1
  direct
  XC pbe0
  grid xfine
  mulliken
end

task dft energy   

This gives an energy of -655.860806066326.

Removing the charges for H1 and setting the total charge to +2 gives an energy of -657.044328628867

Gaussian (16.A01):
WRONG:
%nprocshared=6
%Mem=800000000
%Chk=charge.chk
#P GFINPUT rPBE1PBE/def2svp 5D  NoSymm  Punch=(MO) Pop=(full) 

charge

0 1 ! charge and multiplicity
 Mg     0.00000     0.00000     0.00000
 O     0.00000     2.09000     0.00000
 O     1.47785     2.22045e-16     1.47785
 O     -1.47785     -1.11022e-16     1.47785
 O     0.00000     -2.09000     0.00000
 O     -1.47785     2.22045e-16     -1.47785
 O     1.47785     -1.11022e-16     -1.47785
 H(znuc=0.5)     -0.691981     2.65500     -0.691981
 H(znuc=0.5)     0.691981     2.65500     0.691981
 H(znuc=0.5)     1.87737     0.978609     1.87737
 H(znuc=0.5)     1.87737     -0.978609     1.87737
 H     -1.18539     7.33956e-09     2.56935
 H     -2.56935     -7.33957e-09     1.18539
 H     -0.691981     -2.65500     0.691981
 H     0.691981     -2.65500     -0.691981
 H     -1.87737     -0.978609     -1.87737
 H     -1.87737     0.978609     -1.87737
 H     1.18539     -2.20187e-08     -2.56935
 H     2.56935     2.20187e-08     -1.18539

gives an energy of -655.679686484!

However,
2 1  ! charge and multiplicity
gives an energy of -655.860712881, which is what we want.

Removing the znuc specifications and using
2 1  ! charge and multiplicity
gives an energy of -657.044229333

Keeping the znuc specifications and defining those protons as fragment 2, and the rest of the cluster as fragment 1
 2 1 -2 1 4 1! charge and multiplicity
gives an energy of -655.860712881


Conclusion: 
both NWChem and Gaussian can be made to use PBS, but while you use the intended cluster charge (0) in NWChem, you need to use the unmodified charge (+2) in gaussian.

29 September 2019

656. Rant: On Academia and the English language

I used to think that (postgraduate) students didn't know how to write good manuscripts because they don't learn how to do so during their undergraduate education. I'm now even more cynical about it -- I believe that we actually actively teach them bad practices instead.

1. Honours students are particularly problematic, since they haven't yet had to write a thesis and are mainly exposed to scientific writing in the form of lab reports. Unfortunately, the way lab reports are written does not resemble any form of document that the students will produce in the career -- whether they go into industry or academia. So what's the point? Sure, they get to do a bit of thinking about the science behind the experiment in the process of writing -- and that's great -- but it does not teach them how to write up science.

2. The biggest problem is that students, regardless of level, are often told to write a certain number of words as part of their academic assignments --'write at least 800 words'. The idea is to make sure that they put in enough work, but the outcome is that you get papers with a lot of filler words and phrases.

I had a masters (by research) student write something along the lines of 
"'During the first week(s) of the course, a literature search will be conducted where appropriate sources are gathered'"
instead of
"Targets will be synthesised according to literature procedures"

It would be better to give students assignments where they are told what must be addressed in their essays, and then graded accordingly if they do a bad job of it. If they can complete the task in 400 words instead of 600, so be it.

I now tell my students to read Orwell's "Politics and the English language" in order to learn how to write, as it deals with this directly, and contains some great examples.

3. Postgraduate science writing courses are often geared towards teaching students to write popular science texts, and are often given by people outside their fields. Firstly, they are PhD students and first need to be able to write about science as experts before learning to write pop sci -- they WILL need to do the former, but are unlikely to need to do the latter. Secondly, (bad) pop sci writing often ends up being so devoid of actual information that it's impossible for someone in the field to figure out what it's about -- the way the Nobel prize in chemistry is presented in the newspapers is often so short on detail that it's impossible to know what the discovery is.

4.  Role models are hard to find. Few students think that the type of writing they see in social media works for science, but they might not realise that journalists are great sinners along the lines of point 2. Authors of fiction vary in quality, and I find it hard to read modern literature because of how self-indulgent many authors are.

I tell students at the beginning of their postgraduate course to have a look at some of the papers that they read when doing the initial literature search for their research, pick out one good and one bad example, and then try to work out WHY they felt that way.