The acoustic sounds resulting from the MRI gradients can be used to generate music. Using only standard sequences to generate the desired sounds, a single note per sequence can be played by setting the time of repetition (TR) appropriately.
This presents two challenges related to timing: the duration of the sequences and also the delay between them should be below 1 s to achieve a usable tempo for the melody to be played. This is in contrast to using a special sequence [1] [2] or the gradients directly.
Baslerlied on MRI
The Baslerlied «Z’Basel am mym Rhy» was “played” on a Siemens Area MRI, scanning a blood orange in the head coil.
Some resulting images and the recording are below. Due to the delay between the sequences playing the correct rhythm and tempo was not possible.
Sequence Parameters
The pitch of the note is set by TR. It is calculated as the inverse of the
frequency. E.g.: A 440 Hz: TR = 2.27 ms (1/(440 Hz)
)
The base sequence is a 2D gradient echo sequence (gre fi2d1) with parameters such that its duration is very short (< 1 s). In the subsequent a Siemens MRI is assumed.
GRAPPA | high (ref low) |
resolution | low |
partial fourier | low |
FoV phase | low |
phase oversampling | low |
Shim | Tune up |
Intra-sequence Delay
The delay between sequences is about 0.8 s and a technique to reduce this was not found. Thus with a minimal sequence duration of 0.2 s no more than 60 bpm can be correctly played.
Generating the Notes
The goal is to have the shortest possible sequence duration:
- Determine lowest and highest note to be played.
- Choose the highest octave for the highest note for which the TR can be set to the required time.
- The lowest note sets the minimal achievable duration (if all notes are to have the same duration).
- Note this duration, using 10 averages to get a more precise prediction in the sequence info.
- Generate the other notes using this lowest note by setting the appropriate TR.
- Lengthen this sequences to the same duration by adjusting the phase oversampling, partial-fourier, GRAPPA and averages.
- Generate the melody, adjusting the note duration for half notes etc. by increasing the number of averages.
- In principle the intra-sequence delay should be taken into account when changing the duration of the note, but if there are short notes (e.g. a eighth note) in the melody one has to disregard the correct tempo.
Sequences
The program for the Siemens Area (including a happy birthday bonus track):
Content of the program (using exar1-read and yes, you can use emojis 🤪)
🎶
music
Baslerlied 🎵
Happy Birthday 🎂
notes
Parameters
The Parameters for e.g. the D4 and B2 eight note (0.2 s) on the Siemens Area are:
Parameter | D4 | B2 |
---|---|---|
TA | 0.2 s | 0.2 s |
TR | 3.4 ms | 8.1 ms |
TE | 1.58 ms | 1.58 ms |
FoV | 180 mm | 180 mm |
Fov Phase | 112.5% | 84,4 % |
Phase Oversampling | 88% | 88% |
Matrix | 64 | 64 |
Phase resolution | 57% | 57% |
Partial Fourier | 6/8 | 6/8 |
PAT PE | off | 3 |
Ref PE | 12 | |
Slices | 1 @ 3 mm | 1 @ 3 mm |
Avg | 1 | 1 |
B0-Shim | Tune-UP | Tune-UP |
BW | 1500 Hz/Px | 1500 Hz/Px |
Volume
No consideration for the sound volume was made. In principle it should be possible to change it by changing the slice width and FoV. (see: Reducing acoustic noise in MRI; Dr Donald McRobbie; 2020-06-04)
Time of Echo
The time of echo (TE) was not adjusted for the sequences (besides trying to reduce the possible TR and sequence duration). Setting the TE maybe could be used to play a second pitch.