Browsed by
Tag: tech

Collaborating in the exhale project – Part 2

Collaborating in the exhale project – Part 2

Hi everyone,

Yesterday, I began working on my second collaboration for the exhale xHE-AAC USAC encoder. This time, I worked on adding an argument to print the software version on the console.


The above is the main software, printing its information as well as how to use it.

There was no option to print the version only. Ideally, I just wanted a way to print something like exhale version 1.0.3 that I can easily parse it as I do with other tools like Opusenc and Flac. Because of this, I began working on adding this functionality.

The code that performs this will check if there is just one argument (actually 2, since the first one is the executable filename). It also checks if the argument is either -v or -V. If this is true, we print the software information to the user:

This is the result:

A very simple and minimalistic output. Thanks to this, I can parse it and use on tools like my upcoming exchale GUI:

This Merge Request was approved and merged and is ready to use for everyone. As for the GUI, expect it in the next couple of days!

Click here to see the Merge Request on GitLab.

My first GitLab contribution: exhale encoder

My first GitLab contribution: exhale encoder

Hi everyone,

Yesterday, I collaborated on the exhale xHE-AAC Audio Encoder to add compatibility to compile the project on MinGW on Windows.

The exhale project is an Open-Source xHE-AAC USAC encoder. It allows you to encode wave (WAV) files to M4A using this specific codec.

Originally, compilation on Windows was done using Visual Studio, and this worked fine, but when compiling it on MSYS2/MinGW, it gave some issues, specifically:

H:/repos/media-autobuild_suite/build/exhale-git/src/app/../../src/app/exhaleApp.cpp: In function 'int main(int, char**)':
H:/repos/media-autobuild_suite/build/exhale-git/src/app/../../src/app/exhaleApp.cpp:246:85: error: '_SH_DENYWR' was not declared in this scope
  246 |     if (_sopen_s (&inFileHandle, inFileName, _O_RDONLY | _O_SEQUENTIAL | _O_BINARY, _SH_DENYWR, _S_IREAD) != 0)
      |                                                                                     ^~~~~~~~~~
H:/repos/media-autobuild_suite/build/exhale-git/src/app/../../src/app/exhaleApp.cpp:320:100: error: '_SH_DENYRD' was not declared in this scope
  320 |     if (_sopen_s (&outFileHandle, outFileName, i | _O_SEQUENTIAL | _O_CREAT | _O_EXCL | _O_BINARY, _SH_DENYRD, _S_IWRITE) != 0)
      |                                                                                                    ^~~~~~~~~~
make[1]: *** [../makefile.base:112: ../../build/exhaleApp.d.o] Error 1
make[1]: Leaving directory '/build/exhale-git/src/app'
make: *** [makefile:18: all] Error 2

It also complained about fprintf_s, so some changes needed to be done on the code.

To solve the _SH_DENYRD not declared issue, we had to include the share.h header:

Next, to solve the fprintf_s issue, I surrounded this on an #if !defined block to check if we were compiling on MinGW. If we are, we simply skip this declaration:

After these changes were done, the software compiled successfully.

Next, I did some additional changes to the makefile.base file to allow the Media Autobuild Suite project to pass its CXXFLAGS and LDFLAGS variable to exhale:

These changes got merged into the project.

My inspiration to add this tool to the Media Autobuild Suite came as a user requested this tool to be added to it. So, I worked on it and submitted a Pull Request, where I refined it further to apply some recommendations.

The Pull Request was merged into the suite and is now available for everyone to build and use.


Ritek Mini CD-R: Part 2

Ritek Mini CD-R: Part 2

Hi everyone,

Today, I burned a few more Ritek Mini CD-R media, where I found out they have a surface issue:

Ritek CD surface issue 2

I didn’t realized this, but it seems to be a plant manufacture problem. I opened another of the 100-pack I have and it have the same problem.

The problem is that the data was burning fine, with no errors on my Lite-On iHAS524, but it failed to verify on some parts of the disk, as it was approaching the end. I was burning them at 24x, the maximum speed it supports on the writer.

I decided to use the Optiarc AD-7561A drive I have to see if it would burn fine with it, since slim drives usually burns at a lower speed.

M Way External DVD Drive - Colorful Flame Pattern - Teardown - 10
Optiarc AD-7561A

When the CD is inserted in this drive, it is detected as a 10x media:

I burned the CD with this drive, where it was able to both burn and verify successfully. It also seems that the drive burned surface is a bit darker than with the LiteOn drive, so maybe that makes it handle the bad surface better.

Quality tests

I burned 2 CD’s with the Lite-On drive where both burned successfully but didn’t read fine. One was able to read completely, but lowering the read speed at the bad section. The other one failed with unrecoverable errors.

Let’s see their quality tests with the LiteOn drive first, followed with the Optiarc drive:

CD #1 – LiteOn

This is the CD that was able to read completely but lowers the speed. When playing it back, it pauses while reading the wrong area. It can be ripped, but will struggle in the bad area. The ripped file appears to be fine, but EAC reports timing problems. Listening to the track didn’t revealed any issues.

You can see the excesive amounts of C1 and C2 errors.

CD #2 – Optiarc

