Ellington, Justice. A Richmond County jury found Andre Jackson guilty of the armed robbery of Joseph Williams. A different Richmond County jury found Jackson guilty of felony murder predicated on the armed robbery of L. V. Wilson and of the murder of Jquanda Johnson by stabbing her with a knife.[1] On appeal, Jackson contends that, in the Williams robbery trial, the trial court abused its discretion in denying his motion in limine to exclude an out-of-court statement made by Johnson in the days between the robbery and her death. In addition, Jackson contends that, in the murder trial, the trial court abused its discretion in denying his motion to sever the offenses charged for the Wilson murder from the offenses charged for the Johnson murder. For the reasons explained below, we affirm. The evidence in the robbery trial showed the following. In June 2010, Jackson and Johnson were in a romantic relationship. Williams, who was known as “Little Joe,” agreed to repair the transmission of Johnson’s car for $300; she paid him $100 in advance. After Williams removed the transmission, he developed cardiovascular problems that required a stent; he was instructed not to lift anything heavy. On June 20, Johnson went to Williams’s house to ask about the car, and he told her he would not be able to put the car back together. Williams asked her to leave and called the police when she refused. Williams testified that, the next day, Jackson knocked on his door and asked for “Joe.” Williams answered the door and told Jackson, whom he did not know, that he was not able to repair Johnson’s car at that time. As Williams attempted to close the door, Jackson kicked the door, splitting the wood around the strike plate; forced his way inside; “flash[ed]” a handgun; told Williams to get on the floor; put the gun to Williams’s head; and demanded his money. Williams’s mother, Mildred Burns, entered the room, and Jackson, still brandishing the gun, told her, “ I know you [have] some money; give me $150 to let [Williams] live.” Jackson took a bag containing Williams’s money and identification. Williams asked for his identification back, and Jackson returned it. Then Jackson ran outside and drove away. Williams saw a woman in the car. He testified that he got a good look at Jackson’s face during the robbery, and he identified Jackson as the robber. Burns also testified about the robbery and about Johnson’s previous visit to ask about her car. Burns identified Jackson in court, stating that she had gotten a good look at the man who broke into their home and took Williams’s money at gunpoint and was “sure” that Jackson was that man. Porchia Littleton testified that she and Johnson had been close friends since childhood. In May 2010, Johnson’s car was not running and “Joe” was going to repair it. Littleton went with Johnson once to ask Williams about the car. Johnson and Jackson visited Littleton’s home on June 21. Shortly after they left, police officers arrived and wanted to search the house. The officers refused to say who they were looking for, so Littleton did not admit them. Later that week, Johnson and Jackson visited again. During that visit, while Jackson was in another room, Littleton told Johnson about the police visit, and Johnson said she probably knew why the police went to the house: because she and Jackson “went over to Joe’s house to talk about the car” and to “shake Joe up” and “scare him,” and “[Jackson] stuck [Williams] up. . . . [Johnson] said she was in the car, and the next thing she knew, she looked up and [Jackson] had a gun to [Williams].” Littleton testified that Johnson “was freaked out a little bit when she explained it” to Littleton, and whispered it so Jackson could not hear, and that robbing Williams “was not what the plan was.” Littleton testified that, before Johnson’s death, she had seen Jackson with a black handgun “pretty often.” Littleton identified Jackson at trial. In the murder trial, the evidence showed the following. Several witnesses testified that, in June 2010, Jackson was a drug dealer. Rodney Tucker testified that, on June 25, he traveled to Augusta to visit Nekea Johnson, Johnson’s younger sister. That day, Tucker gave Jackson some cocaine to sell over the weekend, and Jackson agreed to pay him on Monday, June 28. On the morning of June 28, Tucker and Nekea drove to Johnson’s residence to meet with Jackson and get the money. Tucker testified that, when he got out of the car, Jackson abruptly pulled a gun on him and demanded, “give me my money.” Tucker argued that he did not owe Jackson money – rather, Jackson owed him money. From the look in Jackson’s eyes, Tucker believed that Jackson was going to shoot him. Just then, Tucker testified, Johnson put her arm around Tucker’s shoulder. He testified, “I believe that’s when she saved my life.” Nekea also testified that Jackson pulled a gun on Tucker as soon as they arrived. Nekea testified that Tucker pulled money from his pocket and dropped it, saying, “you can have the money, just don’t kill me.” Nekea testified that her sister ran toward Jackson, “trying to stop it,” and “he kicked her, and she fell back.” Tucker and Nekea fled and went to the sheriffs office and reported the robbery. Tucker gave his brother’s name, Chris Allen Tucker, rather than his own when reporting the incident to the sheriffs office. Marcus Tyler testified that he and Jackson sometimes pooled their money and bought drugs from Wilson to resell. Tyler testified that he and Jackson bought drugs to resell from Wilson on June 23 or 24. Tyler testified that the drugs were not of acceptable quality, and Jackson was going to get his and Tyler’s money back. Jackson called Tyler on June 28 and asked him to meet him at Wilson’s house. When Tyler arrived, he walked over to a shed where Wilson conducted drug business, and he found Jackson standing over Wilson and hitting him in the head. Tyler testified that he asked what was going on. Jackson turned around, pointed a gun at Tyler, and asked him, “are you with me or against me?” And then Jackson cut Wilson’s throat with a knife. Tyler fled. At approximately noon on June 28, a neighbor found Wilson on her front porch, with his throat slashed, bleeding and unconscious. She called 911. An autopsy showed that Wilson died from multiple sharp-force injuries that severed the major arteries in his neck. Tyler testified that, later on the day that Jackson cut Wilson’s throat, Tyler answered a cell phone on Jackson’s porch. Tyler testified that it was Johnson calling, and she said, “you['re] go[ing] to jail; you robbed my brother-in-law.” After Tyler informed Johnson that she was speaking to him, not to Jackson, she told him that the police were coming. That evening or the next, Jackson asked Tyler to drop him off at Johnson’s place. Jackson said he was going to “fix that b**ch.” Tyler testified that Jackson returned home about an hour later, took a shower, and then went out to the backyard and burned some clothes. Reginald Hudson, Johnson’s estranged husband, testified that, on the morning of June 28, Johnson told him and Nekea that Jackson had robbed Nekea’s boyfriend the previous evening. Hudson testified that Johnson felt like she needed protection, because Jackson had a key to her apartment, and that Johnson called someone she knew who had an “assault rifle” and tried to get that gun. Nekea testified that, on the evening of June 28, Johnson went to Nekea’s house and told her that she did not have “anything to do with” the robbery of Tucker and that she was going to “get” Jackson. Mariah Federick testified that she often drove Jackson and Tyler around for drug sales. On June 29, Federick heard Jackson arguing with Johnson on a phone call, after which he said that he was going to “have to kill this b**ch.” Littleton testified that Johnson told her about witnessing the robbery of Tucker on the day it happened, June 28, and Johnson said that she was worried about Jackson, who she thought was “on something” and acting “crazy.” Littleton testified that Jackson sent Johnson threatening messages that day, saying that he knew where she was and calling her a “sitting duck.” In the days following, Littleton called and texted Johnson repeatedly to check on her, but Johnson did not answer. On the morning of June 30, Littleton drove by Johnson’s residence and saw Jackson walking in the yard and circling the building. On July 2, after several days without Johnson answering her phone, Nekea and her mother, Patrice Knox, drove to Johnson’s apartment and knocked on the door without response. Knox called the rental office and asked that they send someone over to open the door. The police came, found no sign of forced entry, entered the apartment, and found Johnson lying dead in a bedroom. The broken- off blade of a knife was embedded in her chest. An autopsy performed on July 3 indicated that Johnson died from multiple stab wounds to her chest, face, left arm, and left shoulder that penetrated her heart and lungs and caused massive bleeding. Johnson died, according to the medical examiner, a least “a couple of days” before the autopsy, but the time of death could not be further specified. Crime scene investigators found a belt with an unusual “metal skull” buckle lying in a pool of blood beside Johnson’s body. No blood was on top of the buckle, indicating that the belt was dropped there after the pool of blood had formed. Nekea testified that she had previously seen Jackson wearing that belt buckle. 1. Jackson contends that the trial court abused its discretion in denying his motion in limine during the robbery trial to exclude testimony by Littlejohn that Johnson told her that she and Jackson went to Williams’s house to talk about her car and “shake [Williams] up” and “[Jackson] stuck [Williams] up.” The State characterized Johnson’s out-of-court statement as implicating herself in the armed robbery and therefore as a “statement against interest” by an unavailable declarant under OCGA § 24-8-804 (b) (3) and argued that it was sufficiently corroborated to be admissible under that Code provision. Assuming without deciding that the trial court abused its discretion in admitting Johnson’s out-of-court statement under OCGA § 24-8-804 (b) (3), any such error was harmless. “[T]he erroneous admission of hearsay is harmless where substantial, cumulative, legally admissible evidence of the same fact is introduced.” Anglin v. State, 302 Ga. 333, 336 (2) (806 SE2d 573) (2017). See also Lopez v. State, 311 Ga. 269, 276 (2) (b) (857 SE2d 467) (2021) (same). Because Johnson’s statement was cumulative of other legally admissible and substantial evidence that Jackson robbed Williams, principally Williams’s and Burns’s eyewitness testimony and definite in-court identifications, any error in the trial court’s ruling was harmless. See Lopez, 311 Ga. at 276 (2) (b); Anglin, 302 Ga. at 335-336 (2). 2. Jackson contends that the trial court abused its discretion in denying his motion in the murder trial to sever the offenses in the stabbing death of Wilson from the offenses in the stabbing death of Johnson, which, he argues, were joined solely because they were of a similar nature and were all committed in the last week of June 2010.[2] “Where offenses are joined in a single indictment, a defendant has a right to severance where the offenses are joined solely on the ground that they are of the same or similar character because of the great risk of prejudice from a joint disposition of unrelated charges.” Moon v. State, 312 Ga. 31, 59 (5) (860 SE2d 519) (2021) (citation and punctuation omitted). If severance is not mandatory, it is nevertheless incumbent upon the trial court to determine whether severance was necessary to achieve a fair determination of the defendant’s guilt or innocence as to each offense. To make that determination, the court should consider whether in view of the number of offenses charged and the complexity of the evidence to be offered, the trier of fact will be able to distinguish the evidence and apply the law intelligently as to each offense. Id. (citation and punctuation omitted). “Severance is generally not warranted where the crimes charged occurred over the same period of time and stem from a course of continuing conduct.” Carson v. State, 308 Ga. 761, 765 (2) (a) (843 SE2d 421) (2020) (citation omitted). Where joinder “is based upon the same conduct or on a series of acts connected together or constituting parts of a single scheme or plan, severance lies within the sound discretion of the trial judge since the facts in each case are likely to be unique.” Id. at 764-765 (2) (a) (citation omitted). In this case, the evidence authorized the trial court to hold that, beginning on the morning of June 28 and continuing for another few days, Jackson engaged in a continuing course of criminal violence relating to his involvement in the drug trade: he robbed Tucker, Johnson’s sister’s boyfriend, who had supplied Jackson with drugs two days earlier, and he beat Wilson, who had recently supplied Jackson with poor quality drugs, and slashed his throat. Jackson also threatened Johnson, who witnessed the robbery of Tucker and even tried to intervene, and told Johnson she was “a sitting duck.” Then he killed her by stabbing her repeatedly. The trial court did not abuse its discretion in denying Jackson’s motion to sever the offenses for trial. See Moon, 312 Ga. at 59-60 (5) (Count for attempting to obtain a firearm by a convicted felon and murder counts related to shooting death of victims were based on a series of connected acts and occurred closely in time with each other, and the trial court did not abuse its discretion in denying the defendant’s motion to sever the offenses for trial.); Carson, 308 Ga. at 765-766 (2) (a) (The trial court did not abuse its discretion in denying the defendant’s motion to sever, where the robbery and battery of one victim and the murder of a second victim occurred only a few blocks apart and within a short period of time, and the defendant’s arrest for the robbery led to DNA testing of his clothes and the identification of the defendant as the second victim’s assailant.); Doleman v. State, 304 Ga. 740, 744-745 (3) (822 SE2d 223) (2018) (The trial court did not abuse its discretion in denying the defendant’s motion to sever offenses for trial where the offenses arose from a crime spree consisting of an eight-week period during which the defendant and his co-defendants committed a series of robberies and assaults using the same weapons and stolen vehicles from previous offenses.); Stinski v. State, 286 Ga. 839, 844 (15) (691 SE2d 854) (2010) (The trial court did not abuse its discretion in denying the defendant’s motion to sever offenses for trial arising out of a crime spree committed on a single night in the same neighborhood.). Judgment affirmed. All the Justices concur.