home.social

#telephone — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #telephone, aggregated by home.social.

  1. 🧵destinés aux 15-25 ans : #livre Pourquoi notre #cerveau adore scroller ? du Dr en neurosciences #ThibaudDumas

    #France : moyenne du #temps passé sur #TikTok -> 1h23 /jour = 80 mètres de contenu déroulé par le pouce.

    + temps sur snap insta x fb yt etc.

    #socialmedia #ia #addiction #psy #business #economie #year2026 #education #parents #enfants #telephone #sante #teameduc #science #emotion

  2. 🧵destinés aux 15-25 ans : #livre Pourquoi notre #cerveau adore scroller ? du Dr en neurosciences #ThibaudDumas

    #France : moyenne du #temps passé sur #TikTok -> 1h23 /jour = 80 mètres de contenu déroulé par le pouce.

    + temps sur snap insta x fb yt etc.

    #socialmedia #ia #addiction #psy #business #economie #year2026 #education #parents #enfants #telephone #sante #teameduc #science #emotion

  3. 🧵destinés aux 15-25 ans : #livre Pourquoi notre #cerveau adore scroller ? du Dr en neurosciences #ThibaudDumas

    #France : moyenne du #temps passé sur #TikTok -> 1h23 /jour = 80 mètres de contenu déroulé par le pouce.

    + temps sur snap insta x fb yt etc.

    #socialmedia #ia #addiction #psy #business #economie #year2026 #education #parents #enfants #telephone #sante #teameduc #science #emotion

  4. 🧵destinés aux 15-25 ans : #livre Pourquoi notre #cerveau adore scroller ? du Dr en neurosciences #ThibaudDumas

    #France : moyenne du #temps passé sur #TikTok -> 1h23 /jour = 80 mètres de contenu déroulé par le pouce.

    + temps sur snap insta x fb yt etc.

    #socialmedia #ia #addiction #psy #business #economie #year2026 #education #parents #enfants #telephone #sante #teameduc #science #emotion

  5. Je suis aussi l'heureuse maman de @luppano. Téléphone entièrement démonté et séché dans l'heure. Et il marche ! Et le riz basmati (bio ça va de soit) ça va bien apparemment pour absorber l'humidité
    #téléphone #Fairphone5

  6. J'ai longtemps eu des téléphone étanches, sans en avoir vraiment besoin, je ne nage pas avec. Depuis novembre je suis l'heureuse propriétaire d'un Fairphone. Pas étanche, mais réparable. Hier soir il est tombé dans une piscine.
    #téléphone #Fairphone5 #plouf #oups

  7. Building a Local AI Information-Gathering Phone Line

    https://youtu.be/Yodq7gG_F3I

    Modern voice agents are often presented as cloud services: a caller speaks, a remote platform transcribes the audio, a hosted language model generates a response, and another service synthesizes the reply.

    For this project, I wanted to explore a different approach.

    The goal was to build a locally controlled conversational phone-line prototype capable of gathering structured information from a caller while maintaining context throughout the interaction.

    The system uses a locally hosted Gemma 4 model for dialogue, local speech recognition for transcription, and Kokoro 82M for text-to-speech. A custom Python application coordinates the entire interaction and presents it through a phone-style interface.

    The result is an automated intake agent named Eva.

    The Test Scenario

    For the demonstration, Eva was configured to behave like a corporate information-gathering agent.

    The caller began with a simple greeting. Eva then guided the conversation through a sequence of intake questions:

    • Full name
    • Company or organization
    • Callback number
    • Email address
    • Case, ticket, order, or reference number
    • General reason for the call
    • Product or service involved
    • Date and approximate time of the reported issue

    The caller did not have to complete a rigid form or choose numbered menu options. Instead, the information was collected through natural conversation.

    A portion of the interaction looked like this:

    Eva: Hello. Thank you for contacting us. My name is Eva. To begin, may I please have your full name?
    Caller: John Michael Smith.
    Eva: Thank you, John Michael Smith. May I also have the company or organization you are calling from?

    As the conversation continued, Eva retained the previously supplied information and advanced to the next relevant question.

    When the caller explained that they were upset about new automated systems, Eva did not restart the intake process or lose track of the conversation. She asked a follow-up question to determine which product or service was involved.

    That contextual continuity is the most important part of the demonstration.

    The Core Architecture

    The system is built as a real-time conversational pipeline:

     Microphone input        ↓  Speech-to-text        ↓  Conversation controller        ↓  Gemma 4 through LM Studio        ↓  Kokoro 82M text-to-speech        ↓  Audio playback  

    Each component has a distinct responsibility.

    The speech-to-text layer converts the caller’s voice into text. The conversation controller maintains the active call state and sends the transcript to the language model. Gemma 4 evaluates the current message alongside the prior conversation and produces the next response. Kokoro 82M then converts that response into spoken audio.

    The Python application ties these systems together.

    It manages:

    • Microphone capture
    • Voice activity detection
    • Turn-taking
    • Conversation history
    • System prompts
    • Model requests
    • Voice generation
    • Audio playback
    • Call state
    • Session termination
    • Persistent memory
    • Transcript logging

    The language model is only one component of the system. The surrounding orchestration is what makes the experience feel like a coherent call rather than a sequence of unrelated AI requests.

    Why Conversation History Matters

    A language model does not automatically remember everything that happened earlier in a call.

    The application must preserve the conversation and provide the relevant history with each new request.

    Without that context, an information-gathering agent might repeatedly ask for the caller’s name, forget which fields were already completed, or ask questions in an inconsistent order.

    In this prototype, the conversation controller tracks both sides of the exchange:

     System instructions  Caller message  Agent response  Caller message  Agent response  

    That history allows the model to understand which information has already been collected and what still needs to be asked.

    It also enables more natural follow-up behavior.

    For example, when the caller says:

    “I am upset about the new automated systems.”

    Eva can interpret that statement as the reason for the call and ask which product is affected, rather than simply continuing through an unrelated checklist.

    Structured Behavior Without a Traditional Form

    One of the interesting aspects of this design is that the model can follow a structured intake objective without forcing the caller through a conventional form.

    The system prompt defines the agent’s responsibilities, tone, required information, and conversational boundaries.

    The agent can then gather the same fields a form would collect while allowing the caller to speak naturally.

    This creates a hybrid between two familiar systems:

     Rigid automated phone menu              +  Human-style conversational intake  

    The structured requirements remain in place, but the interface becomes conversational.

    That can be useful in situations where callers may not know how their problem should be categorized before they begin speaking.

    Local Inference and Control

    The language model is served locally through LM Studio rather than being accessed through a commercial cloud API.

    This provides direct control over:

    • Model selection
    • System prompts
    • Conversation history
    • Context length
    • Generation settings
    • Data retention
    • Personality configuration
    • Memory behavior

    The text-to-speech component is also hosted locally.

    That means the central conversation does not depend on sending every transcript and model response to an external AI provider.

    Local inference introduces its own technical requirements, including GPU resources, model management, latency optimization, and service coordination. However, it also gives the developer considerably more control over the complete conversational stack.

    Voice Activity Detection

    The caller does not need to press a push-to-talk button during normal operation.

    The application monitors the microphone and determines when speech begins and ends.

    This process is known as voice activity detection.

    The system moves through several internal states:

     Listening     ↓  Speech detected     ↓  Recording     ↓  Silence detected     ↓  Transcribing     ↓  Thinking     ↓  Speaking     ↓  Listening  

    This state-based design is important because the microphone, speech model, language model, and voice model all operate at different speeds.

    The application must know which component currently owns the interaction.

    It must also prevent the microphone from transcribing the AI’s own voice as new caller input.

    Persistent Memory

    The application also includes persistent conversational memory.

    This allows the agent to retain selected context between separate sessions rather than beginning every call as a completely blank system.

    The memory architecture separates several types of information:

    • Current-call conversation
    • Recent message history
    • Summaries of earlier calls
    • Long-term memories
    • Archived transcripts

    This distinction matters because sending every previous conversation back into the model would eventually become inefficient.

    Instead, recent dialogue can remain verbatim while older interactions are summarized. Important details can be stored separately and included only when relevant.

    The application, not the language model, owns this memory.

    That is an important architectural principle.

    The model generates language, but the surrounding software determines what is saved, retrieved, discarded, or presented as context.

    The Interface

    The application was designed to resemble a live phone call rather than a conventional chatbot window.

    The interface includes:

    • Start and hang-up controls
    • Call timer
    • Current system state
    • Editable system prompt
    • Agent profiles
    • Live transcription
    • Model responses
    • Diagnostic timing information
    • Persistent memory controls
    • A reactive circular audio visualization

    The visualizer changes according to the active state.

    The caller’s speech is represented in yellow. Model processing uses blue and purple states. The generated AI voice is shown in green.

    This is primarily an aesthetic feature, but it also provides immediate feedback about what the system is doing.

    A user can see whether the application is listening, transcribing, waiting for the model, generating speech, or playing audio.

    What This Demonstration Proves

    This experiment demonstrates that a locally hosted language model can operate as the conversational core of an automated information-gathering line.

    More specifically, it shows that the system can:

    • Listen for natural speech
    • Convert speech into text
    • Preserve conversational context
    • Collect information in sequence
    • Ask relevant follow-up questions
    • Produce spoken responses
    • Maintain a consistent agent identity
    • Store and recall previous conversational information
    • Operate through a custom local interface

    The prototype is not intended to replace a production call center in its current form.

    A production deployment would require additional work in areas such as authentication, encryption, regulatory compliance, consent, auditing, data validation, failure recovery, telephony integration, and human escalation.

    But the central conversational mechanism is functional.

    The Larger Possibility

    The broader significance of this project is not limited to corporate intake.

    The same architecture could support many types of locally controlled voice agents:

    • Technical support intake
    • Appointment pre-screening
    • Internal help desks
    • Interactive training systems
    • Voice-based surveys
    • Game characters
    • Accessibility tools
    • Personal assistants
    • Research interviews
    • Educational tutors

    The underlying pattern remains the same:

     Listen  Understand  Maintain context  Respond  Remember  

    What changes is the system prompt, the information being collected, the voice, and the surrounding workflow.

    Final Thoughts

    The project began as a simple idea: speak into a microphone, send the transcript to a local model, and play the response through a local voice engine.

    Once persistent memory, automatic voice detection, agent profiles, structured prompts, call archives, and state management were added, it became something more substantial.

    It became a locally controlled conversational-agent platform.

    The most important lesson from the project is that the model itself is not the complete system.

    A useful voice agent emerges from the coordination of perception, context, reasoning, memory, expression, and interface design.

    Gemma 4 provides the conversational intelligence.

    Kokoro 82M provides the voice.

    The Python application provides the structure that allows them to behave like a single coherent agent.

    -Me 7-15-2026

    #agent #ai #artificialIntelligence #assistant #call #llm #operator #phone #phonecall #technology #telephone
  8. La guerre a pris fin (Nasser Rabbah)

    Illustration       La guerre a pris fin La guerre a pris fin J'ai examiné mon corps ma tête, mes doigts et mes bras Rien ne manquait comme si tout avait regagné sa place sur-le-champ J'ai regardé le ciel C'est quoi, là ? De la fumée ou des nuages ? Les oiseaux me manquent pas les avions La guerre a pris fin Le balai a enlevé la poussière, les bris de verre, les clous de la porte cassée, les cailloux réduits en gravats, les éclats des verres de thé, le cadre de […]

    arbrealettres.wordpress.com/20

  9. Finland’s last analogue landline phones go silent after 150 years.

    Finland’s last landline call has been made as the Nordic country becomes the latest to retire copper-wire phones in favour of fibre.

    Estonia, the Netherlands, Norway and Spain have already made the jump as countries across the world roll out fibre optic cable that can handle both internet services and voice calls.

    mediafaro.org/article/20260630

    #Finland #Landline #Telephone #FibreOptic #POTS #Analogue

  10. Un support en acrylique transparent cette fois, pour ce petit cube compagnon dérivé d'une de mes pyrogravures originales ! 🎮✨

    S'accroche à un téléphone aussi bien qu'à une fermeture éclair… et plus encore.

    fumiferus.etsy.com/listing/452

    www.fumiferus.com

    #pixelart #jeuvideo #gaming #geek #breloque #telephone #acrylique #pyrogravure #creationoriginale #etsy #smallbusiness #woodart #fumiferus

  11. Still YUkon

    My 212 number is YUkon 2. The exchange was retired as a spoken name sometime in the 1960s, when the phone company finished converting the system from alphanumeric to pure digits, and the YU that used to stand at the front of every Upper West Side number became a 9 and an 8 on a rotary dial. The number remained the same. What changed was the meaning. YUkon 2-8888 was an address. 982-8888 is a string of digits.

    I have been a 212 snob since 1988, which is to say since graduate school at Columbia when a 212 number was something you earned by moving into Manhattan and something you lost when you moved out. The area code was geography enforced by the phone company. My first 212 was 529-3939 in Alphabet City, and I lost it when we moved, the way everyone lost their number in the years before portability, and the number went back to Bell Atlantic and reappeared years later at the switchboard of a Manhattan hotelier. I have the receipts. I have the memory. The 3939 was mine for the years it was mine and then it was someone else’s, and this was the deal.

    Local Number Portability for wireless went into effect in 2003, a change that felt at the time like civic liberation. The FCC had decided that a phone number belonged to the person rather than the carrier, first for landlines in the 1990s and then for wireless in 2003, which meant you could take your number with you when you changed providers. By 2011 it was possible to buy a 212 number from a reseller like 212AreaCode.com and have it ported to Google Voice within twenty-four hours. I did this. I am on my eigth 212 number now and I am not apologizing for any of them. The 212 I carry today lives inside a Google Voice account that rings a phone that might be anywhere. The area code no longer tells the truth about where I sit.

    The question is whether the 212 still means anything after the geography has been severed, and the answer is that it means a different thing than it used to. A 212 in 1988 meant an address on a switchboard in Manhattan. The 212 today means a claim on a city that the claimant may or may not live in. My 212 is a claim. A twenty-five-year-old in Topeka who bought a 212 from an eBay seller last week has also made a claim. We are not making the same claim, and the difference matters, but both claims are legitimate under the rules the FCC wrote.

    What the 212 still signals, for those who can read the signal, is a citizen of the old city. A 212 in 2026 is an archive badge. It documents three things: knowledge of what 212 used to mean, enough care to obtain or preserve the number, and some relationship with the old city in memory or aspiration. Manhattan residence is not one of them. This is the same kind of signal as knowing which subway line runs express on weekends, or which deli closed in 2004, or when the 9 train stopped running. It is urban memory encoded in a data field. The data field still exists even after the referent has moved.

    The alphanumeric exchanges were the original form of this signal. BUtterfield 8 in John O’Hara’s novel meant the Upper East Side. Pennsylvania 6-5000 in the Glenn Miller song was the Hotel Pennsylvania on Seventh Avenue, a number that answered for eighty years before the hotel was demolished. YUkon was an Upper West Side exchange. SCHuyler was another. MUrray Hill sat east of Fifth in the 30s. TRafalgar covered another slice of the West Side. A person reading a phone number in 1958 knew roughly which neighborhood the phone sat in. The area code was not used for local dialing because the exchange name already told you the neighborhood. When the area code system was built out in the 1950s and 1960s, 212 was the entire city. When 718 was introduced in 1984 for the outer boroughs, 212 gradually narrowed to Manhattan. The 212 became the Manhattan stamp at the exact moment the exchange names were fading out. One signal system replaced another.

    The replacement was cleaner but carried less information. YUkon 2 told you a neighborhood. Manhattan 212 told you a borough. Portable 212 tells you nothing about location. Each step was a loss of resolution, and each step happened for good operational reasons, and the cumulative effect is a phone number that now communicates almost nothing about where the person answering it is standing. The number retains symbolic weight because a few generations of New Yorkers still carry the memory of what the digits used to mean. The weight is inherited. Inheritance is not proof of residence.

    The rest of the phone number system has decayed around the area code question. Caller ID is no longer reliable because spoofing tools let robocallers display any number they want. The consumer answer to this has been to stop answering the phone. Unknown numbers go to voicemail. Known numbers from a business go to voicemail. Calls from numbers the phone does not recognize are presumed fraudulent. The phone number as a communication channel has been gutted by its own abuse, and the younger generation has responded by moving to text, to app messages, to Slack channels and Signal groups and WhatsApp threads, to every channel except the voice call. The phone number persists as a login credential and as a verification token. Its original function as a way to speak with another person has become residual.

    The collapse makes the 212 a more interesting sign than it was in 1988. The 212 is no longer competitive with other identity markers because the whole identity-marker system built around phone numbers has collapsed. What remains of the phone number is the symbolic residue, and the 212 carries more symbolic residue than any other area code in the country. It retains the weight of old New York, old Manhattan, the city of pay phones and directories and the operator who connected your call. A 212 in 2026 is a period piece worn on purpose. The person wearing it is saying something about what they remember or what they want to belong to.

    Nothing in this argument defends snobbery. Snobbery requires that the marker confer real status, and a 212 no longer confers real status because the 646 holder and the 917 holder and the 332 holder and the 929 holder and the 347 holder all live in the same city you do. The snob position requires a hierarchy the portability rules dismantled. What the 212 confers now is continuity. The holder of a 212 is continuing a line. That holder may have inherited the number from a parent who moved into the city in 1971, or bought the number from a reseller last Tuesday, or held the number through six moves across three boroughs because portability made it possible. The line carries the meaning, and the resolution of the signal is a footnote.

    My current 212 number ends in 8888. I bought it from David Day in 2013 after searching for a number with the right weight to the ear. Before me, 982-8888 answered at the Avenue A Bistro Cafe at 103 Avenue A, at A1 Fitness Equipment Corp on East 7th Street, at Davis Design Co on East 12th Street, and at a G2 Sushi place at the same Avenue A address as the bistro. All four sat within ten blocks of the apartment where I had lived in the late 1980s with the 3939. The digits had an East Village biography before they became mine.

    The 8888 was a deliberate choice. I had already learned the hard way what certain digits mean. In 2005 I had a cell number with four 4s in it, ending in 4040, and every time I called my favorite Chinese restaurant in the East Village the elderly man on the phone said “Lucky Lucky Number!” in a smoke-raspy voice when I gave him the digits. The teenage delivery driver repeated the phrase three times at the door, smiling and nodding. I thought for years I had been blessed. A commenter eventually explained that the four in Chinese sounds like the word for death, that my number was therefore dialing death by his count six times in a single phone number, and that the triple “Lucky Lucky Number!” at the door was a protective counter-chant to balance the unlucky energy I was bringing to their shop. I killed the 4040 number in 2006 and replaced it with a randomly assigned cellular number whose digits summed to a figure divisible by three, which is good in this system. By 2013 I had learned enough to select the 8888 deliberately. The number eight in Chinese numerology associates with prosperity and the doubled pair with joy, and four eights stacked at the end of a 212 is the kind of aspiration an East Village veteran can carry on a line without having to apologize at the delivery door. My ten digits carry geographic memory and cultural memory at once, and two decades of sushi orders and fitness equipment deliveries are laminated into the number I answer to today.

    My YUkon 2 still answers. The exchange name is not printed anywhere on my phone, not legible in any caller ID window, not remembered by anyone who calls me who is under the age of seventy. The YU is still in the digits. Anyone who knows that 98 spells YU on a rotary dial can read the old exchange under the new number, the way you can read a previous tenant’s wallpaper under the paint in a renovated apartment. The 212 means the same thing. The city underneath is still there. You just need to know what you are looking at.

    #212 #areaCode #connection #conversation #identity #meaning #meme #newYorkCity #phone #phoneNumber #rotaryDial #snob #tech #telephone
  12. I just got a call from Spain. It was a crying woman who spoke Russian. When I said, she got the wrong number, she hung up. 😳

    #telephone #phonecall

  13. Technologie mobile
    🔸 Le Salon mondial du mobile de Barcelone, entre guerre au Moyen-Orient et nouveautés technologiques
    ➡️ "Le groupe chinois Honor a notamment exposé en grande pompe son tout premier téléphone-robot dopé à l'intelligence artificielle."
    information.tv5monde.com/econo
    #tech #mobile #technologie #téléphone #Honor #robot #photo #photographie #photography #Barcelone #Espagne #salon #monde #industrie #communication #guerre #média #TV5monde #international #IA

  14. Phone Booth No 12 Color Version.

    From an ongoing series of photos exploring a now outdated, almost forgotten and slowly disappearing technology in and around the Toronto Canada area.

    On Logan Ave at Gerrard St E.

    Canon EOS 60D
    Canon EF-S 17-85mm f4-5.6 IS USM
    Lightroom

    #photography #toronto #torontolife #originalphotography #photoproject #payphone #telephone #canada

  15. #Telephone set #BritishTelecom 8746 now with replaced 21A microphone insert, working correctly with #Grandstream #HT802 v2 ATA linked to #FreePBX I built on cloud VPS - accepts both #MF (tone) and #LoopDisconnect #dialling (although dialling a full UK mobile number is quite a long process and I had to make sure the timer was at least 4 seconds (or the digits get sent to register before you've dialled any 0 and call fails due to wrong number being sent to #PBX !)

    Ring voltage (set to 55V RMS) is strong enough to ring the 4k bell in 8746

    So currently this corner of the office looks like its back in 1980s 😁

    #VOIP #Telephony

  16. boston, massachusetts
    november 1970

    phone call

    flickr.com/photos/dboo/5209511
    flickr.com/photos/dboo/2777965

    part of an archival project, featuring the photographs of nick dewolf

    © the Nick DeWolf Foundation
    Image-use requests are welcome via nickdewolfphotoarchive [at] gmail [dot] com

    #photography #film #blackandwhite #bw #boston #massachusetts #people #candid #telephone #payphone #phone #phonecall #1970s

  17. Je me suis fait une grosse #frayeur ce matin. J'ai cru avoir #perdu mon #téléphone. La vérité, c'est que je l'avais juste oublié sur ma table de chevet. (Enfin… La pile de livres qui me sert de table de chevet.) #Ouf! Me voilà #soulagé.

    #GrosseFrayeur

  18. Retrotechtacular: The 1951 Telephone Selector - Telephone systems predate the use of cheap computers and electronic switches. Yest... - hackaday.com/2025/01/11/retrot #retrotechtacular #dialphone #telephone #bell

  19. Just sorted out a light-touch refurb on this GPO Tele 745 weatherproof #phone

    The handset is a bit faded, scratched and tatty, but it’s had a good clean and a new cord, so it’s perfectly serviceable for #emf2024 and suitable @cutel mischief.

    I bought this with the intention of installing it in the garden, it really needs a strip down and repaint… but I can get to all that after #emf 😀

    #telephone #dialPhone #telecoms #telecom #telecomsHeritage #telephoneHistory

  20. Démarchage téléphonique : ces 3 mots magiques à prononcer pour mettre rapidement fin aux appels !

    Voici nos conseils pour mettre fin à la conversation au plus vite.

    #arnaques #telephone #Demarchage #SignalConso #DGCCRF #Windows #macOS #Linux #android #iOS #UFC #CLCV

    lsdm.live/modules/news/article

  21. Vintage Rotary Phone MIDI Controller – Part 7

    Having built my adaptor into a small box, I’ve gone back to add a mode button so I can include all the different applications into a single sketch.

    This builds on the previous parts in this series.

    • Part 1 – Understanding the telephone hardware and interfacing to an Arduino.
    • Part 2 – Decoding the rotary dial from the Arduino.
    • Part 3 – Rotary phone MIDI note controller.
    • Part 4 – Rotary phone MIDI program change.
    • Part 5 – Rotary phone MIDI random note sequencer.
    • Part 6 – Rotary phone to MIDI adaptor.
    • Part 7 – Rotary phone multi-mode applications.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to Arduino, see the Getting Started pages.

    Parts list

    • Arduino 5V Pro Mini (as I’m soldering it in, I’m using a cheap clone)
    • “GPO” or “BT” original 746 rotary telephone
    • Scrap ADSL filter
    • 120kΩ resistor
    • 2x 220Ω resistors
    • Chassis mount 5-pin DIN socket
    • RJ11 telephone cable (cut in half) – this is the “handset” cable or possibly a “modem” cable
    • USB cable (cut in half)
    • MIDI sound module

    The Circuit

    The idea is to simply add a push-button switch to the build from part 6, so I’m taking that as my starting point.  I’m adding a button between D3 and GND, using it in INPUT_PULLUP mode.

    I made a hole in the case and made a small cut-out in the PCB to hold the button relatively firmly in place, then connected it as shown below.

    Aside: I somehow managed to break the leg off the resistor between 5V and the MIDI socket, but didn’t notice until I tried it and nothing worked – so that was a bit of a pain, as I needed to gently prize everything apart enough to get a new resistor soldered in place!

    The Code

    So, the main idea is to use the button to change between the various modes of the phone.  I’ve implemented the following:

    • Mode 1 – Send MIDI Control Change 16 – General Purpose Controller 1 – with the digit as the value (0 to 9).
    • Mode 2 – Play NoteOn messages for C major, starting with MIDI note 60 (C4) for 0.
    • Mode 3 – Play NoteOn messages for a pentatonic scale, as described in the “simple mode” from part 3.
    • Mode 4 – Play NoteOn messages for several pentatonic scales, as described in the “complex mode” from part 3.
    • Mode 5 – Send MIDI Program Change messages as described in part 4.

    Note that I haven’t implemented the sequencer as described in part 5 as the code structure is quite different to the other modes.

    Also note, if you examine the code, the modes are encoded as 0 to 4 within the code itself.

    The main logic is as follows:

    Loop:IF button pressed THEN  switch to the next modeIF there is a new digit read THEN  IF in Control Change mode THEN    Send MIDI General Purpose Controller 1 CC Message with value "digit"  ELSE IF in Program Change mode THEN    Update the program change number  ELSE    Check which scale we're using AND    Send the associated MIDI NoteOn message for that digit in that scaleIF phone is placed back on the hook THEN   IF in Control Change mode THEN nothing to do   ELSE IF in Program Change mode THEN      Send the MIDI Program Change message   ELSE     Send a MIDI NoteOff message for all notes from all scale modes, for all digits

    Once again I’ve implemented it so that all notes sustain until the phone is placed back “on hook” when I simply cycle through all notes in all scales sending NoteOff messages.  This is a little redundant but does mean that if the mode had changed after notes started playing, then all notes will eventually be turned off properly.

    The last thing I’ve added was some indication of which mode we’re in.  When the button is pressed and the mode changed, it will play a few notes from the C major scale starting on C5 to indicate the number of the mode (1 to 5).

    Find it on GitHub here.

    Closing Thoughts

    I’m still wondering if it would be better to have specific MIDI messages defined for the different events within the phone, and I’m part way there with the use of the first general purpose CC message.  It might be useful to also have a CC message defined for on-hook and off-hook too.

    I’ve also wondered if I should have a mode that plays proper NoteOn/NoteOff messages when dialing.  I might still implement that for the C major scale mode – I’m still deciding!  I also use the built-in LED to indicate a button press, but I might update it to flash to indicate the mode too, again I’m not sure yet.

    The MIDI channel is still hard-coded to 1, and to be honest that is fine for me for now.  I would like to find a way to get the sequencer functionality in there somehow, but need to think about that a little more. I was also wondering if I should generate MIDI real-time clock messages in response to the pulses, but again I’m still chewing that over too.  I have plenty of IO pins on the Arduino spare, but not a lot of space in the casing.

    I have managed to pick up a second phone and on simple inspection it appears to be wired up the same as my original phone – but for some reason it isn’t reliably detecting pulses, so I need to look at that at some point too.

    So there are still plenty of things I could do next!

    Kevin

    #arduino #arduinoProMini #controlChange #midi #midiController #programChange #rotaryDial #telephone

  22. Vintage Rotary Phone MIDI Controller – Part 7

    Having built my adaptor into a small box, I’ve gone back to add a mode button so I can include all the different applications into a single sketch.

    This builds on the previous parts in this series.

    • Part 1 – Understanding the telephone hardware and interfacing to an Arduino.
    • Part 2 – Decoding the rotary dial from the Arduino.
    • Part 3 – Rotary phone MIDI note controller.
    • Part 4 – Rotary phone MIDI program change.
    • Part 5 – Rotary phone MIDI random note sequencer.
    • Part 6 – Rotary phone to MIDI adaptor.
    • Part 7 – Rotary phone multi-mode applications.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to Arduino, see the Getting Started pages.

    Parts list

    • Arduino 5V Pro Mini (as I’m soldering it in, I’m using a cheap clone)
    • “GPO” or “BT” original 746 rotary telephone
    • Scrap ADSL filter
    • 120kΩ resistor
    • 2x 220Ω resistors
    • Chassis mount 5-pin DIN socket
    • RJ11 telephone cable (cut in half) – this is the “handset” cable or possibly a “modem” cable
    • USB cable (cut in half)
    • MIDI sound module

    The Circuit

    The idea is to simply add a push-button switch to the build from part 6, so I’m taking that as my starting point.  I’m adding a button between D3 and GND, using it in INPUT_PULLUP mode.

    I made a hole in the case and made a small cut-out in the PCB to hold the button relatively firmly in place, then connected it as shown below.

    Aside: I somehow managed to break the leg off the resistor between 5V and the MIDI socket, but didn’t notice until I tried it and nothing worked – so that was a bit of a pain, as I needed to gently prize everything apart enough to get a new resistor soldered in place!

    The Code

    So, the main idea is to use the button to change between the various modes of the phone.  I’ve implemented the following:

    • Mode 1 – Send MIDI Control Change 16 – General Purpose Controller 1 – with the digit as the value (0 to 9).
    • Mode 2 – Play NoteOn messages for C major, starting with MIDI note 60 (C4) for 0.
    • Mode 3 – Play NoteOn messages for a pentatonic scale, as described in the “simple mode” from part 3.
    • Mode 4 – Play NoteOn messages for several pentatonic scales, as described in the “complex mode” from part 3.
    • Mode 5 – Send MIDI Program Change messages as described in part 4.

    Note that I haven’t implemented the sequencer as described in part 5 as the code structure is quite different to the other modes.

    Also note, if you examine the code, the modes are encoded as 0 to 4 within the code itself.

    The main logic is as follows:

    Loop:IF button pressed THEN  switch to the next modeIF there is a new digit read THEN  IF in Control Change mode THEN    Send MIDI General Purpose Controller 1 CC Message with value "digit"  ELSE IF in Program Change mode THEN    Update the program change number  ELSE    Check which scale we're using AND    Send the associated MIDI NoteOn message for that digit in that scaleIF phone is placed back on the hook THEN   IF in Control Change mode THEN nothing to do   ELSE IF in Program Change mode THEN      Send the MIDI Program Change message   ELSE     Send a MIDI NoteOff message for all notes from all scale modes, for all digits

    Once again I’ve implemented it so that all notes sustain until the phone is placed back “on hook” when I simply cycle through all notes in all scales sending NoteOff messages.  This is a little redundant but does mean that if the mode had changed after notes started playing, then all notes will eventually be turned off properly.

    The last thing I’ve added was some indication of which mode we’re in.  When the button is pressed and the mode changed, it will play a few notes from the C major scale starting on C5 to indicate the number of the mode (1 to 5).

    Find it on GitHub here.

    Closing Thoughts

    I’m still wondering if it would be better to have specific MIDI messages defined for the different events within the phone, and I’m part way there with the use of the first general purpose CC message.  It might be useful to also have a CC message defined for on-hook and off-hook too.

    I’ve also wondered if I should have a mode that plays proper NoteOn/NoteOff messages when dialing.  I might still implement that for the C major scale mode – I’m still deciding!  I also use the built-in LED to indicate a button press, but I might update it to flash to indicate the mode too, again I’m not sure yet.

    The MIDI channel is still hard-coded to 1, and to be honest that is fine for me for now.  I would like to find a way to get the sequencer functionality in there somehow, but need to think about that a little more. I was also wondering if I should generate MIDI real-time clock messages in response to the pulses, but again I’m still chewing that over too.  I have plenty of IO pins on the Arduino spare, but not a lot of space in the casing.

    I have managed to pick up a second phone and on simple inspection it appears to be wired up the same as my original phone – but for some reason it isn’t reliably detecting pulses, so I need to look at that at some point too.

    So there are still plenty of things I could do next!

    Kevin

    #arduino #arduinoProMini #controlChange #midi #midiController #programChange #rotaryDial #telephone

  23. Vintage Rotary Phone MIDI Controller – Part 7

    Having built my adaptor into a small box, I’ve gone back to add a mode button so I can include all the different applications into a single sketch.

    This builds on the previous parts in this series.

    • Part 1 – Understanding the telephone hardware and interfacing to an Arduino.
    • Part 2 – Decoding the rotary dial from the Arduino.
    • Part 3 – Rotary phone MIDI note controller.
    • Part 4 – Rotary phone MIDI program change.
    • Part 5 – Rotary phone MIDI random note sequencer.
    • Part 6 – Rotary phone to MIDI adaptor.
    • Part 7 – Rotary phone multi-mode applications.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to Arduino, see the Getting Started pages.

    Parts list

    • Arduino 5V Pro Mini (as I’m soldering it in, I’m using a cheap clone)
    • “GPO” or “BT” original 746 rotary telephone
    • Scrap ADSL filter
    • 120kΩ resistor
    • 2x 220Ω resistors
    • Chassis mount 5-pin DIN socket
    • RJ11 telephone cable (cut in half) – this is the “handset” cable or possibly a “modem” cable
    • USB cable (cut in half)
    • MIDI sound module

    The Circuit

    The idea is to simply add a push-button switch to the build from part 6, so I’m taking that as my starting point.  I’m adding a button between D3 and GND, using it in INPUT_PULLUP mode.

    I made a hole in the case and made a small cut-out in the PCB to hold the button relatively firmly in place, then connected it as shown below.

    Aside: I somehow managed to break the leg off the resistor between 5V and the MIDI socket, but didn’t notice until I tried it and nothing worked – so that was a bit of a pain, as I needed to gently prize everything apart enough to get a new resistor soldered in place!

    The Code

    So, the main idea is to use the button to change between the various modes of the phone.  I’ve implemented the following:

    • Mode 1 – Send MIDI Control Change 16 – General Purpose Controller 1 – with the digit as the value (0 to 9).
    • Mode 2 – Play NoteOn messages for C major, starting with MIDI note 60 (C4) for 0.
    • Mode 3 – Play NoteOn messages for a pentatonic scale, as described in the “simple mode” from part 3.
    • Mode 4 – Play NoteOn messages for several pentatonic scales, as described in the “complex mode” from part 3.
    • Mode 5 – Send MIDI Program Change messages as described in part 4.

    Note that I haven’t implemented the sequencer as described in part 5 as the code structure is quite different to the other modes.

    Also note, if you examine the code, the modes are encoded as 0 to 4 within the code itself.

    The main logic is as follows:

    Loop:IF button pressed THEN  switch to the next modeIF there is a new digit read THEN  IF in Control Change mode THEN    Send MIDI General Purpose Controller 1 CC Message with value "digit"  ELSE IF in Program Change mode THEN    Update the program change number  ELSE    Check which scale we're using AND    Send the associated MIDI NoteOn message for that digit in that scaleIF phone is placed back on the hook THEN   IF in Control Change mode THEN nothing to do   ELSE IF in Program Change mode THEN      Send the MIDI Program Change message   ELSE     Send a MIDI NoteOff message for all notes from all scale modes, for all digits

    Once again I’ve implemented it so that all notes sustain until the phone is placed back “on hook” when I simply cycle through all notes in all scales sending NoteOff messages.  This is a little redundant but does mean that if the mode had changed after notes started playing, then all notes will eventually be turned off properly.

    The last thing I’ve added was some indication of which mode we’re in.  When the button is pressed and the mode changed, it will play a few notes from the C major scale starting on C5 to indicate the number of the mode (1 to 5).

    Find it on GitHub here.

    Closing Thoughts

    I’m still wondering if it would be better to have specific MIDI messages defined for the different events within the phone, and I’m part way there with the use of the first general purpose CC message.  It might be useful to also have a CC message defined for on-hook and off-hook too.

    I’ve also wondered if I should have a mode that plays proper NoteOn/NoteOff messages when dialing.  I might still implement that for the C major scale mode – I’m still deciding!  I also use the built-in LED to indicate a button press, but I might update it to flash to indicate the mode too, again I’m not sure yet.

    The MIDI channel is still hard-coded to 1, and to be honest that is fine for me for now.  I would like to find a way to get the sequencer functionality in there somehow, but need to think about that a little more. I was also wondering if I should generate MIDI real-time clock messages in response to the pulses, but again I’m still chewing that over too.  I have plenty of IO pins on the Arduino spare, but not a lot of space in the casing.

    I have managed to pick up a second phone and on simple inspection it appears to be wired up the same as my original phone – but for some reason it isn’t reliably detecting pulses, so I need to look at that at some point too.

    So there are still plenty of things I could do next!

    Kevin

    #arduino #arduinoProMini #controlChange #midi #midiController #programChange #rotaryDial #telephone

  24. Vintage Rotary Phone MIDI Controller – Part 7

    Having built my adaptor into a small box, I’ve gone back to add a mode button so I can include all the different applications into a single sketch.

    This builds on the previous parts in this series.

    • Part 1 – Understanding the telephone hardware and interfacing to an Arduino.
    • Part 2 – Decoding the rotary dial from the Arduino.
    • Part 3 – Rotary phone MIDI note controller.
    • Part 4 – Rotary phone MIDI program change.
    • Part 5 – Rotary phone MIDI random note sequencer.
    • Part 6 – Rotary phone to MIDI adaptor.
    • Part 7 – Rotary phone multi-mode applications.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to Arduino, see the Getting Started pages.

    Parts list

    • Arduino 5V Pro Mini (as I’m soldering it in, I’m using a cheap clone)
    • “GPO” or “BT” original 746 rotary telephone
    • Scrap ADSL filter
    • 120kΩ resistor
    • 2x 220Ω resistors
    • Chassis mount 5-pin DIN socket
    • RJ11 telephone cable (cut in half) – this is the “handset” cable or possibly a “modem” cable
    • USB cable (cut in half)
    • MIDI sound module

    The Circuit

    The idea is to simply add a push-button switch to the build from part 6, so I’m taking that as my starting point.  I’m adding a button between D3 and GND, using it in INPUT_PULLUP mode.

    I made a hole in the case and made a small cut-out in the PCB to hold the button relatively firmly in place, then connected it as shown below.

    Aside: I somehow managed to break the leg off the resistor between 5V and the MIDI socket, but didn’t notice until I tried it and nothing worked – so that was a bit of a pain, as I needed to gently prize everything apart enough to get a new resistor soldered in place!

    The Code

    So, the main idea is to use the button to change between the various modes of the phone.  I’ve implemented the following:

    • Mode 1 – Send MIDI Control Change 16 – General Purpose Controller 1 – with the digit as the value (0 to 9).
    • Mode 2 – Play NoteOn messages for C major, starting with MIDI note 60 (C4) for 0.
    • Mode 3 – Play NoteOn messages for a pentatonic scale, as described in the “simple mode” from part 3.
    • Mode 4 – Play NoteOn messages for several pentatonic scales, as described in the “complex mode” from part 3.
    • Mode 5 – Send MIDI Program Change messages as described in part 4.

    Note that I haven’t implemented the sequencer as described in part 5 as the code structure is quite different to the other modes.

    Also note, if you examine the code, the modes are encoded as 0 to 4 within the code itself.

    The main logic is as follows:

    Loop:IF button pressed THEN  switch to the next modeIF there is a new digit read THEN  IF in Control Change mode THEN    Send MIDI General Purpose Controller 1 CC Message with value "digit"  ELSE IF in Program Change mode THEN    Update the program change number  ELSE    Check which scale we're using AND    Send the associated MIDI NoteOn message for that digit in that scaleIF phone is placed back on the hook THEN   IF in Control Change mode THEN nothing to do   ELSE IF in Program Change mode THEN      Send the MIDI Program Change message   ELSE     Send a MIDI NoteOff message for all notes from all scale modes, for all digits

    Once again I’ve implemented it so that all notes sustain until the phone is placed back “on hook” when I simply cycle through all notes in all scales sending NoteOff messages.  This is a little redundant but does mean that if the mode had changed after notes started playing, then all notes will eventually be turned off properly.

    The last thing I’ve added was some indication of which mode we’re in.  When the button is pressed and the mode changed, it will play a few notes from the C major scale starting on C5 to indicate the number of the mode (1 to 5).

    Find it on GitHub here.

    Closing Thoughts

    I’m still wondering if it would be better to have specific MIDI messages defined for the different events within the phone, and I’m part way there with the use of the first general purpose CC message.  It might be useful to also have a CC message defined for on-hook and off-hook too.

    I’ve also wondered if I should have a mode that plays proper NoteOn/NoteOff messages when dialing.  I might still implement that for the C major scale mode – I’m still deciding!  I also use the built-in LED to indicate a button press, but I might update it to flash to indicate the mode too, again I’m not sure yet.

    The MIDI channel is still hard-coded to 1, and to be honest that is fine for me for now.  I would like to find a way to get the sequencer functionality in there somehow, but need to think about that a little more. I was also wondering if I should generate MIDI real-time clock messages in response to the pulses, but again I’m still chewing that over too.  I have plenty of IO pins on the Arduino spare, but not a lot of space in the casing.

    I have managed to pick up a second phone and on simple inspection it appears to be wired up the same as my original phone – but for some reason it isn’t reliably detecting pulses, so I need to look at that at some point too.

    So there are still plenty of things I could do next!

    Kevin

    #arduino #arduinoProMini #controlChange #midi #midiController #programChange #rotaryDial #telephone

  25. Vintage Rotary Phone MIDI Controller – Part 7

    Having built my adaptor into a small box, I’ve gone back to add a mode button so I can include all the different applications into a single sketch.

    This builds on the previous parts in this series.

    • Part 1 – Understanding the telephone hardware and interfacing to an Arduino.
    • Part 2 – Decoding the rotary dial from the Arduino.
    • Part 3 – Rotary phone MIDI note controller.
    • Part 4 – Rotary phone MIDI program change.
    • Part 5 – Rotary phone MIDI random note sequencer.
    • Part 6 – Rotary phone to MIDI adaptor.
    • Part 7 – Rotary phone multi-mode applications.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to Arduino, see the Getting Started pages.

    Parts list

    • Arduino 5V Pro Mini (as I’m soldering it in, I’m using a cheap clone)
    • “GPO” or “BT” original 746 rotary telephone
    • Scrap ADSL filter
    • 120kΩ resistor
    • 2x 220Ω resistors
    • Chassis mount 5-pin DIN socket
    • RJ11 telephone cable (cut in half) – this is the “handset” cable or possibly a “modem” cable
    • USB cable (cut in half)
    • MIDI sound module

    The Circuit

    The idea is to simply add a push-button switch to the build from part 6, so I’m taking that as my starting point.  I’m adding a button between D3 and GND, using it in INPUT_PULLUP mode.

    I made a hole in the case and made a small cut-out in the PCB to hold the button relatively firmly in place, then connected it as shown below.

    Aside: I somehow managed to break the leg off the resistor between 5V and the MIDI socket, but didn’t notice until I tried it and nothing worked – so that was a bit of a pain, as I needed to gently prize everything apart enough to get a new resistor soldered in place!

    The Code

    So, the main idea is to use the button to change between the various modes of the phone.  I’ve implemented the following:

    • Mode 1 – Send MIDI Control Change 16 – General Purpose Controller 1 – with the digit as the value (0 to 9).
    • Mode 2 – Play NoteOn messages for C major, starting with MIDI note 60 (C4) for 0.
    • Mode 3 – Play NoteOn messages for a pentatonic scale, as described in the “simple mode” from part 3.
    • Mode 4 – Play NoteOn messages for several pentatonic scales, as described in the “complex mode” from part 3.
    • Mode 5 – Send MIDI Program Change messages as described in part 4.

    Note that I haven’t implemented the sequencer as described in part 5 as the code structure is quite different to the other modes.

    Also note, if you examine the code, the modes are encoded as 0 to 4 within the code itself.

    The main logic is as follows:

    Loop:IF button pressed THEN  switch to the next modeIF there is a new digit read THEN  IF in Control Change mode THEN    Send MIDI General Purpose Controller 1 CC Message with value "digit"  ELSE IF in Program Change mode THEN    Update the program change number  ELSE    Check which scale we're using AND    Send the associated MIDI NoteOn message for that digit in that scaleIF phone is placed back on the hook THEN   IF in Control Change mode THEN nothing to do   ELSE IF in Program Change mode THEN      Send the MIDI Program Change message   ELSE     Send a MIDI NoteOff message for all notes from all scale modes, for all digits

    Once again I’ve implemented it so that all notes sustain until the phone is placed back “on hook” when I simply cycle through all notes in all scales sending NoteOff messages.  This is a little redundant but does mean that if the mode had changed after notes started playing, then all notes will eventually be turned off properly.

    The last thing I’ve added was some indication of which mode we’re in.  When the button is pressed and the mode changed, it will play a few notes from the C major scale starting on C5 to indicate the number of the mode (1 to 5).

    Find it on GitHub here.

    Closing Thoughts

    I’m still wondering if it would be better to have specific MIDI messages defined for the different events within the phone, and I’m part way there with the use of the first general purpose CC message.  It might be useful to also have a CC message defined for on-hook and off-hook too.

    I’ve also wondered if I should have a mode that plays proper NoteOn/NoteOff messages when dialing.  I might still implement that for the C major scale mode – I’m still deciding!  I also use the built-in LED to indicate a button press, but I might update it to flash to indicate the mode too, again I’m not sure yet.

    The MIDI channel is still hard-coded to 1, and to be honest that is fine for me for now.  I would like to find a way to get the sequencer functionality in there somehow, but need to think about that a little more. I was also wondering if I should generate MIDI real-time clock messages in response to the pulses, but again I’m still chewing that over too.  I have plenty of IO pins on the Arduino spare, but not a lot of space in the casing.

    I have managed to pick up a second phone and on simple inspection it appears to be wired up the same as my original phone – but for some reason it isn’t reliably detecting pulses, so I need to look at that at some point too.

    So there are still plenty of things I could do next!

    Kevin

    #arduino #arduinoProMini #controlChange #midi #midiController #programChange #rotaryDial #telephone