Here is another burn of the same data, burned with the Optiarc drive and tested on the LiteOn drive. You can see that it only reports a maximum of 10 C1 errors and no C2 errors. The quality score is 99%. Same media, but burned on a different drive, at 10x speed.

CD #3 – LiteOn

This CD failed to test properly. Once again, you can see the excessive amounts of C1 and C2 errors. The positions of the C1 and C2 errors seem to match the ones of the previous LiteOn burn.

CD #4 – Optiarc

Here is another burn of the same data of the previous burn. You can see this time it was successful, with only a maximum of 8 C1 errors and a total of 19. Again, the quality score is 99%, which is the same as the other Optiarc-burned media.


As seen from the above tests, it seems the Optiarc AD-7561A drive can successfully burn these discs if we intend to use all of its capacity. Maybe it is because of the slower burning speed, or because the optical laser can burn them better than the one on the LiteOn drive.

The LiteOn drive can only burn these CDs at 16x and 24x, while the Optiarc can only burn them at 10x. I’ll test burning a disc at 16x at a later time and see if it works. If not, I’ll continue using the Optiarc drive, which has proven to burn them correctly and without any issues.

Ritek Mini CD-R Photos and Quality Tests

Ritek Mini CD-R Photos and Quality Tests

Hi everyone,

Yesterday, I received some Pocket/Mini CD-R I purchased on eBay, which were being sold for cheap due to them not being branded or not having their specs listed.

The seller was selling 3 packs of 100 unbranded silver surface Mini CD-R, and since the price was lower compared to other branded media, I decided to buy all 3.

Ritek Pocket CD-R 210MB media - 1

The discs were wrapped with no spindle.

Ritek Pocket CD-R 210MB media - 2

The discs have a silver surface:

Ritek Pocket CD-R 210MB media - 3

Here we can see a single CD-R:

They have the usual light green color on the data side.

The disc loaded fine on my LiteOn iHAS524 drive. I launched ImgBurn which says that the discs are made by Ritek. Their media ID is 97m15s17f:

Pocket CD 97m15s17f Ritek Media 1

They also have a capacity of 210MB or 24 minutes and a maximum write speed of 24x.

Pocket CD 97m15s17f Ritek Media 2

This is the first Mini CD I use with this LiteOn drive, which has the unique LabelTag feature to add labels to the data side. The software detected the disc and a label can be created:

Pocket CD 97m15s17f Ritek Media 3

I burned some of these CD-R with Nero Express, which allows the creation of the label on the same run. I also burned them at its maximum speed of 24x without any failure.

Quality tests

I ran a Disc Quality test using Nero DiscSpeed. Below you can see the results of those tests. I limited the test to the first session of it, as the second one is the label produced with the above software and contains unreadable data. This makes the test fail. By limiting it to the first session, we can get the actual data track quality.

Disc 1

The first test gave us a maximum of 14 C1 errors with a total of 58. The average was 0.11. There were no C2 errors reported. The Quality Score was 98%.

Disc 2

This test was perfect! No C1 or C2 errors were reported, making the Quality Score be 100%.

Disc 3

This disc had a maximum of 9 for the C1 Errors with a total of 13. The average was 0.07. No C2 errors were reported. The Quality Score was 99%.

Disc 4

This final disc I burned had a maximum of 13 C1 errors with a total of 27. No C2 errors were reported. The Quality Score was 98%.

Final Thoughts

These blank CD-R media seems to be good to write small amounts of data. This could be an MP3 album, some photos, or software you’d like to archive. The burns seem to be of good quality and the 24x burning speed is adequate. This sure was a great find on eBay!

The M Way External DVD Drive Teardown

The M Way External DVD Drive Teardown

Hi everyone,

In this post, I will be tearing down the M Way External DVD Drive.

This is a slim external CD-RW/DVD-ROM Combo drive that can read and write CDs but can only read DVDs.

Let’s begin with the teardown.

First, we must remove 2 screws that are found on the back to open the drive enclosure:

M Way External DVD Drive - Colorful Flame Pattern - Teardown - 1

We can then open the enclosure:

We can see the DVD drive along with the board and USB Cable. We can also see that it seems that the USB cable is not actually soldered to the board.

Removing the DVD drive from the enclosure, we can see that the cable is in fact a Mini USB cable. This means the cable is not an actual USB 3.0 cable:

M Way External DVD Drive - Colorful Flame Pattern - Teardown - 4

The fact that the cable is not soldered to the board is good news for us since we could replace it if the original cable goes bad or we want to use another cable.

On the back of the drive, we can take a closer look at the USB board:

M Way External DVD Drive - Colorful Flame Pattern - Teardown - 5

Taking it off reveals a nice surprise:

M Way External DVD Drive - Colorful Flame Pattern - Teardown - 6

The board is a USB to PATA/IDE adapter. This is interesting and somewhat makes sense, since the drive is just a CD-RW/DVD Combo Drive, and back in the days, we could see tons of CD writers for laptops. It uses the Initio INIC-1511 IC.

Here, we can see the PATA/IDE conector of the drive:

M Way External DVD Drive - Colorful Flame Pattern - Teardown - 7

