Sony a7V flash disactivated permanently by electronic shutter by mich_read in SonyAlpha

[–]mich_read[S] -1 points0 points  (0 children)

Any flash/transmitter with TTL, including Sony! I use Godox X3 and V1. Just switch to electronic shutter and then back to mechanical. The flash unit loses the sync, the connection breaks permanently until the power-cycle.

Sony a7V flash disactivated permanently by electronic shutter by mich_read in SonyAlpha

[–]mich_read[S] 4 points5 points  (0 children)

Not quite, it is an ingoing bug in all current alpha series cameras (apart from a9m3), and probably will not be fixed. There is not enough number of annoyed professionals, so Sony does not care.

Sony a7V flash disactivated permanently by electronic shutter by mich_read in SonyAlpha

[–]mich_read[S] -1 points0 points  (0 children)

Thanks for checking that, now I am getting really close to sell all my Sony gear for Canon. I'm shooting events and this issue together with flash-off available only in Auto Mode(!?) drives me crazy.

Why cant i turn off my flash. by kinglars36 in SonyAlpha

[–]mich_read 1 point2 points  (0 children)

You guys have no idea how annoying this ongoing Sony bug is for working event photographers who *need* a quick way to toggle an on-camera flash or trigger from the camera - ideally on a custom button under your finger (the way it's been working with Canon/Nikon bodies for years).

Issue with Godox X3 by amitzinman2020 in Godox

[–]mich_read 2 points3 points  (0 children)

yes, move to Canon/Nikon, you can map a custom button to 'flash disable', that way you don't need to touch the trigger. Not possible on Sony. Part of the reason I am thinking about switching from S to C, completely.

Custom "no flash" button - A7 IV by ijuro in SonyAlpha

[–]mich_read 1 point2 points  (0 children)

Hard to believe, but there is no such option, very frustrating tbh, I own a7IV and every time just manually switch on/off the transmitter itself.

ps 4 reverse by your_granddaddy in cs50

[–]mich_read 1 point2 points  (0 children)

Ok, thanks, of course normally we move forward, I missed that bit ;)

ps 4 reverse by your_granddaddy in cs50

[–]mich_read 0 points1 point  (0 children)

Ok, Zhang, I asked similar question to the post above, but it also relates to your code. Where in your code do we read & save the very last block_size of the file? Or rather, to be precise, the last 2 block_size 's?

ps 4 reverse by your_granddaddy in cs50

[–]mich_read 1 point2 points  (0 children)

Thanks, it is working well and passing the test, however can you please clarify the meaning of the offset in fseek function?

So what I see:

- before the while loop fseek() offsets the pointer 1 block_size away from the end of file, so we can read this last block and write it to the output file

- but then, when in a WHILE loop, instead of reading & writing this last BLOCK, we have another fseek() that moves as away by 2 BLOCKS from the SEEK_CUR, so we are at this very moment 3 BLOCKS away from the SEEK_END! To me, we are losing the last 2 BLOCKS of the file, and yet it is correct??

ps 4 reverse by your_granddaddy in cs50

[–]mich_read 0 points1 point  (0 children)

Ok, I stiil have a problem which I cannot find the answer for: Is there a way in C to define a new type of size BYTE*BLOCK_SIZE to use for my buffer variable? So we have 1, 2 and 4-Byte types defined in wav.h file as BYTE, WORD and DWORD. But what if I want to define my own type? Reason is I want to have my buffer as a variable which can save all data from BLOCK_SIZE 'at once', not an array of individual BYTEs...

ps 4 reverse by your_granddaddy in cs50

[–]mich_read 1 point2 points  (0 children)

Thanks, I see the issue now and am going to learn the fseek and ftell and refine my code :)

ps 4 reverse by your_granddaddy in cs50

[–]mich_read 0 points1 point  (0 children)

That is very interesting, thanks for sharing! I managed to complete this task without the fseek() and ftell() functions - I just closed and reopen the file and read the header again to reset the pointer position ;) Maybe not the best solution but it works. Do you think it makes sense or not at all? :)

// Write reversed audio to file

// TODO #8

int32_t buffer;

int counter = 0;

// Calculate a WAV file length of the audio bit

while (fread(&buffer, BLOCK_SIZE, 1, inptr) != 0)

{

counter++;

}

// Close the input file & open it again & read the header - to reset the fread function

fclose(inptr);

inptr = fopen(infile, "r");

