Repository navigation
Releases: jamesulip/Notero
Releases · jamesulip/Notero
Release list
Notero 1.1.0
Install
- Download
Notero-1.1.0.zipand unpack it. - Move
Notero.appto/Applications. - For the first launch, right-click Notero → Open. The app is not Developer ID signed, so macOS may block a normal double-click.
- Notero requires macOS 15+ and Apple silicon.
On first launch, Notero downloads approximately 1.9 GB of AI model weights from Hugging Face. This is the app's only network request.
What's New
✨ Simple Mode
- Notero now has two modes, and Simple is the default. It shows your recordings, a Record button, a Transcribe a File button, the transcript and the notes.
- Advanced shows every control: model tiers, audio controls, the benchmark, decode statistics and transcript revisions. Switch with ⌥⌘A, the mode name at the bottom of the sidebar, or Settings › General › Mode.
- Drop a file on the window or the Dock icon to transcribe it. Open With › Notero and
open -a Notero file.m4awork too. - Live text is now off by default. Notero records only and makes the transcript when you stop, so no model loads at launch.
- The microphone permission is now requested at your first recording instead of on the first-run card.
🎛️ Recording Controls
- Added a menu bar item with Record, Pause, Resume, Stop and Add a Bookmark, with the recording clock in its menu.
- Added global shortcuts: ⌃⌥R starts or stops a recording and ⌃⌥P pauses or resumes it, from any app, with no accessibility permission.
- Added a Pause button (⇧⌘P). The clock, the file and the live text stop, and Resume continues on the same timeline with no gap.
✏️ Transcript Editing
- Right-click a turn and select Transcribe This Turn Again to redo only that turn. One bad window in a four-hour meeting no longer costs a second decode of the whole meeting.
- Added File › Export Corrections as References… to write your edits out as a reference set with a scoring summary.
- Double-click and right-click now act on the whole turn rather than selecting a word.
⚡ Performance
- Long transcripts open much faster. A 3909-row transcript of a 3 h 51 min meeting is on screen in under a second, and the window no longer waits for it.
- The info bar, export, search index and editor all read the transcript the same fast way.
🎯 Accuracy
- Live text now drops words the model places inside a detected pause. On the test clip the word error rate fell from 51.6% to 39.1%.
- When the room listens through speakers, a room line that repeats a call line is dropped. Remote speech is no longer transcribed twice.
🏷️ Other
- The Accurate model tier is now called Best, because its accuracy was never measured against Balanced. Your stored setting still selects it.
- Labels, messages and help text now follow ASD-STE100 Simplified Technical English.
Your existing recordings and notes remain unchanged when updating.
Notero 1.0.1
Install
- Download
Notero-1.0.1.zipand unpack it. - Move
Notero.appto/Applications. - For the first launch, right-click Notero → Open. The app is not Developer ID signed, so macOS may block a normal double-click.
- Notero requires macOS 15+ and Apple silicon.
On first launch, Notero downloads approximately 1.9 GB of AI model weights from Hugging Face. This is the app's only network request.
What's New
🎙️ Improved Audio Recording
- Record microphone, Mac audio, or both.
- When recording both, room and call audio are stored on separate channels.
- Transcripts are generated independently and combined in chronological order.
- Speakers are identified separately as
Room 1,Room 2,Remote 1,Remote 2, etc. - You can now select a specific microphone.
- Added warnings when the selected microphone disconnects.
- Added clearer audio-permission handling for Mac audio recording.
- Added a soft limiter to prevent clipping from call audio.
📊 Improved Waveform & Meter
- Fixed waveform scaling so quiet and loud sections are easier to distinguish.
- Improved waveform bar spacing and rendering.
- Added a playhead and progress indicator while the waveform is being generated.
- Improved the live input meter timing and peak detection.
🛠️ Other
- Improved audio-device handling during recordings.
- Improved permission persistence between builds and updates.
Your existing recordings and notes remain unchanged when updating.
Notero 1.0.0
Install
- Download
Notero-1.0.0.zipbelow and unpack it. - Move
Notero.appto/Applications. - Right-click the app and select Open for the first start. This app has no
Developer ID certificate, thus macOS quarantines a bundle that a browser
downloaded and a double-click gives an error. A right-click and Open is the
only difference.
Notero needs macOS 15 or later and a Mac with Apple silicon. At the first
start it downloads approximately 1.9 GB of model weights from Hugging Face.
That is the one network request the app makes.
The first release that anyone outside can download. Everything below is in it.
The name
- The app is Notero. It was Transcriber through the private builds. The
bundle, the window and the menu carry the new name, and the bundle identifier
is nowlocal.notero. macOS asks for microphone access one more time after
the change, because it grants that access per bundle identifier. - The Swift modules and
~/Library/Application Support/Transcriber/keep the
old name. The directory holds the recordings that the private builds wrote,
thus a rename there hides them from the app.
Live transcription
- Each decode now reads 1.5 seconds of committed audio in front of the active
region. The model therefore does not start cold at a commit boundary. That
audio is context only. The app drops a word that the model reads again from
it by time. It drops the boundary word by text when its times drifted. No
word commits two times. - An utterance now ends on the clock of the voice detector and not on the hop.
After 700 ms of silence, the app decodes all audio up to the pause at one
time. The agreed prefix commits as usual. The tail commits only if the room
is still quiet when the decode returns. Before this change, the app saw the
pause up to 1.5 seconds late and committed the provisional text of the last
hop. The final second of each utterance was never decoded. - The app writes each committed line to the library while the recording runs,
in batches of approximately one second. After a crash in the middle of a
meeting, everything up to the last commit is still there. The message on the
row says so, and Transcribe Again redoes the rest from the working copy. - Stop now waits for the decode in flight and examines the tail one more time
before it commits. Before this change, the app discarded whatever arrived
after the snapshot. - A live segment carries the confidence of the model again. The commit step
dropped it before. - The Stats popover shows the number of closed utterances, final decodes,
unagreed tail words, forced commits and deduplicated boundary words.
Whole-file transcription
- A whole-file job now finds the speech and decodes it in 5-minute batches.
Before this change, the app scanned the complete recording before the first
call to Whisper, and a long file showed no text for many minutes. The two
stages stay sequential, thus they do not compete for the Neural Engine. - A transcript now appears while a whole-file job runs. The segments of each
decoded window go into the store as that window finishes. A banner gives the
stage, the percentage and the time that remains. A job that stops part-way keeps
what it had, with the label Partial. - Speaker identification has three modes in Settings: Off, Fast and Accurate.
Accurate is the default and examines each turn a second time. Fast does one
pass and is much quicker on a long recording, but it can merge similar
voices. The command-line tool takes--fast-diarizefor the same purpose. - The app stores the duration of each stage with the transcript and shows it in
the ⓘ popover: Prepare, Find speech, Transcribe, Identify speakers and
Finalize. - The benchmark also reports the tier that finished fastest, with a button to
select it. A quantized model uses less memory, but it is not the fastest
model on every generation of Apple silicon.
Speakers and transcripts
- You can merge two speakers with a right-click in the Speakers pane. You can
move one turn to a different speaker with a right-click on a transcript line.
The pane sorts by talk time, draws talk-time bars and marks probable
fragments. - "People in the room" on a recording gives speaker identification a target.
The target is soft. The app merges clusters that are closer than a relaxed
distance until it reaches the count. Voices that are clearly different stay
separate. - Transcribe Again names each tier. Identify Speakers Again runs the speaker
pass alone. - Double-click a turn to edit it line by line. An edit keeps the raw model
output below it, and search and the exports read the edit. You can move a
line to a different speaker, restore it, or delete it. ⌘Z undoes all edits to
one turn in one step. - A menu in the info bar opens an earlier revision of the transcript.
- ⌘F finds text in the open transcript and highlights each match in place.
⇧⌘F searches the complete library.
Windows, views and controls
- The window now works down to 300 pt wide. Before this change, the columns
kept their widths and the window overflowed. That cropped the left edge of
the sidebar and the right edge of the inspector. The inspector now folds
below approximately 1060 pt, and its toolbar button gives the reason. The
sidebar folds below 800 pt. Both return when the window becomes wider, and
the toolbar toggle still opens the sidebar in a narrow window. The transcript
header, the info row, the player bar, the buttons and footer of the live
view, the sidebar filter and the first-run card each have a compact form. - Playback keeps the current turn in view. If you scroll by hand, the app stops
this. The Follow button, or the "Follow playback" pill, starts it again. - Settings is a resizable window with General, Audio, Models and Storage panes.
You can download a model before you need it, with progress, or delete it. - "Transcribe while recording" now does what its name says. If it is off, the
Mac only records during the meeting, and the whole-file pass makes the
transcript after you stop. - Sidebar: double-click a recording, or use Rename, to retitle it in place. An
Active filter shows what records or transcribes now. The status chip gives
the time that remains. If you import a file that matches one in the library,
the app asks before it makes a second copy. - Export: Markdown minutes with attendees, summary, action items with
checkboxes, and then the transcript. The Export menu also gives Copy as Text
and Copy as Markdown. You can export selected speakers only, or one time
range only. The app remembers the last format. - The app stores a warning about an imperfect job with the recording, and shows
it in the sidebar, the header and the info popover. A background job that
fails no longer opens an alert over the current view. The live footer keeps
the model and the language and moves the engineering numbers into Stats. - Meeting workspace: the panel is the system inspector, and you can resize it
by drag. It remembers its open state separately for a recording and for a
meeting. Each tab shows a count. A quick-add row at the top takes a note of
any kind. An empty note kind collapses to one add row. - Each speaker has a coloured initials badge. ⌘[ and ⌘] step through the turns.
⌥↑ and ⌥↓ change the speed. View › Show Times of Day (⌥⌘T) shows the time of
day of each turn instead of the offset from the start. Hover on a bookmark
tick on the waveform to see its label, and click the tick to go there. - First run: a card in the empty pane checks microphone access, offers the
speech model download with progress, and sets the language. It does this
before your first ⌘R. - A model download before a recording, or before a whole-file job, shows a
progress bar and a percentage instead of a spinner. - If you stop a recording under ten seconds, the app asks Keep or Discard.
Releases
- The app does not update itself. It downloads no code, checks no
signature and replaces no bundle. It therefore makes one network request
only: the model download at the first start. - Notero ▸ Releases on GitHub… opens the releases page in your browser.
Settings ▸ About holds the same link, with the version of this copy. To move
to a newer version, get the zip from that page and replace the app. app/scripts/release.shbuilds, packages and publishes a release.
docs/RELEASE.md gives the procedure.
Tools and the build
transcribe --livereplays a file through the live path, with--hop,
--pre-roll,--context,--adaptive-hopand--realtime.--jsonwrites
a machine-readable report.eval/compare_language.pycompares forcedtl
againstautoand reports Filipino and English word error rates and a
code-switch error rate. An adaptive hop is available behind
SessionConfig.adaptiveHop. The default is off.- The build writes the version from
app/VERSIONand the commit count into the
bundle. GitHub Actions runsswift buildandswift teston each push.
app/scripts/snap.shmakes a screenshot of the app for a visual check.
AppState is now several files, one for each concern. You can select several
sidebar rows and delete them together. A failed recording goes under Needs
Attention. - README.md now shows the app.
app/scripts/make-demo-meetings.shbuilds the
three synthetic Taglish meetings behind those screenshots, thus no real
meeting goes into this repository. Its comments give theCFFIXED_USER_HOME
route to a demo library that leaves your own recordings alone.