I decided to take off the sticker that it has on the top, revealing something more:

M Way External DVD Drive - Colorful Flame Pattern - Teardown - 8

The included TEAC DW-224E-C drive was manufactured in November 2005. This could mean they are recycling old DVD drives or using refurbished drives. If this is true, this is good news for the environment, since they are repurposing drives that are in working conditions.

Here, I have the original drive connected to my computer without the enclosure:

M Way External DVD Drive - Colorful Flame Pattern - Teardown - 9

Because the drive is basically an internal drive on an IDE to USB enclosure, we should be able to use it with other drives. I tested it with an old Optiarc AD-7561A drive. This drive is a CD/DVD writer with Lightscribe technology, which I haven’t used it for years:

M Way External DVD Drive - Colorful Flame Pattern - Teardown - 10

When I connected the drive to the board, and to the computer, it recognized it without any issues:

M Way External DVD Drive - Colorful Flame Pattern - Teardown - Optiarc Device Manager

And here we can see its capabilities as reported by ImgBurn:

M Way External DVD Drive - Colorful Flame Pattern - Teardown - Optiarc Capabilities

The Optiarc drive still works after a lot of years of not using it. This also means that we should be able to use other PATA/IDE drives with this particular USB board and exchange the original drive if it ever goes bad.

That’s basically it for this teardown. If you’re interested in getting this CD-RW/DVD drive, you can get it on Amazon here.

Unboxing the MagaBolt MagX Magnetic USB-C Cable

Unboxing the MagaBolt MagX Magnetic USB-C Cable

Hi everyone,

Today, I’m sharing my unboxing video of the MagaBolt MagX Magnetic USB-C Cable which was a campaign that ran on Kickstarter.

This is a Magnetic USB-C cable that resembles Apple’s MagSafe connector. It is compatible with all USB-C devices, so you can use this cable to charge your phone, for instance.

Watch the video below to see how the cable looks:

Unboxing the BaseUs USB-C Hub for Phones (NuDock on Kickstarter)

Unboxing the BaseUs USB-C Hub for Phones (NuDock on Kickstarter)

Hi everyone,

I uploaded a new video to my YouTube channel. This time, I present you the BaseUs USB-C Hub, also called NuDock when it ran on Kickstarter. The final product turned out to be this BaseUs USB-C Hub, with identical features to the Kickstarter project.

The project creator told us that because NuDock was already being used, they had to rename the dock to BaseUs.

Watch the unboxing video below:

Steem.Chat Post Poster v1.3 released!

Steem.Chat Post Poster v1.3 released!

Note: This software is no longer maintained nor updated.

Hi everyone,

Steem.Chat Post Poster is a software that can automate posting your posts to different channels in Steem.Chat. The truth is that lots of channels are filled with post links, so this utility can help you send your posts to the chat. Of course, I would recommend looking at the chat and viewing each user’s posts, but if you prefer, I also provide this option of batch-sending posts.

Since yesterday, I began reworking with my Steem.Chat post poster software which was outdated. First of all, it didn’t used the new URL so I updated that. I also did some changes to the GUI and added a new feature! Let’s find it out!

Can now import and export channel list:

There’s a moment when you write a post but with different categories, and there’s a lot of channels to post your post, but then when you write another post, it may be of a different category. In the previous version, you would need to manually remove the channel list and add the new channels, and then if you wanted to share your post with another category, you would need to do the remove/add channel again. Luckily, now with this version, I’ve added the ability to save your channel lists so that when you want to use the same channels again, you just import it.

To do this, just go the “Channel” list menu and select either import or export: Post Poster v1.3 - 1

The software functionality remains the same as in previous versions, but references to were changed to

Other visual changes are that the Vote Witness link is now placed in the Menu Bar so you can click that and vote me as a Witness easily. The same goes to Donations shall you want to send me some STEEM/SBD or other crypto coins.


Simply, enter your Steem.Chat username, password, add channels and then use the Get your latest posts! button to get your latest posts. Select a post and you’ll see the link of it in the center field. Then, press the Send to Steem.Chat! button. Your post will be sent to the channels automatically: Post Poster v1.3 - 2

You don’t necessarily need to send a link. You can also add your personalized message to the Link field and it will send your post along with the message.


You can download this release at GitHub here.

After downloading it, extract the ZIP file and launch the file named SteemChatPostPoster.exe.

The source code can be found here.

The software was developed in Visual Basic .NET using Visual Studio 2017. It depends on the Rocket.Chat.Net library to interact with the Rocket.Chat-based platform.


Maybe add more chats if they become available? 😂

I performed several commits today, making some existing code changes as well as writing new code to this: Post Poster v1.3 - 3


Video – Unboxing the Syntech USB-C Female to USB Adapter

Video – Unboxing the Syntech USB-C Female to USB Adapter

Hi everyone,

As I mentioned a few posts earlier, I’ll be sharing new videos from my YouTube channel with all of you.

Today, I’m sharing this unboxing video of the Syntech USB-C Female to USB Adapter, which allows us to use our USB-C cables with our standard USB ports in our PC.

Watch the video below:

Purchase this item on Amazon here.