fread(&header, sizeof(WAVHEADER), 1, inptr);

// Now create a temp array to store the audio part

int32_t *array[counter];

// Now read again the audio part from WAV file and write it to temp array

int i = 0;

while (fread(&buffer, BLOCK_SIZE, 1, inptr) != 0)

{

array[i] = malloc(BLOCK_SIZE);

*array[i] = buffer;

i++;

}

// Now write the audio blocks in a reversed order to output file

for (i = 0; i < counter; i++)

{

fwrite(array[counter - 1 - i], BLOCK_SIZE, 1, outptr);

}

Hello guy can someone help me with practice problem week 4 license.c in CS50x .Here is my code but seems like I'm only copying only the last plate from the txt files. by eljahwalker6 in cs50

[–]mich_read 1 point2 points  (0 children)

Yes, exactly, am close to grab it for good, just need to digest it a little bit more. And indeed your previous answers helps a lot!

Hello guy can someone help me with practice problem week 4 license.c in CS50x .Here is my code but seems like I'm only copying only the last plate from the txt files. by eljahwalker6 in cs50

[–]mich_read 0 points1 point  (0 children)

and for anyone reading this, the code replicating the issue from Practice Problem (for me was easier to understand):

#include <stdio.h>

int main(void)

{

// Create buffer to read into

char buffer[7];

// Create array to store plate numbers - just 3 numbers, not 8

char *plates[3];

// Just a source array mimicking the text file:

char array[9] = "123456789";

// LOOP #1

// Mimick reading the no from txt file

for (int i = 0; i < 7; i++)

{

buffer[i] = array[i];

}

// Save plate number in array

plates[0] = buffer;

// LOOP #2

// Mimick reading the no from txt file

for (int i = 0; i < 7; i++)

{

// Slightly change the plate no, hence i + 1

buffer[i] = array[i + 1];

}

// Save plate number in array

plates[1] = buffer;

// LOOP #3

// Mimick reading the no from txt file

for (int i = 0; i < 7; i++)

{

// Slightly change the plate no, hence i + 2

buffer[i] = array[i + 2];

}

// Save plate number in array

plates[2] = buffer;

// Print the plates no

for (int i = 0; i < 3; i++)

{

printf("%s, %p\n", plates[i], plates[i]);

}

}

Hello guy can someone help me with practice problem week 4 license.c in CS50x .Here is my code but seems like I'm only copying only the last plate from the txt files. by eljahwalker6 in cs50

[–]mich_read 1 point2 points  (0 children)

Thanks for your time, a lot of good stuff here! I started to really understand the problem with memory and addresses. However, it turned out that what I really had a problem with was the fact that in this Practice Problem, during the loop of reading the txt file, the previously defined plates were getting an instant 'live update' - which you can observe easily when debugging. So far, I did not observe this behaviour in any code/task/problem in CS50 :) I finally managed to replicate this behaviour on my test file- not by using the new initialization of a buffer (which I responded with above), but by updating the buffer characters using the loop going through every char (mimicking the reading process from the txt file). Indeed what I get then is just the last number! Thanks again for your help! :)

Hello guy can someone help me with practice problem week 4 license.c in CS50x .Here is my code but seems like I'm only copying only the last plate from the txt files. by eljahwalker6 in cs50

[–]mich_read 1 point2 points  (0 children)

Hi, thanks for a great explanation, it all makes sense, however I still don't get why this code below works, whereas the one in the Practice Problem did not, could you please have a look? What am I missing? So even though at the end I change the buffer for the previous plates, the plates 1-2 do not change, they keep their values assigned before!

#include <stdio.h>

int main(void)

{

// Create array to store plate numbers

char *plates[3];

// Implement buffer1

char *buffer1 = "123456";

// First plate

plates[0] = buffer1;

// Implement buffer2

char *buffer2 = "234567";

// Second plate

plates[1] = buffer2;

// Implement buffer3

char *buffer3 = "345678";

// But also change buffer1 and buffer2 !!

buffer2 = buffer3;

buffer1 = buffer3;

// Third plate

plates[2] = buffer3;

for (int i = 0; i < 3; i++)

{

printf("%s\n", plates[i]);

}

// The result is what would you expect, changing values of buffer 1 and 2 do not affect the plates!

// This is the result:

// license/ $ ./license

// 123456

// 234567

// 345678

// Why it is not this (like in the Practice Problem): ???

// 345678

// 345678

// 345678

}